On Mon, Sep 28, 2009 at 12:38:08PM +0300, Peter Ujfalusi wrote:
Fixes the following scenario: if during active playback/capture the DAPM routes has been modified in a way, that there will be no complete route (for example muting the output) DAPM would set the codec into BIAS_STANDBY, which could disable the clocks from the codec (codec is master), which breaks the playback with error since the clocks are missing from the serial bus and no data is shifted out/in.
This is only helping because the clocks generation is controlled by the bias level configuration. That's not really the way things are supposed to work - I'd rather see a different fix that explicitly represents whatever the requirement is for controlling the clocks. Turning on the clocks based on the bais level will generally result in them being turned on too much which will waste power.
I suspect you want to use AIF widgets and make the PLL a supply for them and any other things that need the PLL, and we should make arrangements to ensure that the AIF widget is enabled whenever the interface is live and the CODEC is master.