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>
This commit is contained in:
Daniel Walker 2010-07-27 14:04:30 -07:00
parent 461cbe77d0
commit 5ad43ff98a

View File

@ -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);
}