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

Mark Brown broonie at opensource.wolfsonmicro.com
Mon Sep 28 13:17:36 CEST 2009

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.

More information about the Alsa-devel mailing list