summaryrefslogtreecommitdiff
path: root/sound/soc/qcom
diff options
context:
space:
mode:
authorSrinivas Kandagatla <srinivas.kandagatla@linaro.org>2015-05-22 00:53:05 +0300
committerMark Brown <broonie@kernel.org>2015-05-22 15:27:06 +0300
commit0054055c590ae5ca69f027d42cf171493476f6d8 (patch)
tree759f9331c7140a7c8a455afd563b2073826872b8 /sound/soc/qcom
parent3e53ac8230c1af075402bb3c1c89777791c2055e (diff)
downloadlinux-0054055c590ae5ca69f027d42cf171493476f6d8.tar.xz
ASoC: qcom: add dma channel control offset to variant data
This patch adds ability to pass dma channel control bits start offset, which differ in differnet qcom SOCs. On apq8016 dma channel control bits start after an offset of 1. Tested-by: Kenneth Westfield <kwestfie@codeaurora.org> Acked-by: Kenneth Westfield <kwestfie@codeaurora.org> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/qcom')
-rw-r--r--sound/soc/qcom/lpass-platform.c2
-rw-r--r--sound/soc/qcom/lpass.h5
2 files changed, 6 insertions, 1 deletions
diff --git a/sound/soc/qcom/lpass-platform.c b/sound/soc/qcom/lpass-platform.c
index fc0889196e7a..8ab0ac1dbedc 100644
--- a/sound/soc/qcom/lpass-platform.c
+++ b/sound/soc/qcom/lpass-platform.c
@@ -91,7 +91,7 @@ static int lpass_platform_pcmops_hw_params(struct snd_pcm_substream *substream,
unsigned int channels = params_channels(params);
unsigned int regval;
int bitwidth;
- int ret, rdma_port = pcm_data->i2s_port;
+ int ret, rdma_port = pcm_data->i2s_port + v->rdmactl_audif_start;
bitwidth = snd_pcm_format_width(format);
if (bitwidth < 0) {
diff --git a/sound/soc/qcom/lpass.h b/sound/soc/qcom/lpass.h
index 75e9370cb360..023170a0943d 100644
--- a/sound/soc/qcom/lpass.h
+++ b/sound/soc/qcom/lpass.h
@@ -61,6 +61,11 @@ struct lpass_variant {
u32 rdma_reg_stride;
u32 rdma_channels;
+ /**
+ * on SOCs like APQ8016 the channel control bits start
+ * at different offset to ipq806x
+ **/
+ u32 rdmactl_audif_start;
/* SOC specific intialization like clocks */
int (*init)(struct platform_device *pdev);
int (*exit)(struct platform_device *pdev);