diff options
author | Daniel Walker <dwalker@codeaurora.org> | 2010-07-27 17:04:30 -0400 |
---|---|---|
committer | Daniel Walker <dwalker@codeaurora.org> | 2010-10-12 19:10:23 -0400 |
commit | 5ad43ff98ac926e37ecbdef04ba7d4d104604028 (patch) | |
tree | 280e755d57c555fc9a672d2b26320f905a0f28b4 /drivers | |
parent | 461cbe77d0a4f887c33a3a95ea68a7daf23b4302 (diff) |
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>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/video/msm/mdp.c | 2 |
1 files changed, 1 insertions, 1 deletions
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) | |||
90 | mdp_irq_mask &= ~(mask); | 90 | mdp_irq_mask &= ~(mask); |
91 | /* if no one is waiting on the interrupt, disable it */ | 91 | /* if no one is waiting on the interrupt, disable it */ |
92 | if (!mdp_irq_mask) { | 92 | if (!mdp_irq_mask) { |
93 | disable_irq(mdp->irq); | 93 | disable_irq_nosync(mdp->irq); |
94 | if (clk) | 94 | if (clk) |
95 | clk_disable(clk); | 95 | clk_disable(clk); |
96 | } | 96 | } |