On Wed, Dec 10, 2025 at 2:21 PM Chancel Liu <[email protected]> wrote: > > If SAI works in master mode it will generate clocks for external codec > from audio PLLs. Thus sample rates should be constrained according to > audio PLL clocks. While SAI works in slave mode which means clocks are > generated externally then constraints are independent of audio PLLs. > > Fixes: 4edc98598be4 ("ASoC: fsl_sai: Add sample rate constraint") > Signed-off-by: Chancel Liu <[email protected]> > --- > sound/soc/fsl/fsl_sai.c | 10 ++++++++-- > 1 file changed, 8 insertions(+), 2 deletions(-) > > diff --git a/sound/soc/fsl/fsl_sai.c b/sound/soc/fsl/fsl_sai.c > index 72bfc91e21b9..86730c214914 100644 > --- a/sound/soc/fsl/fsl_sai.c > +++ b/sound/soc/fsl/fsl_sai.c > @@ -917,8 +917,14 @@ static int fsl_sai_startup(struct snd_pcm_substream > *substream, > tx ? sai->dma_params_tx.maxburst : > sai->dma_params_rx.maxburst); > > - ret = snd_pcm_hw_constraint_list(substream->runtime, 0, > - SNDRV_PCM_HW_PARAM_RATE, > &sai->constraint_rates); > + if (sai->is_consumer_mode[tx])
The sai->is_consumer_mode[tx] can be changed after startup(), then there may be an issue for the constraint. It looks like there is no perfect solution here. Best regards Shengjiu Wang > + ret = snd_pcm_hw_constraint_list(substream->runtime, 0, > + SNDRV_PCM_HW_PARAM_RATE, > + &fsl_sai_rate_constraints); > + else > + ret = snd_pcm_hw_constraint_list(substream->runtime, 0, > + SNDRV_PCM_HW_PARAM_RATE, > + &sai->constraint_rates); > > return ret; > } > -- > 2.50.1 >
