[alsa-devel] OMAP-McBSP driver not allowing suspend/resume
anuj.aggarwal at ti.com
Fri Nov 6 14:43:28 CET 2009
I am trying to put OMAP3 in suspend state, while audio is playing,
echo mem > /sys/power/state
root at omap3evm:~# echo mem > /sys/power/state
PM: Syncing filesystems ... done.
Freezing user space processes ... (elapsed 0.00 seconds) done.
Freezing remaining freezable tasks ... (elapsed 0.00 seconds) done.
Suspending console(s) (use no_console_suspend to debug)
Powerdomain (core_pwrdm) didn't enter target state 1
Powerdomain (per_pwrdm) didn't enter target state 1
Could not enter target state in pm_suspend
Restarting tasks ... Suspended. Trying resume. done.
root at omap3evm:~#
As can be seen from the log, both the CORE and PER power domains
are not going to the suspend state.
On further debug, I found that McBSP 2 instance belongs to the
PER domain whereas SDMA belongs to CORE domain. And at least
McBSP driver (on l-o tip) doesn't allow disabling of the clocks
unless McBSP instance itself is freed. Because of this, when
McBSP is stopped after receiving the suspend request, the
clocks are still ON and the PER domain is not allowed to enter
to the desired low-power state.
The McBSP driver needs to be modified so that it can accommodate
suspend/resume requests and turns off the clocks when not required.
Has anyone modified the driver for this, on some other branch? I
tried finding it but could not do so. (Just wanted to make sure
before doing the changes)
More information about the Alsa-devel