diff options
Diffstat (limited to 'sound/pci/ens1370.c')
-rw-r--r-- | sound/pci/ens1370.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/sound/pci/ens1370.c b/sound/pci/ens1370.c index 8cb4fb2412db..d2a811f222c9 100644 --- a/sound/pci/ens1370.c +++ b/sound/pci/ens1370.c | |||
@@ -2072,9 +2072,10 @@ static int snd_ensoniq_suspend(struct pci_dev *pci, pm_message_t state) | |||
2072 | udelay(100); | 2072 | udelay(100); |
2073 | snd_ak4531_suspend(ensoniq->u.es1370.ak4531); | 2073 | snd_ak4531_suspend(ensoniq->u.es1370.ak4531); |
2074 | #endif | 2074 | #endif |
2075 | pci_set_power_state(pci, PCI_D3hot); | 2075 | |
2076 | pci_disable_device(pci); | 2076 | pci_disable_device(pci); |
2077 | pci_save_state(pci); | 2077 | pci_save_state(pci); |
2078 | pci_set_power_state(pci, pci_choose_state(pci, state)); | ||
2078 | return 0; | 2079 | return 0; |
2079 | } | 2080 | } |
2080 | 2081 | ||
@@ -2083,9 +2084,14 @@ static int snd_ensoniq_resume(struct pci_dev *pci) | |||
2083 | struct snd_card *card = pci_get_drvdata(pci); | 2084 | struct snd_card *card = pci_get_drvdata(pci); |
2084 | struct ensoniq *ensoniq = card->private_data; | 2085 | struct ensoniq *ensoniq = card->private_data; |
2085 | 2086 | ||
2086 | pci_restore_state(pci); | ||
2087 | pci_enable_device(pci); | ||
2088 | pci_set_power_state(pci, PCI_D0); | 2087 | pci_set_power_state(pci, PCI_D0); |
2088 | pci_restore_state(pci); | ||
2089 | if (pci_enable_device(pci) < 0) { | ||
2090 | printk(KERN_ERR DRIVER_NAME ": pci_enable_device failed, " | ||
2091 | "disabling device\n"); | ||
2092 | snd_card_disconnect(card); | ||
2093 | return -EIO; | ||
2094 | } | ||
2089 | pci_set_master(pci); | 2095 | pci_set_master(pci); |
2090 | 2096 | ||
2091 | snd_ensoniq_chip_init(ensoniq); | 2097 | snd_ensoniq_chip_init(ensoniq); |