All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/2] ASoC: Intel: Skylake: remaining D0i3 patches
@ 2016-11-06 13:31 Vinod Koul
  2016-11-06 13:31 ` [PATCH v3 1/2] ASoC: Intel: Skylake: Flush pending D0i3 request on suspend Vinod Koul
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Vinod Koul @ 2016-11-06 13:31 UTC (permalink / raw)
  To: alsa-devel; +Cc: liam.r.girdwood, patches.audio, broonie, Vinod Koul

Hi Mark,

Looks like last two patches in last series posted were missed, so I am
resending this

Jayachandran B (2):
  ASoC: Intel: Skylake: Flush pending D0i3 request on suspend
  ASoC: Intel: Skylake: remove pci device enabling calls on suspend

 sound/soc/intel/skylake/skl-messages.c | 27 +++++++++++++++++++++++++++
 sound/soc/intel/skylake/skl.c          | 12 ++++++++++--
 sound/soc/intel/skylake/skl.h          |  1 +
 3 files changed, 38 insertions(+), 2 deletions(-)

-- 
1.9.1

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH v3 1/2] ASoC: Intel: Skylake: Flush pending D0i3 request on suspend
  2016-11-06 13:31 [PATCH v3 0/2] ASoC: Intel: Skylake: remaining D0i3 patches Vinod Koul
@ 2016-11-06 13:31 ` Vinod Koul
  2016-11-06 13:31 ` [PATCH v3 2/2] ASoC: Intel: Skylake: remove pci device enabling calls " Vinod Koul
  2016-11-09 15:23 ` [PATCH v3 0/2] ASoC: Intel: Skylake: remaining D0i3 patches Mark Brown
  2 siblings, 0 replies; 5+ messages in thread
From: Vinod Koul @ 2016-11-06 13:31 UTC (permalink / raw)
  To: alsa-devel
  Cc: liam.r.girdwood, patches.audio, broonie, Vinod Koul, Jayachandran B

From: Jayachandran B <jayachandran.b@intel.com>

While going to suspend, if we have any pending D0i3 work scheduled,
flush that and force the DSP to goto D0i3 mode before going to suspend.

Signed-off-by: Jayachandran B <jayachandran.b@intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
---
 sound/soc/intel/skylake/skl-messages.c | 27 +++++++++++++++++++++++++++
 sound/soc/intel/skylake/skl.c          | 10 ++++++++++
 sound/soc/intel/skylake/skl.h          |  1 +
 3 files changed, 38 insertions(+)

diff --git a/sound/soc/intel/skylake/skl-messages.c b/sound/soc/intel/skylake/skl-messages.c
index 87fc647fa04c..4ae021aabc3a 100644
--- a/sound/soc/intel/skylake/skl-messages.c
+++ b/sound/soc/intel/skylake/skl-messages.c
@@ -294,6 +294,33 @@ int skl_free_dsp(struct skl *skl)
 	return 0;
 }
 
+/*
+ * In the case of "suspend_active" i.e, the Audio IP being active
+ * during system suspend, immediately excecute any pending D0i3 work
+ * before suspending. This is needed for the IP to work in low power
+ * mode during system suspend. In the case of normal suspend, cancel
+ * any pending D0i3 work.
+ */
+int skl_suspend_late_dsp(struct skl *skl)
+{
+	struct skl_sst *ctx = skl->skl_sst;
+	struct delayed_work *dwork;
+
+	if (!ctx)
+		return 0;
+
+	dwork = &ctx->d0i3.work;
+
+	if (dwork->work.func) {
+		if (skl->supend_active)
+			flush_delayed_work(dwork);
+		else
+			cancel_delayed_work_sync(dwork);
+	}
+
+	return 0;
+}
+
 int skl_suspend_dsp(struct skl *skl)
 {
 	struct skl_sst *ctx = skl->skl_sst;
diff --git a/sound/soc/intel/skylake/skl.c b/sound/soc/intel/skylake/skl.c
index b9209af89915..ff08c8ec93a1 100644
--- a/sound/soc/intel/skylake/skl.c
+++ b/sound/soc/intel/skylake/skl.c
@@ -228,6 +228,15 @@ static int skl_acquire_irq(struct hdac_ext_bus *ebus, int do_disconnect)
 	return 0;
 }
 
