All of lore.kernel.org
 help / color / mirror / Atom feed
From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
To: Vijendar Mukunda <Vijendar.Mukunda@amd.com>, broonie@kernel.org
Cc: alsa-devel@alsa-project.org, Basavaraj.Hiregoudar@amd.com,
	Sunil-kumar.Dommati@amd.com, Mastan.Katragadda@amd.com,
	Arungopal.kondaveeti@amd.com, mario.limonciello@amd.com,
	Liam Girdwood <lgirdwood@gmail.com>,
	Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.com>,
	Syed Saba Kareem <Syed.SabaKareem@amd.com>,
	open list <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH V3 4/9] ASoC: amd: ps: add SoundWire dma driver dma ops
Date: Tue, 6 Jun 2023 10:38:31 -0500	[thread overview]
Message-ID: <7ed3e421-ad04-746a-e252-45bc83f76256@linux.intel.com> (raw)
In-Reply-To: <20230606060724.2038680-5-Vijendar.Mukunda@amd.com>


> +static int acp63_sdw_dma_start(struct snd_pcm_substream *substream, void __iomem *acp_base)
> +{
> +	struct acp_sdw_dma_stream *stream;
> +	u32 stream_id;
> +	u32 sdw_dma_en_reg;
> +	u32 sdw_dma_en_stat_reg;
> +	u32 sdw_dma_stat;
> +
> +	stream = substream->runtime->private_data;
> +	stream_id = stream->stream_id;
> +	switch (stream->instance) {
> +	case ACP_SDW0:
> +		sdw_dma_en_reg = sdw0_dma_enable_reg[stream_id];
> +		break;
> +	case ACP_SDW1:
> +		sdw_dma_en_reg = sdw1_dma_enable_reg[stream_id];
> +		break;
> +	default:
> +		return -EINVAL;
> +	}
> +	writel(0x01, acp_base + sdw_dma_en_reg);
> +	sdw_dma_en_stat_reg = sdw_dma_en_reg + 4;
> +	return readl_poll_timeout(acp_base + sdw_dma_en_stat_reg, sdw_dma_stat,
> +				  (sdw_dma_stat & BIT(0)), ACP_DELAY_US, ACP_COUNTER);
> +}
> +
> +static int acp63_sdw_dma_stop(struct snd_pcm_substream *substream, void __iomem *acp_base)
> +{
> +	struct acp_sdw_dma_stream *stream;
> +	u32 stream_id;
> +	u32 sdw_dma_en_reg;
> +	u32 sdw_dma_en_stat_reg;
> +	u32 sdw_dma_stat;
> +
> +	stream = substream->runtime->private_data;
> +	stream_id = stream->stream_id;
> +	switch (stream->instance) {
> +	case ACP_SDW0:
> +		sdw_dma_en_reg = sdw0_dma_enable_reg[stream_id];
> +		break;
> +	case ACP_SDW1:
> +		sdw_dma_en_reg = sdw1_dma_enable_reg[stream_id];
> +		break;
> +	default:
> +		return -EINVAL;
> +	}
> +
> +	writel(0, acp_base + sdw_dma_en_reg);
> +	sdw_dma_en_stat_reg = sdw_dma_en_reg + 4;
> +	return readl_poll_timeout(acp_base + sdw_dma_en_stat_reg, sdw_dma_stat, !sdw_dma_stat,
> +				  ACP_DELAY_US, ACP_COUNTER);
> +}

these start/stop routines look mostly the same, except for the value to
be written in the register. Maybe they can be factored with a common
helper, e.g. acp63_sdw_dma_enable(true/false).
> +
> +static int acp63_sdw_dma_trigger(struct snd_soc_component *comp,
> +				 struct snd_pcm_substream *substream,
> +				 int cmd)
> +{
> +	struct sdw_dma_dev_data *sdw_data;
> +	int ret;
> +
> +	sdw_data = dev_get_drvdata(comp->dev);
> +	switch (cmd) {
> +	case SNDRV_PCM_TRIGGER_START:
> +	case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
> +	case SNDRV_PCM_TRIGGER_RESUME:
> +		ret = acp63_sdw_dma_start(substream, sdw_data->acp_base);
> +		break;
> +	case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
> +	case SNDRV_PCM_TRIGGER_SUSPEND:
> +	case SNDRV_PCM_TRIGGER_STOP:
> +		ret = acp63_sdw_dma_stop(substream, sdw_data->acp_base);
> +		break;
> +	default:
> +		ret = -EINVAL;
> +	}
> +	if (ret)
> +		dev_err(comp->dev, "trigger %d failed: %d", cmd, ret);
> +	return ret;
> +}

  reply	other threads:[~2023-06-06 15:42 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-06-06  6:07 [PATCH V3 0/9] ASoC: amd: ps: add SoundWire support Vijendar Mukunda
2023-06-06  6:07 ` [PATCH V3 1/9] ASoC: amd: ps: create platform devices based on acp config Vijendar Mukunda
2023-06-06 14:00   ` Pierre-Louis Bossart
2023-06-07  6:35     ` Mukunda,Vijendar
2023-06-07 16:47       ` Limonciello, Mario
2023-06-08  5:24         ` Mukunda,Vijendar
2023-06-06  6:07 ` [PATCH V3 2/9] ASoC: amd: ps: handle SoundWire interrupts in acp pci driver Vijendar Mukunda
2023-06-06 14:49   ` Pierre-Louis Bossart
2023-06-07  6:48     ` Mukunda,Vijendar
2023-06-06  6:07 ` [PATCH V3 3/9] ASoC: amd: ps: add SoundWire dma driver Vijendar Mukunda
2023-06-06  6:07 ` [PATCH V3 4/9] ASoC: amd: ps: add SoundWire dma driver dma ops Vijendar Mukunda
2023-06-06 15:38   ` Pierre-Louis Bossart [this message]
2023-06-07  7:04     ` Mukunda,Vijendar
2023-06-06  6:07 ` [PATCH V3 5/9] ASoC: amd: ps: add support for SoundWire DMA interrupts Vijendar Mukunda
2023-06-06 14:59   ` Pierre-Louis Bossart
2023-06-07  6:55     ` Mukunda,Vijendar
2023-06-06  6:07 ` [PATCH V3 6/9] ASoC: amd: ps: add pm ops support for SoundWire dma driver Vijendar Mukunda
2023-06-06 15:02   ` Pierre-Louis Bossart
2023-06-07  6:57     ` Mukunda,Vijendar
2023-06-06  6:07 ` [PATCH V3 7/9] ASoC: amd: ps: enable SoundWire dma driver build Vijendar Mukunda
2023-06-06  6:07 ` [PATCH V3 8/9] ASoC: amd: update comments in Kconfig file Vijendar Mukunda
2023-06-06  6:07 ` [PATCH V3 9/9] ASoC: amd: ps: Add SoundWire specific checks in pci driver in pm ops Vijendar Mukunda
2023-06-06 15:06   ` Pierre-Louis Bossart
2023-06-07  6:59     ` Mukunda,Vijendar

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=7ed3e421-ad04-746a-e252-45bc83f76256@linux.intel.com \
    --to=pierre-louis.bossart@linux.intel.com \
    --cc=Arungopal.kondaveeti@amd.com \
    --cc=Basavaraj.Hiregoudar@amd.com \
    --cc=Mastan.Katragadda@amd.com \
    --cc=Sunil-kumar.Dommati@amd.com \
    --cc=Syed.SabaKareem@amd.com \
    --cc=Vijendar.Mukunda@amd.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=lgirdwood@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mario.limonciello@amd.com \
    --cc=perex@perex.cz \
    --cc=tiwai@suse.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.