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:
Родитель
461cbe77d0
Коммит
5ad43ff98a
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
Загрузка…
Ссылка в новой задаче