[alsa-devel] [PATCH] ALSA: ASoc: Add regulator support to CS4270 codec driver
Daniel Mack
daniel at caiaq.de
Wed Nov 25 16:20:52 CET 2009
On Wed, Nov 25, 2009 at 03:01:39PM +0000, Mark Brown wrote:
> On Wed, Nov 25, 2009 at 03:36:27PM +0100, Daniel Mack wrote:
>
> > static int cs4270_dai_mute(struct snd_soc_dai *dai, int mute)
> > {
> > struct snd_soc_codec *codec = dai->codec;
> > struct cs4270_private *cs4270 = codec->private_data;
> > - int reg6;
> > + int reg6, err;
> >
> > reg6 = snd_soc_read(codec, CS4270_MUTE);
> >
> > if (mute)
> > reg6 |= CS4270_MUTE_DAC_A | CS4270_MUTE_DAC_B;
> > else {
> > + if (cs4270->va_reg)
> > + regulator_enable(cs4270->va_reg);
> > +
>
> This looks wrong - why is the power being controlled in the mute
> function? If nothing else this is going to break recording since the
> CODEC will only be unmuted during playback which means power will be cut
> during record.
Ok - which place would you suggest for it? Is there an ASoC callback I
can hook on to tell me when the whole codec isn't used anymore? I can
only see startup/shutdown, but I would need to my own snd_pc_substream
handling login in there. Other drivers do that in the probe/remove
functions, but that won't suffice for my board as we want VA disabled
whenever possible.
Daniel
More information about the Alsa-devel
mailing list