aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1108-ASoC-AMD-Add-ACP3x-system-resume-pm-op.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1108-ASoC-AMD-Add-ACP3x-system-resume-pm-op.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1108-ASoC-AMD-Add-ACP3x-system-resume-pm-op.patch83
1 files changed, 0 insertions, 83 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1108-ASoC-AMD-Add-ACP3x-system-resume-pm-op.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1108-ASoC-AMD-Add-ACP3x-system-resume-pm-op.patch
deleted file mode 100644
index 1f24dc53..00000000
--- a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1108-ASoC-AMD-Add-ACP3x-system-resume-pm-op.patch
+++ /dev/null
@@ -1,83 +0,0 @@
-From bcec114624961692bfa27db57442c1c5d6e7e7ba Mon Sep 17 00:00:00 2001
-From: Maruthi Srinivas Bayyavarapu <Maruthi.Bayyavarapu@amd.com>
-Date: Thu, 30 Mar 2017 15:47:49 +0530
-Subject: [PATCH 1108/4131] ASoC: AMD: Add ACP3x system resume pm op
-
-When audio usecase in progress and system wide suspend happens, ACP will
-be powered off and when system resumes, for audio usecase to continue,
-all the runtime configuration data needs to be programmed again. Added
-'resume'pm call back to ACP pm ops.
-
-Signed-off-by: Maruthi Bayyavarapu <maruthi.bayyavarapu@amd.com>
-Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
----
- sound/soc/amd/raven/acp3x-pcm-dma.c | 46 +++++++++++++++++++++++++++++++++++++
- 1 file changed, 46 insertions(+)
-
-diff --git a/sound/soc/amd/raven/acp3x-pcm-dma.c b/sound/soc/amd/raven/acp3x-pcm-dma.c
-index a5d3807..5246d28 100644
---- a/sound/soc/amd/raven/acp3x-pcm-dma.c
-+++ b/sound/soc/amd/raven/acp3x-pcm-dma.c
-@@ -709,6 +709,51 @@ static int acp3x_audio_remove(struct platform_device *pdev)
- return 0;
- }
-
-+static int acp3x_resume(struct device *dev)
-+{
-+ int status;
-+ u32 val;
-+ struct i2s_dev_data *adata = dev_get_drvdata(dev);
-+
-+ status = acp3x_init(adata->acp3x_base);
-+ if (status)
-+ return -ENODEV;
-+
-+ if (adata->play_stream && adata->play_stream->runtime) {
-+ struct i2s_stream_instance *rtd =
-+ adata->play_stream->runtime->private_data;
-+ config_acp3x_dma(rtd, SNDRV_PCM_STREAM_PLAYBACK);
-+ rv_writel((rtd->xfer_resolution << 3),
-+ rtd->acp3x_base + mmACP_BTTDM_ITER);
-+ if (adata->tdm_mode == true) {
-+ rv_writel(adata->tdm_fmt, adata->acp3x_base +
-+ mmACP_BTTDM_TXFRMT);
-+ val = rv_readl(adata->acp3x_base + mmACP_BTTDM_ITER);
-+ rv_writel((val | 0x2), adata->acp3x_base +
-+ mmACP_BTTDM_ITER);
-+ }
-+ }
-+
-+ if (adata->capture_stream && adata->capture_stream->runtime) {
-+ struct i2s_stream_instance *rtd =
-+ adata->capture_stream->runtime->private_data;
-+ config_acp3x_dma(rtd, SNDRV_PCM_STREAM_CAPTURE);
-+ rv_writel((rtd->xfer_resolution << 3),
-+ rtd->acp3x_base + mmACP_BTTDM_IRER);
-+ if (adata->tdm_mode == true) {
-+ rv_writel(adata->tdm_fmt, adata->acp3x_base +
-+ mmACP_BTTDM_RXFRMT);
-+ val = rv_readl(adata->acp3x_base + mmACP_BTTDM_IRER);
-+ rv_writel((val | 0x2), adata->acp3x_base +
-+ mmACP_BTTDM_IRER);
-+ }
-+ }
-+
-+ rv_writel(1, adata->acp3x_base + mmACP_EXTERNAL_INTR_ENB);
-+ return 0;
-+}
-+
-+
- static int acp3x_pcm_runtime_suspend(struct device *dev)
- {
- int status;
-@@ -740,6 +785,7 @@ static int acp3x_pcm_runtime_resume(struct device *dev)
- static const struct dev_pm_ops acp3x_pm_ops = {
- .runtime_suspend = acp3x_pcm_runtime_suspend,
- .runtime_resume = acp3x_pcm_runtime_resume,
-+ .resume = acp3x_resume,
- };
-
- static struct platform_driver acp3x_dma_driver = {
---
-2.7.4
-