Commit cf7d8b27 authored by Mark Brown's avatar Mark Brown
Browse files

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

parent 9b58e716
Loading
Loading
Loading
Loading
+14 −16
Original line number Diff line number Diff line
@@ -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,
		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);
	unsigned int val;

	switch (format) {
	case SNDRV_PCM_FORMAT_S16_LE:
	switch (params_width(params)) {
	case 16:
		val = ADAV80X_CAPTURE_WORD_LEN16;
		break;
	case SNDRV_PCM_FORMAT_S18_3LE:
	case 18:
		val = ADAV80X_CAPTRUE_WORD_LEN18;
		break;
	case SNDRV_PCM_FORMAT_S20_3LE:
	case 20:
		val = ADAV80X_CAPTURE_WORD_LEN20;
		break;
	case SNDRV_PCM_FORMAT_S24_LE:
	case 24:
		val = ADAV80X_CAPTURE_WORD_LEN24;
		break;
	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,
		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);
	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)
		return 0;

	switch (format) {
	case SNDRV_PCM_FORMAT_S16_LE:
	switch (params_width(params)) {
	case 16:
		val = ADAV80X_PLAYBACK_MODE_RIGHT_J_16;
		break;
	case SNDRV_PCM_FORMAT_S18_3LE:
	case 18:
		val = ADAV80X_PLAYBACK_MODE_RIGHT_J_18;
		break;
	case SNDRV_PCM_FORMAT_S20_3LE:
	case 20:
		val = ADAV80X_PLAYBACK_MODE_RIGHT_J_20;
		break;
	case SNDRV_PCM_FORMAT_S24_LE:
	case 24:
		val = ADAV80X_PLAYBACK_MODE_RIGHT_J_24;
		break;
	default:
@@ -524,12 +524,10 @@ static int adav80x_hw_params(struct snd_pcm_substream *substream,
		return -EINVAL;

	if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
		adav80x_set_playback_pcm_format(codec, dai,
			params_format(params));
		adav80x_set_playback_pcm_format(codec, dai, params);
		adav80x_set_dac_clock(codec, rate);
	} else {
		adav80x_set_capture_pcm_format(codec, dai,
			params_format(params));
		adav80x_set_capture_pcm_format(codec, dai, params);
		adav80x_set_adc_clock(codec, rate);
	}
	adav80x->rate = rate;