drivers: video: msm: fix hang on disable_irq
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 <arve@android.com> changes in the Google tree.
Signed-off-by: Daniel Walker <dwalker@codeaurora.org>
diff --git a/drivers/video/msm/mdp.c b/drivers/video/msm/mdp.c
index 3c28db0..2b5bf79 100644
--- a/drivers/video/msm/mdp.c
+++ b/drivers/video/msm/mdp.c
@@ -90,7 +90,7 @@
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);
}