diff options
-rw-r--r-- | drivers/mxc/asrc/mxc_asrc.c | 12 | ||||
-rw-r--r-- | sound/soc/imx/imx-cs42888.c | 3 |
2 files changed, 10 insertions, 5 deletions
diff --git a/drivers/mxc/asrc/mxc_asrc.c b/drivers/mxc/asrc/mxc_asrc.c index ed3256906863..cd4d9ee98a9f 100644 --- a/drivers/mxc/asrc/mxc_asrc.c +++ b/drivers/mxc/asrc/mxc_asrc.c @@ -583,17 +583,23 @@ int asrc_config_pair(struct asrc_config *config) } } - if ((config->inclk == INCLK_ASRCK1_CLK) && + if ((config->inclk == INCLK_NONE) && (config->outclk == OUTCLK_ESAI_TX)) { reg = __raw_readl(g_asrc->vaddr + ASRC_ASRCTR_REG); - reg |= (1 << (20 + config->pair)); - reg |= (0x02 << (13 + (config->pair << 1))); + 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 */ diff --git a/sound/soc/imx/imx-cs42888.c b/sound/soc/imx/imx-cs42888.c index 11ba16511ce2..acec900618b1 100644 --- a/sound/soc/imx/imx-cs42888.c +++ b/sound/soc/imx/imx-cs42888.c @@ -94,7 +94,7 @@ static int config_asrc(struct snd_pcm_substream *substream, config.channel_num = channel; config.input_sample_rate = rate; config.output_sample_rate = iprtd->p2p->p2p_rate; - config.inclk = INCLK_ASRCK1_CLK; + config.inclk = INCLK_NONE; config.outclk = OUTCLK_ESAI_TX; ret = asrc_config_pair(&config); @@ -131,7 +131,6 @@ static void imx_3stack_shutdown(struct snd_pcm_substream *substream) { struct snd_soc_pcm_runtime *rtd = substream->private_data; struct snd_soc_dai *cpu_dai = rtd->cpu_dai; - struct imx_pcm_runtime_data *iprtd = substream->runtime->private_data; if (!cpu_dai->active) hw_state.hw = 0; |