linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Kenneth Westfield <kwestfie@codeaurora.org>
To: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Patrick Lai <plai@codeaurora.org>,
	Mark Brown <broonie@kernel.org>, Rob Herring <robh+dt@kernel.org>,
	Pawel Moll <pawel.moll@arm.com>,
	Ian Campbell <ijc+devicetree@hellion.org.uk>,
	Kumar Gala <galak@codeaurora.org>,
	Banajit Goswami <bgoswami@codeaurora.org>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.de>,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	alsa-devel@alsa-project.org, linux-arm-msm@vger.kernel.org
Subject: Re: [alsa-devel] [RFC PATCH 00/14] ASoC: qcom: add support to apq8016 audio
Date: Mon, 11 May 2015 21:06:02 -0700	[thread overview]
Message-ID: <20150512040600.GA24087@kwestfie-linux.qualcomm.com> (raw)
In-Reply-To: <5549BA98.9080501@linaro.org>

On Tue, May 05, 2015 at 11:54:16PM -0700, Srinivas Kandagatla wrote:
> Hi Kenneth,
> 
> On 06/05/15 06:47, Kenneth Westfield wrote:
> >>>
> >>>I will test the patches and let you know by Wednesday.  Also, I posted
> >>>some comments, but Patrick should be posting his comments separately
> >>>later next week.
> >Srinivas,
> >
> >After applying the patches, audio playback is no longer functional on
> >the storm board.  Give me some time to debug this and I will get back
> >to you.
> I found atleast one issue with rdma audif bits in ipq806x lpass
> 
> could you try change, this will be fixed properly in next version.
> 
> -----------------------><---------------------------------------------
> diff --git a/sound/soc/qcom/lpass-ipq806x.c
> b/sound/soc/qcom/lpass-ipq806x.c
> index 11a7053..2b00355 100644
> --- a/sound/soc/qcom/lpass-ipq806x.c
> +++ b/sound/soc/qcom/lpass-ipq806x.c
> @@ -69,6 +69,7 @@ struct lpass_variant ipq806x_data = {
>         .rdma_reg_base          = 0x6000,
>         .rdma_reg_stride        = 0x1000,
>         .rdma_channels          = 4,
> +       .rdmactl_audif_start    = 4,
>         .dai_driver             = &lpass_cpu_dai_driver,
>         .num_dai                = 1,
> 
> -----------------------><---------------------------------------------

Srinivas,

I was able to get audio working on the Storm board.  There were several
issues.  First, the I2S control port was saved in the DAI driver id field
(which was 4), but the DAI id field was used by the macro (which was 0).
The patch below fixed it:

-----------------------><---------------------------------------------
diff --git a/sound/soc/qcom/lpass-cpu.c b/sound/soc/qcom/lpass-cpu.c
index 17ad20d..58ae8af 100644
--- a/sound/soc/qcom/lpass-cpu.c
+++ b/sound/soc/qcom/lpass-cpu.c
@@ -146,7 +146,7 @@ static int lpass_cpu_daiops_hw_params(struct snd_pcm_substream *substream,
 	}
 
 	ret = regmap_write(drvdata->lpaif_map,
-			   LPAIF_I2SCTL_REG(drvdata->variant, dai->id),
+			   LPAIF_I2SCTL_REG(drvdata->variant, dai->driver->id),
 			   regval);
 	if (ret) {
 		dev_err(dai->dev, "%s() error writing to i2sctl reg: %d\n",
@@ -171,7 +171,7 @@ 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, dai->id), 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);
@@ -186,7 +186,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, dai->id),
+			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",
@@ -206,7 +206,7 @@ static int lpass_cpu_daiops_trigger(struct snd_pcm_substream *substream,
 	case SNDRV_PCM_TRIGGER_RESUME:
 	case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
 		ret = regmap_update_bits(drvdata->lpaif_map,
-				LPAIF_I2SCTL_REG(drvdata->variant, dai->id),
+				LPAIF_I2SCTL_REG(drvdata->variant, dai->driver->id),
 				LPAIF_I2SCTL_SPKEN_MASK,
 				LPAIF_I2SCTL_SPKEN_ENABLE);
 		if (ret)
@@ -217,7 +217,7 @@ static int lpass_cpu_daiops_trigger(struct snd_pcm_substream *substream,
 	case SNDRV_PCM_TRIGGER_SUSPEND:
 	case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
 		ret = regmap_update_bits(drvdata->lpaif_map,
-				LPAIF_I2SCTL_REG(drvdata->variant, dai->id),
+				LPAIF_I2SCTL_REG(drvdata->variant, dai->driver->id),
 				LPAIF_I2SCTL_SPKEN_MASK,
 				LPAIF_I2SCTL_SPKEN_DISABLE);
 		if (ret)
@@ -247,7 +247,7 @@ int 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, dai->id), 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);
-----------------------><---------------------------------------------

In addition to your patch above, I also needed to correct the rdma_port
assignment by removing the i2s port reference:

