> Currently MCLK remains enabled during bias STANDBY state, and this > is not necessary. This patch updates the code to handle enabling > and disabling of MCLK, if provided, when moving between STANDBY > and PREPARE states, therefore saving power when no active streams > present. > > Signed-off-by: Adam Thomson <Adam.Thomson.Opensource@xxxxxxxxxxx> Tested-by: Peter Meerwald-Stadler <pmeerw@xxxxxxxxxx> > --- > sound/soc/codecs/da7213.c | 20 +++++++++++--------- > 1 file changed, 11 insertions(+), 9 deletions(-) > > diff --git a/sound/soc/codecs/da7213.c b/sound/soc/codecs/da7213.c > index bcf1834..7701f4e 100644 > --- a/sound/soc/codecs/da7213.c > +++ b/sound/soc/codecs/da7213.c > @@ -1454,11 +1454,10 @@ static int da7213_set_bias_level(struct snd_soc_codec *codec, > > switch (level) { > case SND_SOC_BIAS_ON: > - case SND_SOC_BIAS_PREPARE: > break; > - case SND_SOC_BIAS_STANDBY: > - if (snd_soc_codec_get_bias_level(codec) == SND_SOC_BIAS_OFF) { > - /* MCLK */ > + case SND_SOC_BIAS_PREPARE: > + /* Enable MCLK for transition to ON state */ > + if (snd_soc_codec_get_bias_level(codec) == SND_SOC_BIAS_STANDBY) { > if (da7213->mclk) { > ret = clk_prepare_enable(da7213->mclk); > if (ret) { > @@ -1467,21 +1466,24 @@ static int da7213_set_bias_level(struct snd_soc_codec *codec, > return ret; > } > } > - > + } > + break; > + case SND_SOC_BIAS_STANDBY: > + if (snd_soc_codec_get_bias_level(codec) == SND_SOC_BIAS_OFF) { > /* Enable VMID reference & master bias */ > snd_soc_update_bits(codec, DA7213_REFERENCES, > DA7213_VMID_EN | DA7213_BIAS_EN, > DA7213_VMID_EN | DA7213_BIAS_EN); > + } else { > + /* Remove MCLK */ > + if (da7213->mclk) > + clk_disable_unprepare(da7213->mclk); > } > break; > case SND_SOC_BIAS_OFF: > /* Disable VMID reference & master bias */ > snd_soc_update_bits(codec, DA7213_REFERENCES, > DA7213_VMID_EN | DA7213_BIAS_EN, 0); > - > - /* MCLK */ > - if (da7213->mclk) > - clk_disable_unprepare(da7213->mclk); > break; > } > return 0; > -- Peter Meerwald-Stadler +43-664-2444418 (mobile) _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel