]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
ASoC: qcom: remove hardcoded i2s port number
authorSrinivas Kandagatla <srinivas.kandagatla@linaro.org>
Sat, 16 May 2015 12:32:25 +0000 (13:32 +0100)
committerMark Brown <broonie@kernel.org>
Thu, 21 May 2015 20:12:34 +0000 (21:12 +0100)
This patch attempts to remove the hardcoded i2s port number in lpass
driver. Now the the port number comes from the dai id field.

This will allow other SOCs to use different port numbers on the lpass
driver.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Tested-by: Kenneth Westfield <kwestfie@codeaurora.org>
Acked-by: Kenneth Westfield <kwestfie@codeaurora.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/qcom/lpass-cpu.c
sound/soc/qcom/lpass-ipq806x.c

index 5544bfc5735713c60cf8eaa61f905fe65d2a0cc6..fd181330b3cae30aed543158a06882d3876a5134 100644 (file)
@@ -138,8 +138,7 @@ static int lpass_cpu_daiops_hw_params(struct snd_pcm_substream *substream,
        }
 
        ret = regmap_write(drvdata->lpaif_map,
-                          LPAIF_I2SCTL_REG(drvdata->variant,
-                          LPAIF_I2S_PORT_MI2S),
+                          LPAIF_I2SCTL_REG(drvdata->variant, dai->driver->id),
                           regval);
        if (ret) {
                dev_err(dai->dev, "%s() error writing to i2sctl reg: %d\n",
@@ -164,8 +163,8 @@ static int lpass_cpu_daiops_hw_free(struct snd_pcm_substream *substream,
        int ret;
 
        ret = regmap_write(drvdata->lpaif_map,
-                          LPAIF_I2SCTL_REG(drvdata->variant,
-                          LPAIF_I2S_PORT_MI2S), 0);
+                          LPAIF_I2SCTL_REG(drvdata->variant, dai->driver->id),
+                          0);
        if (ret)
                dev_err(dai->dev, "%s() error writing to i2sctl reg: %d\n",
                                __func__, ret);
@@ -180,7 +179,7 @@ static int lpass_cpu_daiops_prepare(struct snd_pcm_substream *substream,
        int ret;
 
        ret = regmap_update_bits(drvdata->lpaif_map,
-                       LPAIF_I2SCTL_REG(drvdata->variant, LPAIF_I2S_PORT_MI2S),
+                       LPAIF_I2SCTL_REG(drvdata->variant, dai->driver->id),
                        LPAIF_I2SCTL_SPKEN_MASK, LPAIF_I2SCTL_SPKEN_ENABLE);
        if (ret)
                dev_err(dai->dev, "%s() error writing to i2sctl reg: %d\n",
@@ -201,7 +200,7 @@ static int lpass_cpu_daiops_trigger(struct snd_pcm_substream *substream,
        case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
                ret = regmap_update_bits(drvdata->lpaif_map,
                                LPAIF_I2SCTL_REG(drvdata->variant,
-                               LPAIF_I2S_PORT_MI2S),
+                                               dai->driver->id),
                                LPAIF_I2SCTL_SPKEN_MASK,
                                LPAIF_I2SCTL_SPKEN_ENABLE);
                if (ret)
@@ -213,7 +212,7 @@ static int lpass_cpu_daiops_trigger(struct snd_pcm_substream *substream,
        case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
                ret = regmap_update_bits(drvdata->lpaif_map,
                                LPAIF_I2SCTL_REG(drvdata->variant,
-                               LPAIF_I2S_PORT_MI2S),
+                                               dai->driver->id),
                                LPAIF_I2SCTL_SPKEN_MASK,
                                LPAIF_I2SCTL_SPKEN_DISABLE);
                if (ret)
@@ -243,8 +242,7 @@ int asoc_qcom_lpass_cpu_dai_probe(struct snd_soc_dai *dai)
 
        /* ensure audio hardware is disabled */
        ret = regmap_write(drvdata->lpaif_map,
-                          LPAIF_I2SCTL_REG(drvdata->variant,
-                          LPAIF_I2S_PORT_MI2S), 0);
+                       LPAIF_I2SCTL_REG(drvdata->variant, dai->driver->id), 0);
        if (ret)
                dev_err(dai->dev, "%s() error writing to i2sctl reg: %d\n",
                                __func__, ret);
index 4a0e3fbb384bc533c941d6f5e27634276cf886fe..cc5f3b4857eb8dc7323fcfa5c0bb42fa977e8505 100644 (file)
@@ -43,6 +43,7 @@ enum lpaif_dma_channels {
 };
 
 static struct snd_soc_dai_driver ipq806x_lpass_cpu_dai_driver = {
+       .id     = IPQ806X_LPAIF_I2S_PORT_MI2S,
        .playback = {
                .stream_name    = "lpass-cpu-playback",
                .formats        = SNDRV_PCM_FMTBIT_S16 |