From: Vijendar Mukunda <Vijendar.Mukunda@amd.com> To: <broonie@kernel.org>, <vkoul@kernel.org>, <alsa-devel@alsa-project.org> Cc: Mastan.Katragadda@amd.com, Sunil-kumar.Dommati@amd.com, open list <linux-kernel@vger.kernel.org>, Basavaraj.Hiregoudar@amd.com, Takashi Iwai <tiwai@suse.com>, Liam Girdwood <lgirdwood@gmail.com>, Mario.Limonciello@amd.com, Vijendar Mukunda <Vijendar.Mukunda@amd.com>, arungopal.kondaveeti@amd.com Subject: [PATCH 18/19] ASoC: amd: ps: implement system level pm ops for soundwire dma driver Date: Wed, 11 Jan 2023 14:32:21 +0530 [thread overview] Message-ID: <20230111090222.2016499-19-Vijendar.Mukunda@amd.com> (raw) In-Reply-To: <20230111090222.2016499-1-Vijendar.Mukunda@amd.com> Add support for system level pm ops for soundwire dma driver for pink sardine platform. Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com> --- sound/soc/amd/ps/ps-sdw-dma.c | 59 +++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/sound/soc/amd/ps/ps-sdw-dma.c b/sound/soc/amd/ps/ps-sdw-dma.c index 960c0bc5e848..ba2eea23d41e 100644 --- a/sound/soc/amd/ps/ps-sdw-dma.c +++ b/sound/soc/amd/ps/ps-sdw-dma.c @@ -623,6 +623,64 @@ static int acp63_sdw_platform_remove(struct platform_device *pdev) return 0; } +static int __maybe_unused acp63_sdw_pcm_resume(struct device *dev) +{ + struct sdw_dma_dev_data *sdw_dma_data; + struct sdw_stream_instance *sdw_ins; + struct snd_pcm_runtime *runtime; + u32 period_bytes, buf_size, water_mark_size_reg; + int ret; + int index; + + sdw_dma_data = dev_get_drvdata(dev); + for (index = 0; index < ACP63_SDW_MAX_STREAMS; index++) { + if (sdw_dma_data->sdw_stream[index] && + sdw_dma_data->sdw_stream[index]->runtime) { + switch (index) { + case ACP_SDW_AUDIO_TX: + water_mark_size_reg = ACP_AUDIO_TX_INTR_WATERMARK_SIZE; + break; + case ACP_SDW_BT_TX: + water_mark_size_reg = ACP_BT_TX_INTR_WATERMARK_SIZE; + break; + case ACP_SDW_HS_TX: + water_mark_size_reg = ACP_HS_TX_INTR_WATERMARK_SIZE; + break; + case ACP_SDW1_BT_TX: + water_mark_size_reg = ACP_P1_BT_TX_INTR_WATERMARK_SIZE; + break; + case ACP_SDW_AUDIO_RX: + water_mark_size_reg = ACP_AUDIO_RX_INTR_WATERMARK_SIZE; + break; + case ACP_SDW_BT_RX: + water_mark_size_reg = ACP_BT_RX_INTR_WATERMARK_SIZE; + break; + case ACP_SDW_HS_RX: + water_mark_size_reg = ACP_HS_RX_INTR_WATERMARK_SIZE; + break; + case ACP_SDW1_BT_RX: + water_mark_size_reg = ACP_P1_BT_RX_INTR_WATERMARK_SIZE; + break; + default: + dev_err(dev, "%s: Invalid channel type\n", __func__); + return -EINVAL; + } + runtime = sdw_dma_data->sdw_stream[index]->runtime; + sdw_ins = runtime->private_data; + period_bytes = frames_to_bytes(runtime, runtime->period_size); + buf_size = frames_to_bytes(runtime, runtime->buffer_size); + acp63_config_dma(sdw_ins, index); + ret = acp63_configure_sdw_ringbuffer(sdw_dma_data->acp_base, index, + buf_size); + if (ret) + return ret; + acp63_writel(period_bytes, sdw_dma_data->acp_base + water_mark_size_reg); + } + } + acp63_enable_disable_sdw_dma_interrupts(sdw_dma_data->acp_base, true); + return 0; +} + static int __maybe_unused acp63_sdw_pcm_runtime_suspend(struct device *dev) { struct sdw_dma_dev_data *sdw_dma_data; @@ -650,6 +708,7 @@ static int __maybe_unused acp63_sdw_pcm_runtime_resume(struct device *dev) static const struct dev_pm_ops acp63_pm_ops = { SET_RUNTIME_PM_OPS(acp63_sdw_pcm_runtime_suspend, acp63_sdw_pcm_runtime_resume, NULL) + SET_SYSTEM_SLEEP_PM_OPS(acp63_sdw_pcm_runtime_suspend, acp63_sdw_pcm_resume) }; static struct platform_driver acp63_sdw_dma_driver = { -- 2.34.1
WARNING: multiple messages have this Message-ID (diff)
From: Vijendar Mukunda <Vijendar.Mukunda@amd.com> To: <broonie@kernel.org>, <vkoul@kernel.org>, <alsa-devel@alsa-project.org> Cc: <Basavaraj.Hiregoudar@amd.com>, <Sunil-kumar.Dommati@amd.com>, <Mario.Limonciello@amd.com>, <Mastan.Katragadda@amd.com>, <arungopal.kondaveeti@amd.com>, Vijendar Mukunda <Vijendar.Mukunda@amd.com>, Liam Girdwood <lgirdwood@gmail.com>, Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.com>, open list <linux-kernel@vger.kernel.org> Subject: [PATCH 18/19] ASoC: amd: ps: implement system level pm ops for soundwire dma driver Date: Wed, 11 Jan 2023 14:32:21 +0530 [thread overview] Message-ID: <20230111090222.2016499-19-Vijendar.Mukunda@amd.com> (raw) In-Reply-To: <20230111090222.2016499-1-Vijendar.Mukunda@amd.com> Add support for system level pm ops for soundwire dma driver for pink sardine platform. Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com> --- sound/soc/amd/ps/ps-sdw-dma.c | 59 +++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/sound/soc/amd/ps/ps-sdw-dma.c b/sound/soc/amd/ps/ps-sdw-dma.c index 960c0bc5e848..ba2eea23d41e 100644 --- a/sound/soc/amd/ps/ps-sdw-dma.c +++ b/sound/soc/amd/ps/ps-sdw-dma.c @@ -623,6 +623,64 @@ static int acp63_sdw_platform_remove(struct platform_device *pdev) return 0; } +static int __maybe_unused acp63_sdw_pcm_resume(struct device *dev) +{ + struct sdw_dma_dev_data *sdw_dma_data; + struct sdw_stream_instance *sdw_ins; + struct snd_pcm_runtime *runtime; + u32 period_bytes, buf_size, water_mark_size_reg; + int ret; + int index; + + sdw_dma_data = dev_get_drvdata(dev); + for (index = 0; index < ACP63_SDW_MAX_STREAMS; index++) { + if (sdw_dma_data->sdw_stream[index] && + sdw_dma_data->sdw_stream[index]->runtime) { + switch (index) { + case ACP_SDW_AUDIO_TX: + water_mark_size_reg = ACP_AUDIO_TX_INTR_WATERMARK_SIZE; + break; + case ACP_SDW_BT_TX: + water_mark_size_reg = ACP_BT_TX_INTR_WATERMARK_SIZE; + break; + case ACP_SDW_HS_TX: + water_mark_size_reg = ACP_HS_TX_INTR_WATERMARK_SIZE; + break; + case ACP_SDW1_BT_TX: + water_mark_size_reg = ACP_P1_BT_TX_INTR_WATERMARK_SIZE; + break; + case ACP_SDW_AUDIO_RX: + water_mark_size_reg = ACP_AUDIO_RX_INTR_WATERMARK_SIZE; + break; + case ACP_SDW_BT_RX: + water_mark_size_reg = ACP_BT_RX_INTR_WATERMARK_SIZE; + break; + case ACP_SDW_HS_RX: + water_mark_size_reg = ACP_HS_RX_INTR_WATERMARK_SIZE; + break; + case ACP_SDW1_BT_RX: + water_mark_size_reg = ACP_P1_BT_RX_INTR_WATERMARK_SIZE; + break; + default: + dev_err(dev, "%s: Invalid channel type\n", __func__); + return -EINVAL; + } + runtime = sdw_dma_data->sdw_stream[index]->runtime; + sdw_ins = runtime->private_data; + period_bytes = frames_to_bytes(runtime, runtime->period_size); + buf_size = frames_to_bytes(runtime, runtime->buffer_size); + acp63_config_dma(sdw_ins, index); + ret = acp63_configure_sdw_ringbuffer(sdw_dma_data->acp_base, index, + buf_size); + if (ret) + return ret; + acp63_writel(period_bytes, sdw_dma_data->acp_base + water_mark_size_reg); + } + } + acp63_enable_disable_sdw_dma_interrupts(sdw_dma_data->acp_base, true); + return 0; +} + static int __maybe_unused acp63_sdw_pcm_runtime_suspend(struct device *dev) { struct sdw_dma_dev_data *sdw_dma_data; @@ -650,6 +708,7 @@ static int __maybe_unused acp63_sdw_pcm_runtime_resume(struct device *dev) static const struct dev_pm_ops acp63_pm_ops = { SET_RUNTIME_PM_OPS(acp63_sdw_pcm_runtime_suspend, acp63_sdw_pcm_runtime_resume, NULL) + SET_SYSTEM_SLEEP_PM_OPS(acp63_sdw_pcm_runtime_suspend, acp63_sdw_pcm_resume) }; static struct platform_driver acp63_sdw_dma_driver = { -- 2.34.1
next prev parent reply other threads:[~2023-01-11 9:05 UTC|newest] Thread overview: 170+ messages / expand[flat|nested] mbox.gz Atom feed top 2023-01-11 9:02 [PATCH 00/19] Add soundwire support for Pink Sardine platform Vijendar Mukunda 2023-01-11 9:02 ` [PATCH 01/19] ASoC: amd: ps: create platform devices based on acp config Vijendar Mukunda 2023-01-11 9:02 ` Vijendar Mukunda 2023-01-11 13:27 ` Amadeusz Sławiński 2023-01-11 13:27 ` Amadeusz Sławiński 2023-01-11 14:13 ` Mukunda,Vijendar 2023-01-11 14:13 ` Mukunda,Vijendar 2023-01-11 13:32 ` Pierre-Louis Bossart 2023-01-11 13:32 ` Pierre-Louis Bossart 2023-01-13 12:36 ` Mukunda,Vijendar 2023-01-13 12:36 ` Mukunda,Vijendar 2023-01-13 17:11 ` Pierre-Louis Bossart 2023-01-13 17:11 ` Pierre-Louis Bossart 2023-01-16 8:02 ` Mukunda,Vijendar 2023-01-16 8:02 ` Mukunda,Vijendar 2023-01-31 13:09 ` Mukunda,Vijendar 2023-01-31 13:09 ` Mukunda,Vijendar 2023-01-31 13:24 ` Mario Limonciello 2023-01-31 13:24 ` Mario Limonciello 2023-01-31 16:00 ` Pierre-Louis Bossart 2023-01-31 16:00 ` Pierre-Louis Bossart 2023-01-31 22:57 ` Limonciello, Mario 2023-01-31 22:57 ` Limonciello, Mario 2023-02-01 0:51 ` Pierre-Louis Bossart 2023-02-01 0:51 ` Pierre-Louis Bossart 2023-02-01 1:45 ` Mukunda,Vijendar 2023-02-01 1:45 ` Mukunda,Vijendar 2023-02-01 2:03 ` Pierre-Louis Bossart 2023-02-01 2:03 ` Pierre-Louis Bossart 2023-02-01 2:10 ` Mukunda,Vijendar 2023-02-01 2:10 ` Mukunda,Vijendar 2023-02-01 3:52 ` Pierre-Louis Bossart 2023-02-01 6:01 ` Mukunda,Vijendar 2023-02-01 23:08 ` Pierre-Louis Bossart 2023-02-06 6:30 ` Mukunda,Vijendar 2023-02-06 14:50 ` Pierre-Louis Bossart 2023-02-06 16:38 ` Mukunda,Vijendar 2023-01-11 9:02 ` [PATCH 02/19] soundwire: amd: Add support for AMD Master driver Vijendar Mukunda 2023-01-11 9:02 ` Vijendar Mukunda 2023-01-11 13:59 ` Amadeusz Sławiński 2023-01-11 13:59 ` Amadeusz Sławiński 2023-01-11 14:16 ` Mukunda,Vijendar 2023-01-11 14:16 ` Mukunda,Vijendar 2023-01-11 14:37 ` Pierre-Louis Bossart 2023-01-11 14:37 ` Pierre-Louis Bossart 2023-01-13 18:21 ` Mukunda,Vijendar 2023-01-13 18:21 ` Mukunda,Vijendar 2023-01-13 18:41 ` Pierre-Louis Bossart 2023-01-13 18:41 ` Pierre-Louis Bossart 2023-01-16 7:53 ` Mukunda,Vijendar 2023-01-16 7:53 ` Mukunda,Vijendar 2023-01-16 14:57 ` Pierre-Louis Bossart 2023-01-16 14:57 ` Pierre-Louis Bossart 2023-01-17 11:37 ` Mukunda,Vijendar 2023-01-17 11:37 ` Mukunda,Vijendar 2023-01-11 9:02 ` [PATCH 03/19] soundwire: amd: register sdw controller dai ops Vijendar Mukunda 2023-01-11 9:02 ` Vijendar Mukunda 2023-01-11 14:58 ` Pierre-Louis Bossart 2023-01-11 14:58 ` Pierre-Louis Bossart 2023-01-13 11:31 ` Mukunda,Vijendar 2023-01-13 11:31 ` Mukunda,Vijendar 2023-01-13 17:13 ` Pierre-Louis Bossart 2023-01-13 17:13 ` Pierre-Louis Bossart 2023-01-11 14:59 ` Amadeusz Sławiński 2023-01-11 14:59 ` Amadeusz Sławiński 2023-01-11 9:02 ` [PATCH 04/19] soundwire: amd: enable build for AMD soundwire master driver Vijendar Mukunda 2023-01-11 9:02 ` Vijendar Mukunda 2023-01-19 18:35 ` kernel test robot 2023-01-19 18:35 ` kernel test robot 2023-01-11 9:02 ` [PATCH 05/19] soundwire: amd: add soundwire interrupt handling Vijendar Mukunda 2023-01-11 9:02 ` Vijendar Mukunda 2023-01-11 15:19 ` Pierre-Louis Bossart 2023-01-11 15:19 ` Pierre-Louis Bossart 2023-01-19 22:00 ` kernel test robot 2023-01-19 22:00 ` kernel test robot 2023-01-11 9:02 ` [PATCH 06/19] ASoC: amd: ps: add support for soundwire interrupts in acp pci driver Vijendar Mukunda 2023-01-11 9:02 ` Vijendar Mukunda 2023-01-11 9:02 ` [PATCH 07/19] ASoC: amd: ps: add soundwire dma driver for pink sardine platform Vijendar Mukunda 2023-01-11 9:02 ` Vijendar Mukunda 2023-01-11 15:22 ` Pierre-Louis Bossart 2023-01-11 15:22 ` Pierre-Louis Bossart 2023-01-12 9:10 ` Mukunda,Vijendar 2023-01-12 9:10 ` Mukunda,Vijendar 2023-01-11 9:02 ` [PATCH 08/19] ASoC: amd: ps: add soundwire dma driver dma ops Vijendar Mukunda 2023-01-11 9:02 ` Vijendar Mukunda 2023-01-11 13:04 ` Mark Brown 2023-01-11 13:04 ` Mark Brown 2023-01-11 14:08 ` Mukunda,Vijendar 2023-01-11 14:08 ` Mukunda,Vijendar 2023-01-11 15:34 ` Pierre-Louis Bossart 2023-01-11 15:34 ` Pierre-Louis Bossart 2023-01-13 11:16 ` Mukunda,Vijendar 2023-01-13 11:16 ` Mukunda,Vijendar 2023-01-13 17:05 ` Pierre-Louis Bossart 2023-01-13 17:05 ` Pierre-Louis Bossart 2023-01-16 6:59 ` Mukunda,Vijendar 2023-01-16 6:59 ` Mukunda,Vijendar 2023-01-11 9:02 ` [PATCH 09/19] ASoC: amd: ps: add support for Soundwire DMA interrupts Vijendar Mukunda 2023-01-11 9:02 ` Vijendar Mukunda 2023-01-11 15:38 ` Pierre-Louis Bossart 2023-01-11 15:38 ` Pierre-Louis Bossart 2023-01-12 10:55 ` Mukunda,Vijendar 2023-01-12 10:55 ` Mukunda,Vijendar 2023-01-11 9:02 ` [PATCH 10/19] ASoC: amd: ps: enable Soundwire DMA driver build Vijendar Mukunda 2023-01-11 9:02 ` Vijendar Mukunda 2023-01-11 9:02 ` [PATCH 11/19] ASoC: amd: update comments in Kconfig file Vijendar Mukunda 2023-01-11 9:02 ` Vijendar Mukunda 2023-01-11 9:02 ` [PATCH 12/19] ASoC: amd: ps: Add soundwire specific checks in pci driver in pm ops Vijendar Mukunda 2023-01-11 9:02 ` Vijendar Mukunda 2023-01-11 9:02 ` [PATCH 13/19] ASoC: amd: ps: add support for runtime pm ops for soundwire dma driver Vijendar Mukunda 2023-01-11 9:02 ` Vijendar Mukunda 2023-01-11 9:02 ` [PATCH 14/19] soundwire: amd: add runtime pm ops for AMD master driver Vijendar Mukunda 2023-01-11 9:02 ` Vijendar Mukunda 2023-01-11 15:47 ` Pierre-Louis Bossart 2023-01-11 15:47 ` Pierre-Louis Bossart 2023-01-12 10:35 ` Mukunda,Vijendar 2023-01-12 10:35 ` Mukunda,Vijendar 2023-01-12 14:47 ` Pierre-Louis Bossart 2023-01-12 14:47 ` Pierre-Louis Bossart 2023-01-11 9:02 ` [PATCH 15/19] soundwire: amd: add startup and shutdown dai ops Vijendar Mukunda 2023-01-11 9:02 ` Vijendar Mukunda 2023-01-11 15:49 ` Pierre-Louis Bossart 2023-01-11 15:49 ` Pierre-Louis Bossart 2023-01-12 10:22 ` Mukunda,Vijendar 2023-01-12 10:22 ` Mukunda,Vijendar 2023-01-11 9:02 ` [PATCH 16/19] soundwire: amd: handle wake enable interrupt Vijendar Mukunda 2023-01-11 9:02 ` Vijendar Mukunda 2023-01-11 15:54 ` Pierre-Louis Bossart 2023-01-11 15:54 ` Pierre-Louis Bossart 2023-01-12 10:21 ` Mukunda,Vijendar 2023-01-12 10:21 ` Mukunda,Vijendar 2023-01-11 9:02 ` [PATCH 17/19] soundwire: amd: add pm_prepare callback and pm ops support Vijendar Mukunda 2023-01-11 9:02 ` Vijendar Mukunda 2023-01-11 15:58 ` Pierre-Louis Bossart 2023-01-11 15:58 ` Pierre-Louis Bossart 2023-01-12 10:14 ` Mukunda,Vijendar 2023-01-12 10:14 ` Mukunda,Vijendar 2023-01-12 14:50 ` Pierre-Louis Bossart 2023-01-12 14:50 ` Pierre-Louis Bossart 2023-01-11 9:02 ` Vijendar Mukunda [this message] 2023-01-11 9:02 ` [PATCH 18/19] ASoC: amd: ps: implement system level pm ops for soundwire dma driver Vijendar Mukunda 2023-01-11 9:02 ` [PATCH 19/19] ASoC: amd: ps: increase runtime suspend delay Vijendar Mukunda 2023-01-11 9:02 ` Vijendar Mukunda 2023-01-11 16:02 ` Pierre-Louis Bossart 2023-01-11 16:02 ` Pierre-Louis Bossart 2023-01-12 11:02 ` Mukunda,Vijendar 2023-01-12 11:02 ` Mukunda,Vijendar 2023-01-12 14:54 ` Pierre-Louis Bossart 2023-01-12 14:54 ` Pierre-Louis Bossart 2023-01-12 15:29 ` Limonciello, Mario 2023-01-12 15:29 ` Limonciello, Mario 2023-01-12 16:05 ` Pierre-Louis Bossart 2023-01-13 10:58 ` Mukunda,Vijendar 2023-01-13 17:33 ` Pierre-Louis Bossart 2023-01-13 19:57 ` Mark Brown 2023-01-13 19:57 ` Mark Brown 2023-01-16 8:35 ` Mukunda,Vijendar 2023-01-16 8:35 ` Mukunda,Vijendar 2023-01-16 15:02 ` Pierre-Louis Bossart 2023-01-16 15:02 ` Pierre-Louis Bossart 2023-01-17 11:33 ` Mukunda,Vijendar 2023-01-17 11:33 ` Mukunda,Vijendar 2023-01-17 11:51 ` Pierre-Louis Bossart 2023-01-17 11:51 ` Pierre-Louis Bossart 2023-01-17 12:16 ` Mark Brown 2023-01-17 12:16 ` Mark Brown 2023-01-17 12:36 ` Pierre-Louis Bossart 2023-01-17 12:36 ` Pierre-Louis Bossart 2023-01-11 13:36 ` [PATCH 00/19] Add soundwire support for Pink Sardine platform Pierre-Louis Bossart 2023-01-12 9:08 ` 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=20230111090222.2016499-19-Vijendar.Mukunda@amd.com \ --to=vijendar.mukunda@amd.com \ --cc=Basavaraj.Hiregoudar@amd.com \ --cc=Mario.Limonciello@amd.com \ --cc=Mastan.Katragadda@amd.com \ --cc=Sunil-kumar.Dommati@amd.com \ --cc=alsa-devel@alsa-project.org \ --cc=arungopal.kondaveeti@amd.com \ --cc=broonie@kernel.org \ --cc=lgirdwood@gmail.com \ --cc=linux-kernel@vger.kernel.org \ --cc=tiwai@suse.com \ --cc=vkoul@kernel.org \ /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: linkBe 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.