Commit 1f4956fd authored by Jeeja KP's avatar Jeeja KP Committed by Mark Brown
Browse files

ASoC: Intel: Skylake: enable interrupt as wake source in active suspend



In active suspend, any HDA interrupt should wake the system. When device
enters active suspend, we need to enable HDA controller interrupt as wake
source. Similarly disable HDA controller interrupt as wake source when
exiting active suspend.

Signed-off-by: default avatarJeeja KP <jeeja.kp@intel.com>
Signed-off-by: default avatarVinod Koul <vinod.koul@intel.com>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent c2e20cd8
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -218,6 +218,7 @@ static int skl_suspend(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);
	struct hdac_bus *bus = ebus_to_hbus(ebus);

	/*
	 * Do not suspend if streams which are marked ignore suspend are
@@ -225,6 +226,7 @@ static int skl_suspend(struct device *dev)
	 */
	if (skl->supend_active) {
		snd_hdac_ext_bus_link_power_down_all(ebus);
		enable_irq_wake(bus->irq);
		pci_save_state(pci);
		pci_disable_device(pci);
		return 0;
@@ -238,6 +240,7 @@ static int skl_resume(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);
	struct hdac_bus *bus = ebus_to_hbus(ebus);
	int ret;

	/*
@@ -248,6 +251,7 @@ static int skl_resume(struct device *dev)
		pci_restore_state(pci);
		ret = pci_enable_device(pci);
		snd_hdac_ext_bus_link_power_up_all(ebus);
		disable_irq_wake(bus->irq);
	} else {
		ret = _skl_resume(ebus);
	}