]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
ENGR00217509 ASRC:Use ideal ratio mode for p2p playback
authorChen Liangjun <b36089@freescale.com>
Wed, 18 Jul 2012 03:11:39 +0000 (11:11 +0800)
committerLothar Waßmann <LW@KARO-electronics.de>
Fri, 24 May 2013 06:35:02 +0000 (08:35 +0200)
When use ESAI p2p playback, ASRC is configured no ratio mode.
Due to an IC bug(TKT117009), user may hear noise sometimes.

In this patch, use ideal ratio mode for ESAI p2p playback to avoid
 noise.

Signed-off-by: Chen Liangjun <b36089@freescale.com>
drivers/mxc/asrc/mxc_asrc.c

index db20cbf2971ae69f84ed99a8a7f76d91ca0b8b97..4ef31c8fd6db9435a9338d9f14bef34dd253b39b 100644 (file)
@@ -583,6 +583,26 @@ int asrc_config_pair(struct asrc_config *config)
                }
        }
 
+       if ((config->inclk == INCLK_ASRCK1_CLK) &&
+                       (config->outclk == OUTCLK_ESAI_TX)) {
+               reg = __raw_readl(g_asrc->vaddr + ASRC_ASRCTR_REG);
+               reg &= ~(1 << (20 + config->pair));
+               reg |= (0x03 << (13 + (config->pair << 1)));
+               __raw_writel(reg, g_asrc->vaddr + ASRC_ASRCTR_REG);
+               err = asrc_set_clock_ratio(config->pair,
+                                          config->input_sample_rate,
+                                          config->output_sample_rate);
+               if (err < 0)
+                       return err;
+
+               err = asrc_set_process_configuration(config->pair,
+                                                    config->input_sample_rate,
+                                                    config->
+                                                    output_sample_rate);
+               if (err < 0)
+                       return err;
+       }
+
        /* Config input and output wordwidth */
        reg = __raw_readl(
                g_asrc->vaddr + ASRC_ASRMCR1A_REG + (config->pair << 2));