ASoC: adav80x: Use params_width() rather than memory format

Signed-off-by: Mark Brown <broonie@linaro.org>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
This commit is contained in:
Mark Brown 2014-01-08 18:50:40 +00:00
Родитель 9b58e71634
Коммит cf7d8b274f
1 изменённых файлов: 14 добавлений и 16 удалений

Просмотреть файл

@ -453,22 +453,22 @@ static int adav80x_set_dac_clock(struct snd_soc_codec *codec,
} }
static int adav80x_set_capture_pcm_format(struct snd_soc_codec *codec, static int adav80x_set_capture_pcm_format(struct snd_soc_codec *codec,
struct snd_soc_dai *dai, snd_pcm_format_t format) struct snd_soc_dai *dai, struct snd_pcm_hw_params *params)
{ {
struct adav80x *adav80x = snd_soc_codec_get_drvdata(codec); struct adav80x *adav80x = snd_soc_codec_get_drvdata(codec);
unsigned int val; unsigned int val;
switch (format) { switch (params_width(params)) {
case SNDRV_PCM_FORMAT_S16_LE: case 16:
val = ADAV80X_CAPTURE_WORD_LEN16; val = ADAV80X_CAPTURE_WORD_LEN16;
break; break;
case SNDRV_PCM_FORMAT_S18_3LE: case 18:
val = ADAV80X_CAPTRUE_WORD_LEN18; val = ADAV80X_CAPTRUE_WORD_LEN18;
break; break;
case SNDRV_PCM_FORMAT_S20_3LE: case 20:
val = ADAV80X_CAPTURE_WORD_LEN20; val = ADAV80X_CAPTURE_WORD_LEN20;
break; break;
case SNDRV_PCM_FORMAT_S24_LE: case 24:
val = ADAV80X_CAPTURE_WORD_LEN24; val = ADAV80X_CAPTURE_WORD_LEN24;
break; break;
default: default:
@ -482,7 +482,7 @@ static int adav80x_set_capture_pcm_format(struct snd_soc_codec *codec,
} }
static int adav80x_set_playback_pcm_format(struct snd_soc_codec *codec, static int adav80x_set_playback_pcm_format(struct snd_soc_codec *codec,
struct snd_soc_dai *dai, snd_pcm_format_t format) struct snd_soc_dai *dai, struct snd_pcm_hw_params *params)
{ {
struct adav80x *adav80x = snd_soc_codec_get_drvdata(codec); struct adav80x *adav80x = snd_soc_codec_get_drvdata(codec);
unsigned int val; unsigned int val;
@ -490,17 +490,17 @@ static int adav80x_set_playback_pcm_format(struct snd_soc_codec *codec,
if (adav80x->dai_fmt[dai->id] != SND_SOC_DAIFMT_RIGHT_J) if (adav80x->dai_fmt[dai->id] != SND_SOC_DAIFMT_RIGHT_J)
return 0; return 0;
switch (format) { switch (params_width(params)) {
case SNDRV_PCM_FORMAT_S16_LE: case 16:
val = ADAV80X_PLAYBACK_MODE_RIGHT_J_16; val = ADAV80X_PLAYBACK_MODE_RIGHT_J_16;
break; break;
case SNDRV_PCM_FORMAT_S18_3LE: case 18:
val = ADAV80X_PLAYBACK_MODE_RIGHT_J_18; val = ADAV80X_PLAYBACK_MODE_RIGHT_J_18;
break; break;
case SNDRV_PCM_FORMAT_S20_3LE: case 20:
val = ADAV80X_PLAYBACK_MODE_RIGHT_J_20; val = ADAV80X_PLAYBACK_MODE_RIGHT_J_20;
break; break;
case SNDRV_PCM_FORMAT_S24_LE: case 24:
val = ADAV80X_PLAYBACK_MODE_RIGHT_J_24; val = ADAV80X_PLAYBACK_MODE_RIGHT_J_24;
break; break;
default: default:
@ -524,12 +524,10 @@ static int adav80x_hw_params(struct snd_pcm_substream *substream,
return -EINVAL; return -EINVAL;
if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) { if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
adav80x_set_playback_pcm_format(codec, dai, adav80x_set_playback_pcm_format(codec, dai, params);
params_format(params));
adav80x_set_dac_clock(codec, rate); adav80x_set_dac_clock(codec, rate);
} else { } else {
adav80x_set_capture_pcm_format(codec, dai, adav80x_set_capture_pcm_format(codec, dai, params);
params_format(params));
adav80x_set_adc_clock(codec, rate); adav80x_set_adc_clock(codec, rate);
} }
adav80x->rate = rate; adav80x->rate = rate;