Commit 10db5bcc authored by Takashi Iwai's avatar Takashi Iwai

ALSA: hda: Honor PM disablement in PM freeze and thaw_noirq ops

freeze_noirq and thaw_noirq need to check the PM availability like
other PM ops.  There are cases where the device got disabled due to
the error, and the PM operation should be ignored for that.

Fixes: 3e6db33a ("ALSA: hda - Set SKL+ hda controller power at freeze() and thaw()")
BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=207043
Link: https://lore.kernel.org/r/20200413082034.25166-3-tiwai@suse.deSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 25faa4bd
...@@ -1071,6 +1071,8 @@ static int azx_freeze_noirq(struct device *dev) ...@@ -1071,6 +1071,8 @@ static int azx_freeze_noirq(struct device *dev)
struct azx *chip = card->private_data; struct azx *chip = card->private_data;
struct pci_dev *pci = to_pci_dev(dev); struct pci_dev *pci = to_pci_dev(dev);
if (!azx_is_pm_ready(card))
return 0;
if (chip->driver_type == AZX_DRIVER_SKL) if (chip->driver_type == AZX_DRIVER_SKL)
pci_set_power_state(pci, PCI_D3hot); pci_set_power_state(pci, PCI_D3hot);
...@@ -1083,6 +1085,8 @@ static int azx_thaw_noirq(struct device *dev) ...@@ -1083,6 +1085,8 @@ static int azx_thaw_noirq(struct device *dev)
struct azx *chip = card->private_data; struct azx *chip = card->private_data;
struct pci_dev *pci = to_pci_dev(dev); struct pci_dev *pci = to_pci_dev(dev);
if (!azx_is_pm_ready(card))
return 0;
if (chip->driver_type == AZX_DRIVER_SKL) if (chip->driver_type == AZX_DRIVER_SKL)
pci_set_power_state(pci, PCI_D0); pci_set_power_state(pci, PCI_D0);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment