[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <5ca55e4b-51e5-7d1e-31a6-73f923a10078@linux.intel.com>
Date: Wed, 13 Nov 2019 10:29:57 -0600
From: Pierre-Louis Bossart <pierre-louis.bossart@...ux.intel.com>
To: Ravulapati Vishnu vardhan rao
<Vishnuvardhanrao.Ravulapati@....com>
Cc: "moderated list:SOUND - SOC LAYER / DYNAMIC AUDIO POWER MANAGEM..."
<alsa-devel@...a-project.org>,
Maruthi Bayyavarapu <maruthi.bayyavarapu@....com>,
Kuninori Morimoto <kuninori.morimoto.gx@...esas.com>,
open list <linux-kernel@...r.kernel.org>,
Takashi Iwai <tiwai@...e.com>,
YueHaibing <yuehaibing@...wei.com>,
Liam Girdwood <lgirdwood@...il.com>, Akshu.Agrawal@....com,
Sanju R Mehta <sanju.mehta@....com>,
Mark Brown <broonie@...nel.org>, djkurtz@...gle.com,
Vijendar Mukunda <Vijendar.Mukunda@....com>,
Alexander.Deucher@....com,
Colin Ian King <colin.king@...onical.com>
Subject: Re: [alsa-devel] [RESEND PATCH v5 3/6] ASoC: amd: Enabling I2S
instance in DMA and DAI
> @@ -83,9 +83,20 @@ static int acp3x_i2s_hwparams(struct snd_pcm_substream *substream,
> struct snd_pcm_hw_params *params,
> struct snd_soc_dai *dai)
> {
> - u32 val = 0;
> + u32 val;
> + u32 reg_val;
nit-pick: xmas-tree style, move the declarations below
> @@ -104,24 +115,46 @@ static int acp3x_i2s_hwparams(struct snd_pcm_substream *substream,
> return -EINVAL;
> }
> if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
> - val = rv_readl(rtd->acp3x_base + mmACP_BTTDM_ITER);
> - val = val | (rtd->xfer_resolution << 3);
> - rv_writel(val, rtd->acp3x_base + mmACP_BTTDM_ITER);
> + switch (rtd->i2s_instance) {
> + case I2S_BT_INSTANCE:
> + reg_val = mmACP_BTTDM_ITER;
> + break;
> + case I2S_SP_INSTANCE:
> + default:
> + reg_val = mmACP_I2STDM_ITER;
> + }
> } else {
> - val = rv_readl(rtd->acp3x_base + mmACP_BTTDM_IRER);
> - val = val | (rtd->xfer_resolution << 3);
> - rv_writel(val, rtd->acp3x_base + mmACP_BTTDM_IRER);
> + switch (rtd->i2s_instance) {
> + case I2S_BT_INSTANCE:
> + reg_val = mmACP_BTTDM_IRER;
> + break;
> + case I2S_SP_INSTANCE:
> + default:
> + reg_val = mmACP_I2STDM_IRER;
> + }
> }
> + val = rv_readl(rtd->acp3x_base + reg_val);
> + val = val | (rtd->xfer_resolution << 3);
> + rv_writel(val, rtd->acp3x_base + reg_val);
> return 0;
> }
nice cleanup, much better than previous versions!
>
> static int acp3x_i2s_trigger(struct snd_pcm_substream *substream,
> int cmd, struct snd_soc_dai *dai)
> {
> - int ret = 0;
> + int ret;
move 2 lines below.
> struct i2s_stream_instance *rtd = substream->runtime->private_data;
> - u32 val, period_bytes;
> -
> + u32 val, period_bytes, reg_val, ier_val, water_val;
> + struct snd_soc_pcm_runtime *prtd = substream->private_data;
> + struct snd_soc_card *card = prtd->card;
> + struct acp3x_platform_info *pinfo = snd_soc_card_get_drvdata(card);
> static void config_acp3x_dma(struct i2s_stream_instance *rtd, int direction)
> {
> u16 page_idx;
> - u32 low, high, val, acp_fifo_addr;
> - dma_addr_t addr = rtd->dma_addr;
> + uint64_t low, high, val, acp_fifo_addr;
> + uint64_t reg_ringbuf_size, reg_dma_size, reg_fifo_size, reg_fifo_addr;
> + dma_addr_t addr;
nit-pick: xmas-tree style
> @@ -303,13 +346,24 @@ static int acp3x_dma_hw_params(struct snd_soc_component *component,
> struct snd_pcm_hw_params *params)
> {
> int status;
> - u64 size;
> - struct snd_pcm_runtime *runtime = substream->runtime;
> - struct i2s_stream_instance *rtd = runtime->private_data;
> + uint64_t size;
> + struct snd_soc_pcm_runtime *prtd = substream->private_data;
> + struct snd_soc_card *card = prtd->card;
> + struct acp3x_platform_info *pinfo = snd_soc_card_get_drvdata(card);
>
> + struct i2s_stream_instance *rtd = substream->runtime->private_data;
nit pick: xmas-tree style and newlines
Powered by blists - more mailing lists