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: Yu-Hsuan Hsu <yuhsuan@chromium.org> Link: https://lore.kernel.org/r/20200630091615.4020059-1-yuhsuan@chromium.org Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
ad922ca199
commit
1eb96c198a
@ -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,
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user