ASoC: core: giving WARN when device starting from non-off bias with idle_bias_off

Just found some cases that some codec drivers set the bias to _STANDBY and
set idle_bias_off to 1 during probing.
It will cause unpaired runtime_get_sync/put() issue. Also as Mark suggested,
there is no reason to start from _STANDBY bias with idle_bias_off == 1.

So here giving one warning when detected (dapm.idle_bias_off == 1) and
(dapm.bias_level != SND_SOC_BIAS_OFF) just after driver->probe().

Signed-off-by: liu chuansheng <chuansheng.liu@intel.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
This commit is contained in:
Chuansheng Liu 2012-12-21 18:17:12 +08:00 committed by Mark Brown
parent a49f0d1ea3
commit ff541f4b2a

View file

@ -1107,6 +1107,10 @@ static int soc_probe_codec(struct snd_soc_card *card,
"ASoC: failed to probe CODEC %d\n", ret); "ASoC: failed to probe CODEC %d\n", ret);
goto err_probe; goto err_probe;
} }
WARN(codec->dapm.idle_bias_off &&
codec->dapm.bias_level != SND_SOC_BIAS_OFF,
"codec %s can not start from non-off bias"
" with idle_bias_off==1\n", codec->name);
} }
/* If the driver didn't set I/O up try regmap */ /* If the driver didn't set I/O up try regmap */