On Fri, Jul 24, 2020 at 9:02 PM Mark Brown <broonie@xxxxxxxxxx> wrote: > On Fri, Jul 24, 2020 at 08:26:13PM +0800, Tzung-Bi Shih wrote: > > On Fri, Jul 24, 2020 at 7:16 PM Mark Brown <broonie@xxxxxxxxxx> wrote: > > > > Why is this a good fix, as opposed to only skipping the set_bias_level() > > > bit? > > > Did you mean: skip to call snd_soc_dapm_set_bias_level() in > > dapm_pre_sequence_async() and dapm_post_sequence_async()? > > No, I mean why not just add the missing puts which are currently being > skipped due to being caught up with the bias level changes. The challenge I'm facing: (&card->dapm)->bias_level is always SND_SOC_BIAS_OFF. Commit 4e872a46823c stops to update it. It has nowhere to add the missing puts(). Ideally, if the bias_level goes away SND_SOC_BIAS_OFF in dapm_pre_sequence_async(), it calls pm_runtime_get(). If the bias_level goes into SND_SOC_BIAS_OFF in dapm_post_sequence_async(), it calls pm_runtime_put(). I tried to revert commit 4e872a46823c but it seems to screw the card state up. Would you have any suggestions?