ASoC: qcom: lpass-cpu: Enable MI2S BCLK and LRCLK together
authorV Sujith Kumar Reddy <vsujithk@codeaurora.org>
Fri, 18 Sep 2020 16:54:33 +0000 (22:24 +0530)
committerMark Brown <broonie@kernel.org>
Fri, 25 Sep 2020 19:50:40 +0000 (20:50 +0100)
Update lpass-cpu.c to enable I2S BCLK and LRCLK together.
Remove BCLK enable in lpass_cpu_daiops_startup and
add in lpass_cpu_daiops_trigger API.

Signed-off-by: V Sujith Kumar Reddy <vsujithk@codeaurora.org>
Signed-off-by: Srinivasa Rao Mandadapu <srivasam@codeaurora.org>
Link: https://lore.kernel.org/r/1600448073-6709-1-git-send-email-srivasam@codeaurora.org
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/qcom/lpass-cpu.c

index 1ee6d8b..0718a0f 100644 (file)
@@ -80,14 +80,6 @@ static int lpass_cpu_daiops_startup(struct snd_pcm_substream *substream,
                dev_err(dai->dev, "error in enabling mi2s osr clk: %d\n", ret);
                return ret;
        }
-
-       ret = clk_prepare_enable(drvdata->mi2s_bit_clk[dai->driver->id]);
-       if (ret) {
-               dev_err(dai->dev, "error in enabling mi2s bit clk: %d\n", ret);
-               clk_disable_unprepare(drvdata->mi2s_osr_clk[dai->driver->id]);
-               return ret;
-       }
-
        return 0;
 }
 
@@ -310,6 +302,14 @@ static int lpass_cpu_daiops_trigger(struct snd_pcm_substream *substream,
                if (ret)
                        dev_err(dai->dev, "error writing to i2sctl reg: %d\n",
                                ret);
+
+               ret = clk_prepare_enable(drvdata->mi2s_bit_clk[id]);
+               if (ret) {
+                       dev_err(dai->dev, "error in enabling mi2s bit clk: %d\n", ret);
+                       clk_disable_unprepare(drvdata->mi2s_osr_clk[id]);
+                       return ret;
+               }
+
                break;
        case SNDRV_PCM_TRIGGER_STOP:
        case SNDRV_PCM_TRIGGER_SUSPEND: