From: Vijendar Mukunda <Vijendar.Mukunda@amd.com> To: <broonie@kernel.org>, <alsa-devel@alsa-project.org> Cc: <Alexander.Deucher@amd.com>, <Basavaraj.Hiregoudar@amd.com>, <Sunil-kumar.Dommati@amd.com>, <Mario.Limonciello@amd.com>, <Richard.Gong@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 08/13] ASoC: amd: add acp6x pci driver pm ops Date: Mon, 11 Oct 2021 11:26:16 +0530 [thread overview] Message-ID: <20211011055621.13240-9-Vijendar.Mukunda@amd.com> (raw) In-Reply-To: <20211011055621.13240-1-Vijendar.Mukunda@amd.com> Add acp6x pci driver pm ops. Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com> --- sound/soc/amd/yc/acp6x.h | 3 +++ sound/soc/amd/yc/pci-acp6x.c | 40 ++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/sound/soc/amd/yc/acp6x.h b/sound/soc/amd/yc/acp6x.h index 3f83de229409..b0d3f6a9d0ce 100644 --- a/sound/soc/amd/yc/acp6x.h +++ b/sound/soc/amd/yc/acp6x.h @@ -52,6 +52,9 @@ #define MAX_BUFFER (CAPTURE_MAX_PERIOD_SIZE * CAPTURE_MAX_NUM_PERIODS) #define MIN_BUFFER MAX_BUFFER +/* time in ms for runtime suspend delay */ +#define ACP_SUSPEND_DELAY_MS 2000 + enum acp_config { ACP_CONFIG_0 = 0, ACP_CONFIG_1, diff --git a/sound/soc/amd/yc/pci-acp6x.c b/sound/soc/amd/yc/pci-acp6x.c index 86b33f401e12..5f07db987cca 100644 --- a/sound/soc/amd/yc/pci-acp6x.c +++ b/sound/soc/amd/yc/pci-acp6x.c @@ -11,6 +11,7 @@ #include <linux/platform_device.h> #include <linux/interrupt.h> #include <sound/pcm_params.h> +#include <linux/pm_runtime.h> #include "acp6x.h" @@ -245,6 +246,11 @@ static int snd_acp6x_probe(struct pci_dev *pci, dev_err(&pci->dev, "ACP PCI IRQ request failed\n"); goto unregister_devs; } + pm_runtime_set_autosuspend_delay(&pci->dev, ACP_SUSPEND_DELAY_MS); + pm_runtime_use_autosuspend(&pci->dev); + pm_runtime_put_noidle(&pci->dev); + pm_runtime_allow(&pci->dev); + return 0; unregister_devs: for (--index; index >= 0; index--) @@ -260,6 +266,35 @@ static int snd_acp6x_probe(struct pci_dev *pci, return ret; } +static int __maybe_unused snd_acp6x_suspend(struct device *dev) +{ + struct acp6x_dev_data *adata; + int ret; + + adata = dev_get_drvdata(dev); + ret = acp6x_deinit(adata->acp6x_base); + if (ret) + dev_err(dev, "ACP de-init failed\n"); + return ret; +} + +static int __maybe_unused snd_acp6x_resume(struct device *dev) +{ + struct acp6x_dev_data *adata; + int ret; + + adata = dev_get_drvdata(dev); + ret = acp6x_init(adata->acp6x_base); + if (ret) + dev_err(dev, "ACP init failed\n"); + return ret; +} + +static const struct dev_pm_ops acp6x_pm = { + SET_RUNTIME_PM_OPS(snd_acp6x_suspend, snd_acp6x_resume, NULL) + SET_SYSTEM_SLEEP_PM_OPS(snd_acp6x_suspend, snd_acp6x_resume) +}; + static void snd_acp6x_remove(struct pci_dev *pci) { struct acp6x_dev_data *adata; @@ -273,6 +308,8 @@ static void snd_acp6x_remove(struct pci_dev *pci) ret = acp6x_deinit(adata->acp6x_base); if (ret) dev_err(&pci->dev, "ACP de-init failed\n"); + pm_runtime_forbid(&pci->dev); + pm_runtime_get_noresume(&pci->dev); pci_release_regions(pci); pci_disable_device(pci); } @@ -290,6 +327,9 @@ static struct pci_driver yc_acp6x_driver = { .id_table = snd_acp6x_ids, .probe = snd_acp6x_probe, .remove = snd_acp6x_remove, + .driver = { + .pm = &acp6x_pm, + } }; module_pci_driver(yc_acp6x_driver); -- 2.25.1
WARNING: multiple messages have this Message-ID (diff)
From: Vijendar Mukunda <Vijendar.Mukunda@amd.com> To: <broonie@kernel.org>, <alsa-devel@alsa-project.org> Cc: Sunil-kumar.Dommati@amd.com, Richard.Gong@amd.com, Basavaraj.Hiregoudar@amd.com, Takashi Iwai <tiwai@suse.com>, Liam Girdwood <lgirdwood@gmail.com>, Mario.Limonciello@amd.com, Vijendar Mukunda <Vijendar.Mukunda@amd.com>, Alexander.Deucher@amd.com, open list <linux-kernel@vger.kernel.org> Subject: [PATCH 08/13] ASoC: amd: add acp6x pci driver pm ops Date: Mon, 11 Oct 2021 11:26:16 +0530 [thread overview] Message-ID: <20211011055621.13240-9-Vijendar.Mukunda@amd.com> (raw) In-Reply-To: <20211011055621.13240-1-Vijendar.Mukunda@amd.com> Add acp6x pci driver pm ops. Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com> --- sound/soc/amd/yc/acp6x.h | 3 +++ sound/soc/amd/yc/pci-acp6x.c | 40 ++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/sound/soc/amd/yc/acp6x.h b/sound/soc/amd/yc/acp6x.h index 3f83de229409..b0d3f6a9d0ce 100644 --- a/sound/soc/amd/yc/acp6x.h +++ b/sound/soc/amd/yc/acp6x.h @@ -52,6 +52,9 @@ #define MAX_BUFFER (CAPTURE_MAX_PERIOD_SIZE * CAPTURE_MAX_NUM_PERIODS) #define MIN_BUFFER MAX_BUFFER +/* time in ms for runtime suspend delay */ +#define ACP_SUSPEND_DELAY_MS 2000 + enum acp_config { ACP_CONFIG_0 = 0, ACP_CONFIG_1, diff --git a/sound/soc/amd/yc/pci-acp6x.c b/sound/soc/amd/yc/pci-acp6x.c index 86b33f401e12..5f07db987cca 100644 --- a/sound/soc/amd/yc/pci-acp6x.c +++ b/sound/soc/amd/yc/pci-acp6x.c @@ -11,6 +11,7 @@ #include <linux/platform_device.h> #include <linux/interrupt.h> #include <sound/pcm_params.h> +#include <linux/pm_runtime.h> #include "acp6x.h" @@ -245,6 +246,11 @@ static int snd_acp6x_probe(struct pci_dev *pci, dev_err(&pci->dev, "ACP PCI IRQ request failed\n"); goto unregister_devs; } + pm_runtime_set_autosuspend_delay(&pci->dev, ACP_SUSPEND_DELAY_MS); + pm_runtime_use_autosuspend(&pci->dev); + pm_runtime_put_noidle(&pci->dev); + pm_runtime_allow(&pci->dev); + return 0; unregister_devs: for (--index; index >= 0; index--) @@ -260,6 +266,35 @@ static int snd_acp6x_probe(struct pci_dev *pci, return ret; } +static int __maybe_unused snd_acp6x_suspend(struct device *dev) +{ + struct acp6x_dev_data *adata; + int ret; + + adata = dev_get_drvdata(dev); + ret = acp6x_deinit(adata->acp6x_base); + if (ret) + dev_err(dev, "ACP de-init failed\n"); + return ret; +} + +static int __maybe_unused snd_acp6x_resume(struct device *dev) +{ + struct acp6x_dev_data *adata; + int ret; + + adata = dev_get_drvdata(dev); + ret = acp6x_init(adata->acp6x_base); + if (ret) + dev_err(dev, "ACP init failed\n"); + return ret; +} + +static const struct dev_pm_ops acp6x_pm = { + SET_RUNTIME_PM_OPS(snd_acp6x_suspend, snd_acp6x_resume, NULL) + SET_SYSTEM_SLEEP_PM_OPS(snd_acp6x_suspend, snd_acp6x_resume) +}; + static void snd_acp6x_remove(struct pci_dev *pci) { struct acp6x_dev_data *adata; @@ -273,6 +308,8 @@ static void snd_acp6x_remove(struct pci_dev *pci) ret = acp6x_deinit(adata->acp6x_base); if (ret) dev_err(&pci->dev, "ACP de-init failed\n"); + pm_runtime_forbid(&pci->dev); + pm_runtime_get_noresume(&pci->dev); pci_release_regions(pci); pci_disable_device(pci); } @@ -290,6 +327,9 @@ static struct pci_driver yc_acp6x_driver = { .id_table = snd_acp6x_ids, .probe = snd_acp6x_probe, .remove = snd_acp6x_remove, + .driver = { + .pm = &acp6x_pm, + } }; module_pci_driver(yc_acp6x_driver); -- 2.25.1
next prev parent reply other threads:[~2021-10-11 5:39 UTC|newest] Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-10-11 5:56 [PATCH 00/13] Add Yellow Carp platform ASoC driver Vijendar Mukunda 2021-10-11 5:56 ` [PATCH 01/13] ASoC: amd: add Yellow Carp ACP6x IP register header Vijendar Mukunda 2021-10-11 5:56 ` Vijendar Mukunda 2021-10-11 5:56 ` [PATCH 02/13] ASoC: amd: add Yellow Carp ACP PCI driver Vijendar Mukunda 2021-10-11 5:56 ` Vijendar Mukunda 2021-10-11 11:01 ` Gong, Richard 2021-10-11 11:43 ` Mukunda,Vijendar 2021-10-11 11:43 ` Mukunda,Vijendar 2021-10-11 5:56 ` [PATCH 03/13] ASoC: amd: add acp6x init/de-init functions Vijendar Mukunda 2021-10-11 5:56 ` Vijendar Mukunda 2021-10-11 11:04 ` Gong, Richard 2021-10-11 11:04 ` Gong, Richard 2021-10-11 11:06 ` Gong, Richard 2021-10-11 11:06 ` Gong, Richard 2021-10-11 11:40 ` Mukunda,Vijendar 2021-10-11 11:40 ` Mukunda,Vijendar 2021-10-11 5:56 ` [PATCH 04/13] ASoC: amd: add platform devices for acp6x pdm driver and dmic driver Vijendar Mukunda 2021-10-11 5:56 ` Vijendar Mukunda 2021-10-11 5:56 ` [PATCH 05/13] ASoC: amd: add acp6x pdm platform driver Vijendar Mukunda 2021-10-11 5:56 ` Vijendar Mukunda 2021-10-11 5:56 ` [PATCH 06/13] ASoC: amd: add acp6x irq handler Vijendar Mukunda 2021-10-11 5:56 ` Vijendar Mukunda 2021-10-11 8:58 ` Joe Perches 2021-10-11 8:58 ` Joe Perches 2021-10-11 9:28 ` Mukunda,Vijendar 2021-10-11 9:28 ` Mukunda,Vijendar 2021-10-11 5:56 ` [PATCH 07/13] ASoC: amd: add acp6x pdm driver dma ops Vijendar Mukunda 2021-10-11 5:56 ` Vijendar Mukunda 2021-10-11 5:56 ` Vijendar Mukunda [this message] 2021-10-11 5:56 ` [PATCH 08/13] ASoC: amd: add acp6x pci driver pm ops Vijendar Mukunda 2021-10-11 5:56 ` [PATCH 09/13] ASoC: amd: add acp6x pdm " Vijendar Mukunda 2021-10-11 5:56 ` Vijendar Mukunda 2021-10-11 5:56 ` [PATCH 10/13] ASoC: amd: enable Yellow carp acp6x drivers build Vijendar Mukunda 2021-10-11 5:56 ` Vijendar Mukunda 2021-10-11 5:56 ` [PATCH 11/13] ASoC: amd: create platform device for acp6x machine driver Vijendar Mukunda 2021-10-11 5:56 ` Vijendar Mukunda 2021-10-11 5:56 ` [PATCH 12/13] ASoC: amd: add YC machine driver using dmic Vijendar Mukunda 2021-10-11 5:56 ` Vijendar Mukunda 2021-10-11 5:56 ` [PATCH 13/13] ASoC: amd: enable yc machine driver build Vijendar Mukunda 2021-10-11 5:56 ` Vijendar Mukunda 2021-10-11 7:55 ` Randy Dunlap 2021-10-11 7:55 ` Randy Dunlap 2021-10-11 8:25 ` Mukunda,Vijendar 2021-10-11 8:25 ` 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=20211011055621.13240-9-Vijendar.Mukunda@amd.com \ --to=vijendar.mukunda@amd.com \ --cc=Alexander.Deucher@amd.com \ --cc=Basavaraj.Hiregoudar@amd.com \ --cc=Mario.Limonciello@amd.com \ --cc=Richard.Gong@amd.com \ --cc=Sunil-kumar.Dommati@amd.com \ --cc=alsa-devel@alsa-project.org \ --cc=broonie@kernel.org \ --cc=lgirdwood@gmail.com \ --cc=linux-kernel@vger.kernel.org \ --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: 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.