Lines Matching refs:ratio
122 static int fsl_esai_divisor_cal(struct snd_soc_dai *dai, bool tx, u32 ratio, in fsl_esai_divisor_cal() argument
133 if (ratio > 2 * 8 * 256 * maxfp || ratio < 2) { in fsl_esai_divisor_cal()
137 } else if (ratio % 2) { in fsl_esai_divisor_cal()
142 ratio /= 2; in fsl_esai_divisor_cal()
144 psr = ratio <= 256 * maxfp ? ESAI_xCCR_xPSR_BYPASS : ESAI_xCCR_xPSR_DIV8; in fsl_esai_divisor_cal()
155 if (prod == ratio) in fsl_esai_divisor_cal()
157 else if (prod / ratio == 1) in fsl_esai_divisor_cal()
158 sub = prod - ratio; in fsl_esai_divisor_cal()
159 else if (ratio / prod == 1) in fsl_esai_divisor_cal()
160 sub = ratio - prod; in fsl_esai_divisor_cal()
165 sub = sub * 1000 / ratio; in fsl_esai_divisor_cal()
217 u32 ratio, ecr = 0; in fsl_esai_set_dai_sysclk() local
256 ratio = clk_rate / freq; in fsl_esai_set_dai_sysclk()
257 if (ratio * freq > clk_rate) in fsl_esai_set_dai_sysclk()
258 ret = ratio * freq - clk_rate; in fsl_esai_set_dai_sysclk()
259 else if (ratio * freq < clk_rate) in fsl_esai_set_dai_sysclk()
260 ret = clk_rate - ratio * freq; in fsl_esai_set_dai_sysclk()
272 if (ratio == 1 && clksrc == esai_priv->extalclk) { in fsl_esai_set_dai_sysclk()
276 } else if (ratio < 2) { in fsl_esai_set_dai_sysclk()
283 ret = fsl_esai_divisor_cal(dai, tx, ratio, false, 0); in fsl_esai_set_dai_sysclk()
307 u32 sub, ratio = hck_rate / freq; in fsl_esai_set_bclk() local
314 if (ratio * freq > hck_rate) in fsl_esai_set_bclk()
315 sub = ratio * freq - hck_rate; in fsl_esai_set_bclk()
316 else if (ratio * freq < hck_rate) in fsl_esai_set_bclk()
317 sub = hck_rate - ratio * freq; in fsl_esai_set_bclk()
329 if (!esai_priv->sck_div[tx] && (ratio > 16 || ratio == 0)) { in fsl_esai_set_bclk()
334 ret = fsl_esai_divisor_cal(dai, tx, ratio, true, in fsl_esai_set_bclk()
335 esai_priv->sck_div[tx] ? 0 : ratio); in fsl_esai_set_bclk()