ARM: OMAP2+: clockdomain: add pwrdm_state_switch() call to clkdm_sleep()
In clkdm_sleep(), the powerdomain should be eligible to switch power states right after the call to the low-level clockdomain sleep function. We should have been tracking that with the pwrdm_state_switch() code, but we weren't, for whatever reason. Fix that. This resolves the "pwrdm state mismatch(cam_pwrdm) 3 != 0" that appears during the OMAP4460 Pandaboard-ES PM test, e.g. here: http://www.pwsan.com/omap/testlogs/test_v3.8-rc5/20130126003323/pm/4460pandaes/4460pandaes_log.txt Signed-off-by: Paul Walmsley <paul@pwsan.com> Cc: Tero Kristo <t-kristo@ti.com>
This commit is contained in:
Родитель
c165a14023
Коммит
53e1cb469e
|
@ -764,6 +764,7 @@ int clkdm_sleep(struct clockdomain *clkdm)
|
||||||
spin_lock_irqsave(&clkdm->lock, flags);
|
spin_lock_irqsave(&clkdm->lock, flags);
|
||||||
clkdm->_flags &= ~_CLKDM_FLAG_HWSUP_ENABLED;
|
clkdm->_flags &= ~_CLKDM_FLAG_HWSUP_ENABLED;
|
||||||
ret = arch_clkdm->clkdm_sleep(clkdm);
|
ret = arch_clkdm->clkdm_sleep(clkdm);
|
||||||
|
ret |= pwrdm_state_switch(clkdm->pwrdm.ptr);
|
||||||
spin_unlock_irqrestore(&clkdm->lock, flags);
|
spin_unlock_irqrestore(&clkdm->lock, flags);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
Загрузка…
Ссылка в новой задаче