From: Chen Liangjun Date: Wed, 18 Jul 2012 03:11:39 +0000 (+0800) Subject: ENGR00217509 ASRC:Use ideal ratio mode for p2p playback X-Git-Tag: v3.0.35-fsl~742 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=174548b7c5a3e88ba187a56812ad01999743ec76;p=karo-tx-linux.git ENGR00217509 ASRC:Use ideal ratio mode for p2p playback 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 --- diff --git a/drivers/mxc/asrc/mxc_asrc.c b/drivers/mxc/asrc/mxc_asrc.c index db20cbf2971a..4ef31c8fd6db 100644 --- a/drivers/mxc/asrc/mxc_asrc.c +++ b/drivers/mxc/asrc/mxc_asrc.c @@ -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));