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: Jeeja KP <jeeja.kp@intel.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
Родитель
c2e20cd818
Коммит
1f4956fd96
|
@ -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);
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче