ASoC: pcm1792a: Convert to params_width()
authorMark Brown <broonie@linaro.org>
Fri, 24 Jan 2014 16:07:16 +0000 (16:07 +0000)
committerMark Brown <broonie@linaro.org>
Mon, 3 Feb 2014 12:56:07 +0000 (12:56 +0000)
This will help support future enhancements in the way we negotiate
parameters in the core.

Signed-off-by: Mark Brown <broonie@linaro.org>
Acked-by: Michael Trimarchi <michael@amarulasolutions.com>
sound/soc/codecs/pcm1792a.c

index 7146653..3a80ba4 100644 (file)
@@ -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");