ASOC bug? maybe no need to set bias_level to PREPARE.

From: Zhang, Ning A
Date: Thu May 09 2013 - 21:55:53 EST


Hi, Girdwood

When I try to fix wm1811 standby issue for our customer, I find a strange behavior in ASOC core.

here is my test code:

snd_soc_dapm_disable_pin(&dapm,"MICBIAS2");
snd_soc_dapm_disable_pin(&dapm,"CLK_SYS");
snd_soc_dapm_sync(&dapm);

and add debug info in dapm_pre_sequence_async()
and we will find these debug info printed:

d->bias_level = 1
d->target_bias_level = 0
in snd_soc_dapm_set_bias_level

from the debug log, when STANDBY -> OFF transition, it set bias_level to PREPARE.

that's wrong logic.

And more there is comment in source code:
/* Prepare for a STADDBY->ON or ON->STANDBY transition */
But, the code isn't the same as the comment.

----