[alsa-devel] [PATCH 2/2] ASoC: pcm1792a: Convert to params_width()
Michael Trimarchi
michael at amarulasolutions.com
Sat Jan 25 10:18:20 CET 2014
Hi
On Fri, Jan 24, 2014 at 5:25 PM, Mark Brown <broonie at kernel.org> wrote:
> From: Mark Brown <broonie at linaro.org>
>
> This will help support future enhancements in the way we negotiate
> parameters in the core.
>
> Signed-off-by: Mark Brown <broonie at linaro.org>
> ---
> sound/soc/codecs/pcm1792a.c | 33 ++++++++++++++++++++++-----------
> 1 file changed, 22 insertions(+), 11 deletions(-)
>
> diff --git a/sound/soc/codecs/pcm1792a.c b/sound/soc/codecs/pcm1792a.c
> index 7146653a8e16..3a80ba4452df 100644
> --- a/sound/soc/codecs/pcm1792a.c
> +++ b/sound/soc/codecs/pcm1792a.c
> @@ -107,24 +107,35 @@ static int pcm1792a_hw_params(struct snd_pcm_substream *substream,
> struct snd_soc_codec *codec = dai->codec;
> struct pcm1792a_private *priv = snd_soc_codec_get_drvdata(codec);
> int val = 0, ret;
> - int pcm_format = params_format(params);
>
> priv->rate = params_rate(params);
>
> switch (priv->format & SND_SOC_DAIFMT_FORMAT_MASK) {
> case SND_SOC_DAIFMT_RIGHT_J:
> - if (pcm_format == SNDRV_PCM_FORMAT_S24_LE ||
> - pcm_format == SNDRV_PCM_FORMAT_S32_LE)
> - val = 0x02;
> - else if (pcm_format == SNDRV_PCM_FORMAT_S16_LE)
> - val = 0x00;
> + switch (params_width(params)) {
> + case 24:
> + case 32:
> + val = 2;
> + break;
> + case 16:
> + val = 0;
> + break;
> + default:
> + return -EINVAL;
> + }
> break;
> case SND_SOC_DAIFMT_I2S:
> - if (pcm_format == SNDRV_PCM_FORMAT_S24_LE ||
> - pcm_format == SNDRV_PCM_FORMAT_S32_LE)
> - val = 0x05;
> - else if (pcm_format == SNDRV_PCM_FORMAT_S16_LE)
> - val = 0x04;
> + switch (params_width(params)) {
> + case 24:
> + case 32:
> + val = 5;
> + break;
> + case 16:
> + val = 4;
> + break;
> + default:
> + return -EINVAL;
> + }
> break;
> default:
> dev_err(codec->dev, "Invalid DAI format\n");
> --
> 1.8.5.3
>
Feel free to add my:
Acked-by: Michael Trimarchi <michael at amarulasolutions.com>
Michael
More information about the Alsa-devel
mailing list