12 Apr
2022
12 Apr
'22
12:39 p.m.
On Tue, Apr 12, 2022 at 05:13:46PM +0800, Shengjiu Wang wrote:
The constraint is propagate to Front End Bitstream for Front End and Back End share same snd_soc_pcm_runtime.
The constraint is not needed for Back End Bitstream when there is be_hw_params_fixup() defined.
- snd_pcm_hw_constraint_list(substream->runtime, 0,
SNDRV_PCM_HW_PARAM_RATE,
&wm8524->rate_constraint);
- if (!rtd->dai_link->be_hw_params_fixup)
snd_pcm_hw_constraint_list(substream->runtime, 0,
SNDRV_PCM_HW_PARAM_RATE,
&wm8524->rate_constraint);
This applies in general to constraints set by the CODEC, it's not something that should be fixed at the driver level. Peering into the runtime to see if DPCM is doing anything isn't a great solution here, nor is having to open code it into the driver. I already had it in the back of my head to generalise the set constraints based on sysclk pattern into the core, that might be productive here.