aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/qcom
diff options
context:
space:
mode:
authorSrinivas Kandagatla <srinivas.kandagatla@linaro.org>2015-05-16 08:32:25 -0400
committerMark Brown <broonie@kernel.org>2015-05-21 16:12:34 -0400
commit0ae9fd3b2c99099d5a800057b4092fdaa0e973a7 (patch)
tree1b66ec54460b6fbf98f480c1417c9353477cfcb1 /sound/soc/qcom
parent9bae4880acee1cd7340d0566b55b927f92de89fb (diff)
ASoC: qcom: remove hardcoded i2s port number
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>
Diffstat (limited to 'sound/soc/qcom')
-rw-r--r--sound/soc/qcom/lpass-cpu.c16
-rw-r--r--sound/soc/qcom/lpass-ipq806x.c1
2 files changed, 8 insertions, 9 deletions
diff --git a/sound/soc/qcom/lpass-cpu.c b/sound/soc/qcom/lpass-cpu.c
index 5544bfc57357..fd181330b3ca 100644
--- a/sound/soc/qcom/lpass-cpu.c
+++ b/sound/soc/qcom/lpass-cpu.c
@@ -138,8 +138,7 @@ static int lpass_cpu_daiops_hw_params(struct snd_pcm_substream *substream,
138 } 138 }
139 139
140 ret = regmap_write(drvdata->lpaif_map, 140 ret = regmap_write(drvdata->lpaif_map,
141 LPAIF_I2SCTL_REG(drvdata->variant, 141 LPAIF_I2SCTL_REG(drvdata->variant, dai->driver->id),
142 LPAIF_I2S_PORT_MI2S),
143 regval); 142 regval);
144 if (ret) { 143 if (ret) {
145 dev_err(dai->dev, "%s() error writing to i2sctl reg: %d\n", 144 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,
164 int ret; 163 int ret;
165 164
166 ret = regmap_write(drvdata->lpaif_map, 165 ret = regmap_write(drvdata->lpaif_map,
167 LPAIF_I2SCTL_REG(drvdata->variant, 166 LPAIF_I2SCTL_REG(drvdata->variant, dai->driver->id),
168 LPAIF_I2S_PORT_MI2S), 0); 167 0);
169 if (ret) 168 if (ret)
170 dev_err(dai->dev, "%s() error writing to i2sctl reg: %d\n", 169 dev_err(dai->dev, "%s() error writing to i2sctl reg: %d\n",
171 __func__, ret); 170 __func__, ret);
@@ -180,7 +179,7 @@ static int lpass_cpu_daiops_prepare(struct snd_pcm_substream *substream,
180 int ret; 179 int ret;
181 180
182 ret = regmap_update_bits(drvdata->lpaif_map, 181 ret = regmap_update_bits(drvdata->lpaif_map,
183 LPAIF_I2SCTL_REG(drvdata->variant, LPAIF_I2S_PORT_MI2S), 182 LPAIF_I2SCTL_REG(drvdata->variant, dai->driver->id),
184 LPAIF_I2SCTL_SPKEN_MASK, LPAIF_I2SCTL_SPKEN_ENABLE); 183 LPAIF_I2SCTL_SPKEN_MASK, LPAIF_I2SCTL_SPKEN_ENABLE);
185 if (ret) 184 if (ret)
186 dev_err(dai->dev, "%s() error writing to i2sctl reg: %d\n", 185 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,
201 case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: 200 case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
202 ret = regmap_update_bits(drvdata->lpaif_map, 201 ret = regmap_update_bits(drvdata->lpaif_map,
203 LPAIF_I2SCTL_REG(drvdata->variant, 202 LPAIF_I2SCTL_REG(drvdata->variant,
204 LPAIF_I2S_PORT_MI2S), 203 dai->driver->id),
205 LPAIF_I2SCTL_SPKEN_MASK, 204 LPAIF_I2SCTL_SPKEN_MASK,
206 LPAIF_I2SCTL_SPKEN_ENABLE); 205 LPAIF_I2SCTL_SPKEN_ENABLE);
207 if (ret) 206 if (ret)
@@ -213,7 +212,7 @@ static int lpass_cpu_daiops_trigger(struct snd_pcm_substream *substream,
213 case SNDRV_PCM_TRIGGER_PAUSE_PUSH: 212 case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
214 ret = regmap_update_bits(drvdata->lpaif_map, 213 ret = regmap_update_bits(drvdata->lpaif_map,
215 LPAIF_I2SCTL_REG(drvdata->variant, 214 LPAIF_I2SCTL_REG(drvdata->variant,
216 LPAIF_I2S_PORT_MI2S), 215 dai->driver->id),
217 LPAIF_I2SCTL_SPKEN_MASK, 216 LPAIF_I2SCTL_SPKEN_MASK,
218 LPAIF_I2SCTL_SPKEN_DISABLE); 217 LPAIF_I2SCTL_SPKEN_DISABLE);
219 if (ret) 218 if (ret)
@@ -243,8 +242,7 @@ int asoc_qcom_lpass_cpu_dai_probe(struct snd_soc_dai *dai)
243 242
244 /* ensure audio hardware is disabled */ 243 /* ensure audio hardware is disabled */
245 ret = regmap_write(drvdata->lpaif_map, 244 ret = regmap_write(drvdata->lpaif_map,
246 LPAIF_I2SCTL_REG(drvdata->variant, 245 LPAIF_I2SCTL_REG(drvdata->variant, dai->driver->id), 0);
247 LPAIF_I2S_PORT_MI2S), 0);
248 if (ret) 246 if (ret)
249 dev_err(dai->dev, "%s() error writing to i2sctl reg: %d\n", 247 dev_err(dai->dev, "%s() error writing to i2sctl reg: %d\n",
250 __func__, ret); 248 __func__, ret);
diff --git a/sound/soc/qcom/lpass-ipq806x.c b/sound/soc/qcom/lpass-ipq806x.c
index 4a0e3fbb384b..cc5f3b4857eb 100644
--- a/sound/soc/qcom/lpass-ipq806x.c
+++ b/sound/soc/qcom/lpass-ipq806x.c
@@ -43,6 +43,7 @@ enum lpaif_dma_channels {
43}; 43};
44 44
45static struct snd_soc_dai_driver ipq806x_lpass_cpu_dai_driver = { 45static struct snd_soc_dai_driver ipq806x_lpass_cpu_dai_driver = {
46 .id = IPQ806X_LPAIF_I2S_PORT_MI2S,
46 .playback = { 47 .playback = {
47 .stream_name = "lpass-cpu-playback", 48 .stream_name = "lpass-cpu-playback",
48 .formats = SNDRV_PCM_FMTBIT_S16 | 49 .formats = SNDRV_PCM_FMTBIT_S16 |