Commit 5ad43ff9 authored by Daniel Walker's avatar Daniel Walker

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: default avatarDaniel Walker <dwalker@codeaurora.org>
parent 461cbe77
...@@ -90,7 +90,7 @@ static int locked_disable_mdp_irq(struct mdp_info *mdp, uint32_t mask) ...@@ -90,7 +90,7 @@ static int locked_disable_mdp_irq(struct mdp_info *mdp, uint32_t mask)
mdp_irq_mask &= ~(mask); mdp_irq_mask &= ~(mask);
/* if no one is waiting on the interrupt, disable it */ /* if no one is waiting on the interrupt, disable it */
if (!mdp_irq_mask) { if (!mdp_irq_mask) {
disable_irq(mdp->irq); disable_irq_nosync(mdp->irq);
if (clk) if (clk)
clk_disable(clk); clk_disable(clk);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment