[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