Browse Source

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>
Srinivas Kandagatla 10 years ago
parent
commit
0054055c59
2 changed files with 6 additions and 1 deletions
  1. 1 1
      sound/soc/qcom/lpass-platform.c
  2. 5 0
      sound/soc/qcom/lpass.h

+ 1 - 1
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 channels = params_channels(params);
 	unsigned int regval;
 	unsigned int regval;
 	int bitwidth;
 	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);
 	bitwidth = snd_pcm_format_width(format);
 	if (bitwidth < 0) {
 	if (bitwidth < 0) {

+ 5 - 0
sound/soc/qcom/lpass.h

@@ -61,6 +61,11 @@ struct lpass_variant {
 	u32	rdma_reg_stride;
 	u32	rdma_reg_stride;
 	u32	rdma_channels;
 	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 */
 	/* SOC specific intialization like clocks */
 	int (*init)(struct platform_device *pdev);
 	int (*init)(struct platform_device *pdev);
 	int (*exit)(struct platform_device *pdev);
 	int (*exit)(struct platform_device *pdev);