Hi,

Mark Brown wrote:
On Sat, Mar 28, 2009 at 11:21:00AM +0100, Michael Trimarchi wrote:
Mark Brown wrote:

This is a substantial task which needs to be done at at least the
subsystem level rather than in the individual drivers.

So change the audio susbsystem to provide an high hirarchical tree on how the components are connected and register and some methond to avoid suspend of an entire subpart during
suspend.

Yes, exactly.  ASoC already has a full map of the audio subsystem, the
trick is in configuring this behaviour and in interacting with the rest
of the world.  It may, for example, be possible to abuse the wakesource
APIs for this.
The idea is to hack the pm_suspend part. Add two sysfs function that when is called on a device, the disable all the subtree of that device follow its childs too.

acquire the lock on pm_list
check if it's possible to remove the device (no if a pm_suspend is in progress)
move the element from one list to the deactivate list
release the lock on it

At the end the pm_list does't contains the device and the element when the system go
to suspend the device are up.

Michael



Reply via email to