From: Shengjiu Wang Date: Fri, 5 Aug 2022 06:45:26 +0000 (+0800) Subject: ASoC: fsl_sai: Update slots number according to bclk_ratio X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=837b40293de66a5b96f883f540512ec5c3867610;p=linux.git ASoC: fsl_sai: Update slots number according to bclk_ratio The bclk_ratio is set by .set_bclk_ratio API. bclk_ratio = slots * slot_width So if slots is not set by .set_tdm_slot, then it can be calculated by bclk_ratio. Signed-off-by: Shengjiu Wang Link: https://lore.kernel.org/r/1659681926-13493-1-git-send-email-shengjiu.wang@nxp.com Signed-off-by: Mark Brown --- diff --git a/sound/soc/fsl/fsl_sai.c b/sound/soc/fsl/fsl_sai.c index 0f92906d7a297..81f89f6767a2d 100644 --- a/sound/soc/fsl/fsl_sai.c +++ b/sound/soc/fsl/fsl_sai.c @@ -530,12 +530,14 @@ static int fsl_sai_hw_params(struct snd_pcm_substream *substream, u32 watermark; int ret, i; - if (sai->slots) - slots = sai->slots; - if (sai->slot_width) slot_width = sai->slot_width; + if (sai->slots) + slots = sai->slots; + else if (sai->bclk_ratio) + slots = sai->bclk_ratio / slot_width; + pins = DIV_ROUND_UP(channels, slots); /*