-----------------------><---------------------------------------------
diff --git a/sound/soc/qcom/lpass-platform.c b/sound/soc/qcom/lpass-platform.c
index c5907d5..580cae1 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 + v->rdmactl_audif_start;
+	int ret, rdma_port = v->rdmactl_audif_start;
 
 	bitwidth = snd_pcm_format_width(format);
 	if (bitwidth < 0) {
-----------------------><---------------------------------------------

Please incorporate these fixes into your next patch series.

-- 
Kenneth Westfield
Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, 
a Linux Foundation Collaborative Project

  reply	other threads:[~2015-05-12  4:06 UTC|newest]

Thread overview: 88+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-30 17:15 [RFC PATCH 00/14] ASoC: qcom: add support to apq8016 audio Srinivas Kandagatla
2015-04-30 17:16 ` [RFC PATCH 01/14] ASoC: qcom: Remove redundant error check Srinivas Kandagatla
2015-05-04 12:24   ` Mark Brown
2015-04-30 17:16 ` [RFC PATCH 02/14] ASoC: qcom: remove unnecessary header files Srinivas Kandagatla
2015-05-04 12:24   ` Mark Brown
2015-04-30 17:16 ` [RFC PATCH 03/14] ASoC: qcom: move ipq806x specific bits out of lpass driver Srinivas Kandagatla
2015-05-02 23:57   ` Kenneth Westfield
2015-05-05  5:19     ` Kenneth Westfield
2015-05-05  7:17       ` Srinivas Kandagatla
2015-05-06  5:43         ` [alsa-devel] " Kenneth Westfield
2015-05-05  7:16     ` Srinivas Kandagatla
2015-05-06  5:35       ` [alsa-devel] " Kenneth Westfield
2015-04-30 17:17 ` [RFC PATCH 04/14] ASoC: qcom: remove hardcoded i2s port number Srinivas Kandagatla
2015-04-30 17:17 ` [RFC PATCH 05/14] ASoC: qcom: remove hardcoded dma channel Srinivas Kandagatla
2015-04-30 17:17 ` [RFC PATCH 06/14] ASoC: qcom: support bitclk and osrclk per i2s port Srinivas Kandagatla
2015-04-30 17:17 ` [RFC PATCH 07/14] ASoC: qcom: add no osr clk flag to lpass variant Srinivas Kandagatla
2015-05-02 23:58   ` Kenneth Westfield
2015-05-05  7:17     ` Srinivas Kandagatla
2015-05-04 12:26   ` Mark Brown
2015-05-05  7:16     ` Srinivas Kandagatla
2015-04-30 17:17 ` [RFC PATCH 08/14] ASoC: qcom: add dma channel control offset to variant data Srinivas Kandagatla
2015-05-02 23:59   ` Kenneth Westfield
2015-05-05  7:16     ` Srinivas Kandagatla
2015-04-30 17:17 ` [RFC PATCH 09/14] ASoC: qcom: Add ability to handle interrupts per dma channel Srinivas Kandagatla
2015-05-03  0:00   ` Kenneth Westfield
2015-05-05  7:17     ` Srinivas Kandagatla
2015-04-30 17:17 ` [RFC PATCH 10/14] ASoC: qcom: add bit map to track static dma channel allocations Srinivas Kandagatla
2015-04-30 17:17 ` [RFC PATCH 11/14] ASoC: qcom: Add apq8016 lpass driver support Srinivas Kandagatla
2015-04-30 17:18 ` [RFC PATCH 12/14] ASoC: qcom: add apq8016 sound card support Srinivas Kandagatla
2015-05-03  0:01   ` Kenneth Westfield
2015-05-05  7:17     ` Srinivas Kandagatla
2015-04-30 17:18 ` [RFC PATCH 13/14] ASoC: qcom: Document apq8016 bindings Srinivas Kandagatla
2015-04-30 17:18 ` [RFC PATCH 14/14] ASoC: qcom: document apq8016 machine driver bindings Srinivas Kandagatla
2015-05-03  0:03   ` Kenneth Westfield
2015-05-03  3:59     ` Kenneth Westfield
2015-05-05  7:17     ` Srinivas Kandagatla
2015-05-06  5:41       ` [alsa-devel] " Kenneth Westfield
2015-05-02 23:57 ` [RFC PATCH 00/14] ASoC: qcom: add support to apq8016 audio Kenneth Westfield
2015-05-06  5:47   ` Kenneth Westfield
2015-05-06  6:54     ` Srinivas Kandagatla
2015-05-12  4:06       ` Kenneth Westfield [this message]
2015-05-12 10:21         ` [alsa-devel] " Srinivas Kandagatla
2015-05-12 17:04           ` Lars-Peter Clausen
2015-05-14  7:55             ` Srinivas Kandagatla
2015-05-12 13:11         ` Srinivas Kandagatla
2015-05-13 11:58 ` [PATCH v1 00/13] " Srinivas Kandagatla
2015-05-13 12:00   ` [PATCH v1 01/13] ASoC: qcom: make lpass driver depend on OF Srinivas Kandagatla
2015-05-13 12:00   ` [PATCH v1 02/13] ASoC: qcom: move ipq806x specific bits out of lpass driver Srinivas Kandagatla
2015-05-15  5:23     ` Kenneth Westfield
2015-05-15  8:48       ` Srinivas Kandagatla
2015-05-13 12:00   ` [PATCH v1 03/13] ASoC: qcom: remove hardcoded i2s port number Srinivas Kandagatla
2015-05-13 12:00   ` [PATCH v1 04/13] ASoC: qcom: remove hardcoded dma channel Srinivas Kandagatla
2015-05-13 12:00   ` [PATCH v1 05/13] ASoC: qcom: support bitclk and osrclk per i2s port Srinivas Kandagatla
2015-05-15  5:23     ` Kenneth Westfield
2015-05-15  8:44       ` Srinivas Kandagatla
2015-05-13 12:02   ` [PATCH v1 06/13] ASoC: qcom: make osr clock optional Srinivas Kandagatla
2015-05-13 12:02   ` [PATCH v1 07/13] ASoC: qcom: add dma channel control offset to variant data Srinivas Kandagatla
2015-05-13 12:02   ` [PATCH v1 08/13] ASoC: qcom: Add ability to handle interrupts per dma channel Srinivas Kandagatla
2015-05-13 12:02   ` [PATCH v1 09/13] ASoC: qcom: add bit map to track static dma channel allocations Srinivas Kandagatla
2015-05-13 12:03   ` [PATCH v1 10/13] ASoC: qcom: Add apq8016 lpass driver support Srinivas Kandagatla
2015-05-15  5:23     ` Kenneth Westfield
2015-05-15  8:46       ` Srinivas Kandagatla
2015-05-13 12:03   ` [PATCH v1 11/13] ASoC: qcom: add apq8016 sound card support Srinivas Kandagatla
2015-05-15  5:23     ` Kenneth Westfield
2015-05-15  8:47       ` Srinivas Kandagatla
2015-05-13 12:03   ` [PATCH v1 12/13] ASoC: qcom: Document apq8016 bindings Srinivas Kandagatla
2015-05-13 12:03   ` [PATCH v1 13/13] ASoC: qcom: document apq8016 sbc machine driver bindings Srinivas Kandagatla
2015-05-16 12:31 ` [PATCH v2 00/13] ASoC: qcom: add support to apq8016 audio Srinivas Kandagatla
2015-05-16 12:32   ` [PATCH v2 01/13] ASoC: qcom: make lpass driver depend on OF Srinivas Kandagatla
2015-05-21 20:10     ` Mark Brown
2015-05-16 12:32   ` [PATCH v2 02/13] ASoC: qcom: move ipq806x specific bits out of lpass driver Srinivas Kandagatla
2015-05-21 20:11     ` Mark Brown
2015-05-16 12:32   ` [PATCH v2 03/13] ASoC: qcom: remove hardcoded i2s port number Srinivas Kandagatla
2015-05-16 12:32   ` [PATCH v2 04/13] ASoC: qcom: remove hardcoded dma channel Srinivas Kandagatla
2015-05-21 20:12     ` Mark Brown
2015-05-16 12:32   ` [PATCH v2 05/13] ASoC: qcom: support bitclk and osrclk per i2s port Srinivas Kandagatla
2015-05-17 16:14     ` Kenneth Westfield
2015-05-16 12:32   ` [PATCH v2 06/13] ASoC: qcom: make osr clock optional Srinivas Kandagatla
2015-05-17 16:15     ` Kenneth Westfield
2015-05-16 12:32   ` [PATCH v2 07/13] ASoC: qcom: add dma channel control offset to variant data Srinivas Kandagatla
2015-05-16 12:33   ` [PATCH v2 08/13] ASoC: qcom: Add ability to handle interrupts per dma channel Srinivas Kandagatla
2015-05-16 12:33   ` [PATCH v2 09/13] ASoC: qcom: add bit map to track static dma channel allocations Srinivas Kandagatla
2015-05-16 12:33   ` [PATCH v2 10/13] ASoC: qcom: Add apq8016 lpass driver support Srinivas Kandagatla
2015-05-16 12:33   ` [PATCH v2 11/13] ASoC: qcom: add apq8016 sound card support Srinivas Kandagatla
2015-05-16 12:33   ` [PATCH v2 12/13] ASoC: qcom: Document apq8016 bindings Srinivas Kandagatla
2015-05-16 12:33   ` [PATCH v2 13/13] ASoC: qcom: document apq8016 sbc machine driver bindings Srinivas Kandagatla
2015-05-17 16:15   ` [PATCH v2 00/13] ASoC: qcom: add support to apq8016 audio Kenneth Westfield
2015-05-21 17:05   ` Mark Brown

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150512040600.GA24087@kwestfie-linux.qualcomm.com \
    --to=kwestfie@codeaurora.org \
    --cc=alsa-devel@alsa-project.org \
    --cc=bgoswami@codeaurora.org \
    --cc=broonie@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=galak@codeaurora.org \
    --cc=ijc+devicetree@hellion.org.uk \
    --cc=lgirdwood@gmail.com \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pawel.moll@arm.com \
    --cc=perex@perex.cz \
    --cc=plai@codeaurora.org \
    --cc=robh+dt@kernel.org \
    --cc=srinivas.kandagatla@linaro.org \
    --cc=tiwai@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).