From 5ad43ff98ac926e37ecbdef04ba7d4d104604028 Mon Sep 17 00:00:00 2001 From: Daniel Walker Date: Tue, 27 Jul 2010 14:04:30 -0700 Subject: drivers: video: msm: fix hang on disable_irq MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit There's a resource race around disable_irq. Using the nosync version allows the function to continue and prevents the hang. Adapted from Arve Hjønnevåg changes in the Google tree. Signed-off-by: Daniel Walker --- drivers/video/msm/mdp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'drivers/video') diff --git a/drivers/video/msm/mdp.c b/drivers/video/msm/mdp.c index 3c28db03ad39..2b5bf79ffe75 100644 --- a/drivers/video/msm/mdp.c +++ b/drivers/video/msm/mdp.c @@ -90,7 +90,7 @@ static int locked_disable_mdp_irq(struct mdp_info *mdp, uint32_t mask) mdp_irq_mask &= ~(mask); /* if no one is waiting on the interrupt, disable it */ if (!mdp_irq_mask) { - disable_irq(mdp->irq); + disable_irq_nosync(mdp->irq); if (clk) clk_disable(clk); } -- cgit v1.2.3 From d601c795c41c0016790ff1a92f2307fd4ff29791 Mon Sep 17 00:00:00 2001 From: Daniel Walker Date: Tue, 27 Jul 2010 14:04:31 -0700 Subject: drivers: msm: video: add dev_set_name call MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is required before the driver can successfully be registered. Adapted from Arve Hjønnevåg changes in the Google tree. Signed-off-by: Daniel Walker --- drivers/video/msm/mdp.c | 1 + 1 file changed, 1 insertion(+) (limited to 'drivers/video') diff --git a/drivers/video/msm/mdp.c b/drivers/video/msm/mdp.c index 2b5bf79ffe75..c3636d55a3c5 100644 --- a/drivers/video/msm/mdp.c +++ b/drivers/video/msm/mdp.c @@ -482,6 +482,7 @@ int mdp_probe(struct platform_device *pdev) /* register mdp device */ mdp->mdp_dev.dev.parent = &pdev->dev; mdp->mdp_dev.dev.class = mdp_class; + dev_set_name(&mdp->mdp_dev.dev, "mdp%d", pdev->id); /* if you can remove the platform device you'd have to implement * this: -- cgit v1.2.3 From 17f52ed7358dc54e5534f9ad495e90306c68cfcf Mon Sep 17 00:00:00 2001 From: Joe Perches Date: Mon, 25 Oct 2010 19:44:27 -0700 Subject: drivers/video/msm/mddi.c: Remove multiple KERN_ uses Signed-off-by: Joe Perches Signed-off-by: Daniel Walker --- drivers/video/msm/mddi.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'drivers/video') diff --git a/drivers/video/msm/mddi.c b/drivers/video/msm/mddi.c index 7c316c34dfca..b66d86ac7cea 100644 --- a/drivers/video/msm/mddi.c +++ b/drivers/video/msm/mddi.c @@ -318,7 +318,7 @@ static long mddi_wait_interrupt_timeout(struct mddi_info *mddi, static void mddi_wait_interrupt(struct mddi_info *mddi, uint32_t intmask) { if (mddi_wait_interrupt_timeout(mddi, intmask, HZ/10) == 0) - printk(KERN_INFO KERN_ERR "mddi_wait_interrupt %d, timeout " + printk(KERN_INFO "mddi_wait_interrupt %d, timeout " "waiting for %x, INT = %x, STAT = %x gotint = %x\n", current->pid, intmask, mddi_readl(INT), mddi_readl(STAT), mddi->got_int); @@ -465,8 +465,7 @@ static int __init mddi_get_client_caps(struct mddi_info *mddi) if (mddi->flags & FLAG_HAVE_CAPS) break; - printk(KERN_INFO KERN_ERR "mddi_init, timeout waiting for " - "caps\n"); + printk(KERN_INFO "mddi_init, timeout waiting for caps\n"); } return mddi->flags & FLAG_HAVE_CAPS; } -- cgit v1.2.3