[alsa-devel] [PATCH 1/1] ASoC: codecs: max98088: Combined DAI operations for DAI1 and DAI2.
Peter Hsiang
Peter.Hsiang at maxim-ic.com
Thu Jun 9 20:55:11 CEST 2011
On Thu, Jun 09, 2011, Jin Park wrote:
> Combined DAI operations for DAI1 and DAI2.
> For this, added id into DAI runtime data to identify each DAI.
>
> Signed-off-by: Jin Park <jinyoungp at nvidia.com>
> @@ -1262,87 +1262,43 @@ static int max98088_dai1_hw_params(struct snd_pcm_substream *substream,
>
> - cdata = &max98088->dai[1];
> + cdata = &max98088->dai[dai->id - 1];
Please add BUG_ON protection in case later someone changes the id usage.
Mark, what's your thought on the use of id for this purpose here?
Would it be better to have 2 wrapper DAI functions passing in the DAI number?
> +static int max98088_dai_set_fmt(struct snd_soc_dai *dai, unsigned int fmt)
> {
> + unsigned short fmt_reg;
> + unsigned short clk_reg;
> + unsigned short clkcfg_hi_reg;
> + unsigned short clkcfg_lo_reg;
> + u8 clk_val;
> + u8 fmt_val = 0;
> +
> + switch (dai->id) {
> + case 1:
> + fmt_reg = M98088_REG_14_DAI1_FORMAT;
> + clk_reg = M98088_REG_15_DAI1_CLOCK;
> + clkcfg_hi_reg = M98088_REG_12_DAI1_CLKCFG_HI;
> + clkcfg_lo_reg = M98088_REG_13_DAI1_CLKCFG_LO;
> + break;
> + case 2:
> + fmt_reg = M98088_REG_1C_DAI2_FORMAT;
> + clk_reg = M98088_REG_1D_DAI2_CLOCK;
> + clkcfg_hi_reg = M98088_REG_1A_DAI2_CLKCFG_HI;
> + clkcfg_lo_reg = M98088_REG_1B_DAI2_CLKCFG_LO;
> + break;
> + default:
> + return -EINVAL;
> + }
These added local variables and their initialization repeats.
It may be better to put them in struct max98088_cdata[].
> @@ -1470,127 +1439,54 @@ static int max98088_dai1_set_fmt(struct snd_soc_dai *codec_dai,
> - reg15val = M98088_DAI_BSEL64;
> + clk_val = M98088_DAI_BSEL64;
> if (max98088->digmic)
> - reg15val |= M98088_DAI_OSR64;
> - snd_soc_write(codec, M98088_REG_15_DAI1_CLOCK, reg15val);
> + clk_val |= M98088_DAI_OSR64;
> + snd_soc_write(codec, clk_reg, clk_val);
DAI2 does not have an OSR bit in the _CLOCK register.
In the combined function, this should be conditionally for DAI1 only.
Peter
More information about the Alsa-devel
mailing list