Skip to content

Commit

Permalink
ASoC: pcm1792a: Convert to params_width()
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Mark Brown committed Feb 3, 2014
1 parent 38dbfb5 commit e48c6d7
Showing 1 changed file with 22 additions and 11 deletions.
33 changes: 22 additions & 11 deletions sound/soc/codecs/pcm1792a.c
Original file line number Diff line number Diff line change
Expand Up @@ -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");
Expand Down

0 comments on commit e48c6d7

Please sign in to comment.