On Fri, Jun 03, 2022 at 05:55:18PM +0800, Hui Wang wrote: > On 6/2/22 18:33, Mark Brown wrote: > > > Thanks for your comment. But it is weird, it doesn't work like you said, > > > probably need specific route setting in the machine driver level? > > Is this triggering due to reprogramming the PLL for one direction > > while the other is already active (eg, starting a capture during > > a playba > Yes, it is. With the current machine driver of fsl-asoc-card.c, if starting > a capture during a playback or starting a playback during a capture, the > codec driver will reprogram PLL parameters while PLL is on. So your patch fixes that case - note however that you're probably getting an audio glitch in the already active stream while doing this. I'll send a patch which should improve that shortly. BTW, shouldn't the PLL power be left off if the output frequency is 0? > And in another case, if the snd_soc_dai_set_pll() is called in the > card->set_bias_level() instead of card_hw_params(), the PLL will keep being > off since check_mclk_select_pll() always returns false. That should be fixable...
Attachment:
signature.asc
Description: PGP signature