ASoC: Refactor DAPM suspend handling
authorMark Brown <broonie@opensource.wolfsonmicro.com>
Fri, 7 May 2010 19:24:05 +0000 (20:24 +0100)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Mon, 10 May 2010 09:36:36 +0000 (10:36 +0100)
commit9949788b793826f2d19e929ac0219ad0e0891e2d
treeed3fa0ff51350bf7da9735020a4d1849376bb56a
parent50ae8384cde9a67714ff03010493c5052690624e
ASoC: Refactor DAPM suspend handling

Instead of using stream events to handle power down during suspend
integrate the handling with the normal widget path checking by
replacing all cases where we report a connected endpoint in a path
with a function snd_soc_dapm_suspend_check() which looks at the ALSA
power state for the card and reports false if we are in a D3 state.

Since the core moves us into D3 prior to initating the suspend all
power checks during suspend will cause the widgets to be powered
down. In order to ensure that widgets are powered up on resume set
the card to D2 at the start of resume handling (ALSA API calls
require D0 so we are still protected against userspace access).

Tested-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
sound/soc/soc-core.c
sound/soc/soc-dapm.c