On Fri, Jul 24, 2020 at 9:02 PM Mark Brown broonie@kernel.org 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@kernel.org 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?