Re: Need help fixing pop/click artifacts in an ASOC driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 12/17/18 8:08 PM, Pierre-Louis Bossart wrote:

The machine driver should use clk_set_rate() and not directly handle regmap or codec stuff. If it does, or if the clock framework isn't relevant here then we can simplify all this as suggested in https://patchwork.kernel.org/patch/10444387/. What I was trying to do with the github update is to keep the clock framework, tie it closer with the codec parts with a state variable that prevents wild changes without going back to a 'safe' idle state (similar idea as PulseAudio clock changes, which can only happen when the PCM is not opened and used).

I have documented, in a previous message, various approaches I tried
to prevent the pop, which were mostly based on the assumption that the
clock source was changed too "abruptly", or wasn't allowed to settle.
In the end, the only state, where the clocks can be switched without a
pop seemed to be when the chip is suspended.

It would of course be great if this could be achieved in a natural
manner, by waiting for the card to be suspended and only switching
clocks in such a state, but I don't see how this can be achieved
robustly.  The power management behavior is outside of the control of
the machine driver, so it can only refuse to switch sample rate when
it's not suspended.  Perhaps this will work in practice, but I fear it
would break applications depending on less restrained control of the
hardware.

_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel



[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Pulse Audio]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux