ASoC: Fix power down for widgetless per-card DAPM context case
authorJarkko Nikula <jhnikula@gmail.com>
Thu, 26 May 2011 13:32:18 +0000 (16:32 +0300)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Thu, 26 May 2011 14:58:14 +0000 (22:58 +0800)
commitea77b94774b3cc67162d74894b49af7eb17071f0
treeadc131307d52a7b5410cf96dfe75b65c0333f9c1
parent979f486944174760400f797d509c05a018132b98
ASoC: Fix power down for widgetless per-card DAPM context case

Commit 52ba67b ("ASoC: Force all DAPM contexts into the same bias state")
powers up all the DAPM contexts in a card if any DAPM context becomes
active. Unfortunately power down newer happens if per-card DAPM context
doesn't have any widgets.

Reason for this is that power state of per-card DAPM context without
widgets is never cleared and thus all the DAPM contexts remain permanently
active. Test for widgetless calling DAPM context in dapm_power_widgets()
doesn't work for per-card DAPM context since power change is never
originating from widgetless per-card DAPM context.

Fix this by pre-clearing power state flag of non-codec DAPM context at the
beginning of power sequence.

Signed-off-by: Jarkko Nikula <jhnikula@gmail.com>
Acked-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
sound/soc/soc-dapm.c