+static int skl_suspend_late(struct device *dev)
+{
+	struct pci_dev *pci = to_pci_dev(dev);
+	struct hdac_ext_bus *ebus = pci_get_drvdata(pci);
+	struct skl *skl = ebus_to_skl(ebus);
+
+	return skl_suspend_late_dsp(skl);
+}
+
 #ifdef CONFIG_PM
 static int _skl_suspend(struct hdac_ext_bus *ebus)
 {
@@ -392,6 +401,7 @@ static int skl_runtime_resume(struct device *dev)
 static const struct dev_pm_ops skl_pm = {
 	SET_SYSTEM_SLEEP_PM_OPS(skl_suspend, skl_resume)
 	SET_RUNTIME_PM_OPS(skl_runtime_suspend, skl_runtime_resume, NULL)
+	.suspend_late = skl_suspend_late,
 };
 
 /*
diff --git a/sound/soc/intel/skylake/skl.h b/sound/soc/intel/skylake/skl.h
index 88ba54ba5f72..4986e3929dd3 100644
--- a/sound/soc/intel/skylake/skl.h
+++ b/sound/soc/intel/skylake/skl.h
@@ -124,6 +124,7 @@ struct nhlt_specific_cfg *skl_get_ep_blob(struct skl *skl, u32 instance,
 int skl_nhlt_update_topology_bin(struct skl *skl);
 int skl_init_dsp(struct skl *skl);
 int skl_free_dsp(struct skl *skl);
+int skl_suspend_late_dsp(struct skl *skl);
 int skl_suspend_dsp(struct skl *skl);
 int skl_resume_dsp(struct skl *skl);
 void skl_cleanup_resources(struct skl *skl);
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH v3 2/2] ASoC: Intel: Skylake: remove pci device enabling calls on suspend
  2016-11-06 13:31 [PATCH v3 0/2] ASoC: Intel: Skylake: remaining D0i3 patches Vinod Koul
  2016-11-06 13:31 ` [PATCH v3 1/2] ASoC: Intel: Skylake: Flush pending D0i3 request on suspend Vinod Koul
@ 2016-11-06 13:31 ` Vinod Koul
  2016-11-09 15:23 ` [PATCH v3 0/2] ASoC: Intel: Skylake: remaining D0i3 patches Mark Brown
  2 siblings, 0 replies; 5+ messages in thread
From: Vinod Koul @ 2016-11-06 13:31 UTC (permalink / raw)
  To: alsa-devel
  Cc: liam.r.girdwood, patches.audio, broonie, Vinod Koul, Jayachandran B

From: Jayachandran B <jayachandran.b@intel.com>

We were invoking pci_disable_device() while going to suspend-to-idle and
pci_enable_device() while coming back to active state.

Turns out that we do not need these calls as we only need system to be
wake capable when in suspend-to-idle state. The wake capability is
already done by enable_irq_wake() calls, so remove these unwanted calls
in driver.

Signed-off-by: Jayachandran B <jayachandran.b@intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
---
 sound/soc/intel/skylake/skl.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/sound/soc/intel/skylake/skl.c b/sound/soc/intel/skylake/skl.c
index ff08c8ec93a1..61a484888cfa 100644
--- a/sound/soc/intel/skylake/skl.c
+++ b/sound/soc/intel/skylake/skl.c
@@ -299,7 +299,6 @@ static int skl_suspend(struct device *dev)
 
 		enable_irq_wake(bus->irq);
 		pci_save_state(pci);
-		pci_disable_device(pci);
 	} else {
 		ret = _skl_suspend(ebus);
 		if (ret < 0)
@@ -342,7 +341,6 @@ static int skl_resume(struct device *dev)
 	 */
 	if (skl->supend_active) {
 		pci_restore_state(pci);
-		ret = pci_enable_device(pci);
 		snd_hdac_ext_bus_link_power_up_all(ebus);
 		disable_irq_wake(bus->irq);
 		/*
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH v3 0/2] ASoC: Intel: Skylake: remaining D0i3 patches
  2016-11-06 13:31 [PATCH v3 0/2] ASoC: Intel: Skylake: remaining D0i3 patches Vinod Koul
  2016-11-06 13:31 ` [PATCH v3 1/2] ASoC: Intel: Skylake: Flush pending D0i3 request on suspend Vinod Koul
  2016-11-06 13:31 ` [PATCH v3 2/2] ASoC: Intel: Skylake: remove pci device enabling calls " Vinod Koul
@ 2016-11-09 15:23 ` Mark Brown
  2016-11-10  3:32   ` Vinod Koul
  2 siblings, 1 reply; 5+ messages in thread
From: Mark Brown @ 2016-11-09 15:23 UTC (permalink / raw)
  To: Vinod Koul; +Cc: liam.r.girdwood, patches.audio, alsa-devel


[-- Attachment #1.1: Type: text/plain, Size: 277 bytes --]

On Sun, Nov 06, 2016 at 07:01:47PM +0530, Vinod Koul wrote:

> Looks like last two patches in last series posted were missed, so I am
> resending this

Please allow a reasonable time for review.  More complex and less well
explained patches are going to take longer to review.

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 455 bytes --]

[-- Attachment #2: Type: text/plain, Size: 0 bytes --]



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v3 0/2] ASoC: Intel: Skylake: remaining D0i3 patches
  2016-11-09 15:23 ` [PATCH v3 0/2] ASoC: Intel: Skylake: remaining D0i3 patches Mark Brown
@ 2016-11-10  3:32   ` Vinod Koul
  0 siblings, 0 replies; 5+ messages in thread
From: Vinod Koul @ 2016-11-10  3:32 UTC (permalink / raw)
  To: Mark Brown; +Cc: liam.r.girdwood, patches.audio, alsa-devel


[-- Attachment #1.1: Type: text/plain, Size: 454 bytes --]

On Wed, Nov 09, 2016 at 03:23:41PM +0000, Mark Brown wrote:
> On Sun, Nov 06, 2016 at 07:01:47PM +0530, Vinod Koul wrote:
> 
> > Looks like last two patches in last series posted were missed, so I am
> > resending this
> 
> Please allow a reasonable time for review.  More complex and less well
> explained patches are going to take longer to review.

Sure thing, I somehow though these were missed, so resent just to be sure...

-- 
~Vinod

[-- Attachment #1.2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

[-- Attachment #2: Type: text/plain, Size: 0 bytes --]



^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2016-11-10  3:22 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-11-06 13:31 [PATCH v3 0/2] ASoC: Intel: Skylake: remaining D0i3 patches Vinod Koul
2016-11-06 13:31 ` [PATCH v3 1/2] ASoC: Intel: Skylake: Flush pending D0i3 request on suspend Vinod Koul
2016-11-06 13:31 ` [PATCH v3 2/2] ASoC: Intel: Skylake: remove pci device enabling calls " Vinod Koul
2016-11-09 15:23 ` [PATCH v3 0/2] ASoC: Intel: Skylake: remaining D0i3 patches Mark Brown
2016-11-10  3:32   ` Vinod Koul

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.