ASoC: dapm: Make enable/disable_pin work with always on widgets
authorCharles Keepax <ckeepax@opensource.wolfsonmicro.com>
Wed, 2 Dec 2015 10:22:16 +0000 (10:22 +0000)
committerMark Brown <broonie@kernel.org>
Wed, 2 Dec 2015 12:12:21 +0000 (12:12 +0000)
commit20bb0184f24df64d1ed4fa07c8feeeffda9b7721
treec38be8ca54e8a0719ac7c8aa25eca270ef75b097
parentf299eccc0ff0d8bdab7b5f0858bcc59e1d3a731f
ASoC: dapm: Make enable/disable_pin work with always on widgets

Always on widgets currently have some odd interactions with DAPM.
Enabling/disabling a widget (snd_soc_dapm_enable_pin) then connecting
it to a path works as expected, ie. when the widget is disabled the
path doesn't power up and it does when the widget is enabled. However
once in a path enabling the widget does not cause anything to power
up, dapm_widget_set_power will return the current power state of the
widget as 1, meaning we never check peer power states.

This patch updates dapm_always_on_check_power to return w->connected
such that it is effected by snd_soc_dapm_enable_pin and the like.

Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/soc-dapm.c