[alsa-devel] [PATCH 3/3] ASoC: codecs: max98088: Added digital mute function in DAI1 and DAI2

Peter Hsiang Peter.Hsiang at maxim-ic.com
Wed May 18 02:28:52 CEST 2011


On Friday, May 13, 2011,  <jinyoungp at nvidia.com> wrote:
> Peter,
> How do you think about that?
> 
> On Friday, May 13, 2011,  Jassi Brar wrote:
> > +static int max98088_dai1_digital_mute(struct snd_soc_dai *codec_dai,
> > +int mute) {
> > +       struct snd_soc_codec *codec = codec_dai->codec;
> > +       int reg;
> > +
> > +       if (mute)
> > +               reg = M98088_DAI_MUTE;
> > +       else
> > +               reg = 0;
> > +
> > +       snd_soc_update_bits(codec, M98088_REG_2F_LVL_DAI1_PLAY,
> > +                           M98088_DAI_MUTE_MASK, reg);
> > +       return 0;
> > +}
> > +
> > max98088_dai1_digital_mute     max98088_dai2_digital_mute
> > max98088_dai1_set_fmt             max98088_dai2_set_fmt
> > max98088_dai1_hw_params      max98088_dai2_hw_params
> >
> > These pairs are essentially same function operating on different
> > registers. Can't we compress them ?
 
Hi Jinyoung,

Thank you for looking at this.

The digital mute function is relatively small.  
It is ok as separate functions.

regval = mute ? M98088_DAI_MUTE : 0;

For hw_params, I had wanted to combine them too initially.
However, there are quite a few different registers in there.
For only 2 instantiations, the extra conditional code to 
enable combining them will somewhat diminish the benefit.
I am leaning toward keeping them the way they are.
But it's ok with me if you think of a good way to do it.
The set_fmt is a possibility.

Peter



More information about the Alsa-devel mailing list