Unverified Commit 1eb96c19 authored by Yu-Hsuan Hsu's avatar Yu-Hsuan Hsu Committed by Mark Brown
Browse files

ASoC: rockchip: add format and rate constraints on rk3399



S8 and S24 formats does not work on this machine driver so force to use
S16_LE instead.

In addition, add constraint to limit the max value of rate because the
rate higher than 96000(172000, 192000) is not stable either.

Signed-off-by: default avatarYu-Hsuan Hsu <yuhsuan@chromium.org>
Link: https://lore.kernel.org/r/20200630091615.4020059-1-yuhsuan@chromium.org


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent ad922ca1
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -219,19 +219,32 @@ static int rockchip_sound_dmic_hw_params(struct snd_pcm_substream *substream,
	return 0;
}

static int rockchip_sound_startup(struct snd_pcm_substream *substream)
{
	struct snd_pcm_runtime *runtime = substream->runtime;

	runtime->hw.formats = SNDRV_PCM_FMTBIT_S16_LE;
	return snd_pcm_hw_constraint_minmax(runtime, SNDRV_PCM_HW_PARAM_RATE,
			8000, 96000);
}

static const struct snd_soc_ops rockchip_sound_max98357a_ops = {
	.startup = rockchip_sound_startup,
	.hw_params = rockchip_sound_max98357a_hw_params,
};

static const struct snd_soc_ops rockchip_sound_rt5514_ops = {
	.startup = rockchip_sound_startup,
	.hw_params = rockchip_sound_rt5514_hw_params,
};

static const struct snd_soc_ops rockchip_sound_da7219_ops = {
	.startup = rockchip_sound_startup,
	.hw_params = rockchip_sound_da7219_hw_params,
};

static const struct snd_soc_ops rockchip_sound_dmic_ops = {
	.startup = rockchip_sound_startup,
	.hw_params = rockchip_sound_dmic_hw_params,
};