[alsa-devel] [PATCH] ASoC: Consider the codec->active also when changing bias level

Peter Ujfalusi peter.ujfalusi at nokia.com
Tue Sep 29 08:13:13 CEST 2009


On Monday 28 September 2009 14:17:36 ext Mark Brown wrote:
> 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.

I see. So there is no mechanism in place which would keep the serial interface 
up when there is an ongoing playback/capture regardless of the DAPM routing?

On the other hand it also make sense to set the codec bias level to ON state, 
when there is ongoing playback/capture. Or not, not sure about it.

I have solved the problem for now without this patch, right now the kernel 
version that I'm using is 2.6.31, so I don't have the AIF widget to play with...

Thanks,
Péter


More information about the Alsa-devel mailing list