summaryrefslogtreecommitdiff
Diffstat
-rw-r--r--arch/arm/boot/dts/amlogic/tl1_t962x2_skt.dts1
-rw-r--r--arch/arm/boot/dts/amlogic/tl1_t962x2_t309.dts1
-rw-r--r--arch/arm/boot/dts/amlogic/tl1_t962x2_x301.dts1
-rw-r--r--arch/arm64/boot/dts/amlogic/tl1_t962x2_t309.dts1
-rw-r--r--arch/arm64/boot/dts/amlogic/tl1_t962x2_x301.dts1
-rw-r--r--sound/soc/amlogic/auge/tdm.c13
-rw-r--r--sound/soc/amlogic/auge/tdm_hw.c10
-rw-r--r--sound/soc/amlogic/auge/tdm_hw.h1
8 files changed, 26 insertions, 3 deletions
diff --git a/sound/soc/amlogic/auge/tdm.c b/sound/soc/amlogic/auge/tdm.c
index a4ebd94..79742b3 100644
--- a/sound/soc/amlogic/auge/tdm.c
+++ b/sound/soc/amlogic/auge/tdm.c
@@ -625,9 +625,6 @@ static int aml_dai_tdm_trigger(struct snd_pcm_substream *substream, int cmd,
break;
}
- aml_tdm_enable(p_tdm->actrl,
- substream->stream, p_tdm->id, false);
-
if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
dev_info(substream->pcm->card->dev, "tdm playback stop\n");
aml_frddr_enable(p_tdm->fddr, 0);
@@ -643,6 +640,8 @@ static int aml_dai_tdm_trigger(struct snd_pcm_substream *substream, int cmd,
dev_info(substream->pcm->card->dev, "tdm capture stop\n");
aml_toddr_enable(p_tdm->tddr, 0);
}
+ aml_tdm_enable(p_tdm->actrl,
+ substream->stream, p_tdm->id, false);
break;
default:
return -EINVAL;
@@ -902,6 +901,14 @@ static int aml_dai_set_tdm_fmt(struct snd_soc_dai *cpu_dai, unsigned int fmt)
aml_tdm_set_format(p_tdm->actrl,
&(p_tdm->setting), p_tdm->clk_sel, p_tdm->id, fmt,
1, 1);
+ if (p_tdm->contns_clk && !IS_ERR(p_tdm->mclk)) {
+ int ret = clk_prepare_enable(p_tdm->mclk);
+
+ if (ret) {
+ pr_err("Can't enable mclk: %d\n", ret);
+ return ret;
+ }
+ }
capture:
/* update skew for ACODEC_ADC */