]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ASoC: fsl_asrc: use internal measured ratio for non-ideal ratio mode
authorShengjiu Wang <shengjiu.wang@nxp.com>
Wed, 25 Jun 2025 02:05:04 +0000 (10:05 +0800)
committerMark Brown <broonie@kernel.org>
Sun, 29 Jun 2025 21:10:24 +0000 (22:10 +0100)
When USRC=0, there is underrun issue for the non-ideal ratio mode;
according to the reference mannual, the internal measured ratio can be
used with USRC=1 and IDRC=0.

Fixes: d0250cf4f2ab ("ASoC: fsl_asrc: Add an option to select internal ratio mode")
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
Link: https://patch.msgid.link/20250625020504.2728161-1-shengjiu.wang@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/fsl/fsl_asrc.c

index 677529916dc0e53a15952c53016930203c56dc9d..745532ccbdba6908608586954c9902882940dea2 100644 (file)
@@ -517,7 +517,8 @@ static int fsl_asrc_config_pair(struct fsl_asrc_pair *pair, bool use_ideal_rate)
        regmap_update_bits(asrc->regmap, REG_ASRCTR,
                           ASRCTR_ATSi_MASK(index), ASRCTR_ATS(index));
        regmap_update_bits(asrc->regmap, REG_ASRCTR,
-                          ASRCTR_USRi_MASK(index), 0);
+                          ASRCTR_IDRi_MASK(index) | ASRCTR_USRi_MASK(index),
+                          ASRCTR_USR(index));
 
        /* Set the input and output clock sources */
        regmap_update_bits(asrc->regmap, REG_ASRCSR,