diff options
Diffstat (limited to 'sound/pci/atiixp.c')
-rw-r--r-- | sound/pci/atiixp.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/sound/pci/atiixp.c b/sound/pci/atiixp.c index 3e8fc5a0006a..e3e99f396711 100644 --- a/sound/pci/atiixp.c +++ b/sound/pci/atiixp.c | |||
@@ -1442,9 +1442,9 @@ static int snd_atiixp_suspend(struct pci_dev *pci, pm_message_t state) | |||
1442 | snd_atiixp_aclink_down(chip); | 1442 | snd_atiixp_aclink_down(chip); |
1443 | snd_atiixp_chip_stop(chip); | 1443 | snd_atiixp_chip_stop(chip); |
1444 | 1444 | ||
1445 | pci_set_power_state(pci, PCI_D3hot); | ||
1446 | pci_disable_device(pci); | 1445 | pci_disable_device(pci); |
1447 | pci_save_state(pci); | 1446 | pci_save_state(pci); |
1447 | pci_set_power_state(pci, pci_choose_state(pci, state)); | ||
1448 | return 0; | 1448 | return 0; |
1449 | } | 1449 | } |
1450 | 1450 | ||
@@ -1454,9 +1454,14 @@ static int snd_atiixp_resume(struct pci_dev *pci) | |||
1454 | struct atiixp *chip = card->private_data; | 1454 | struct atiixp *chip = card->private_data; |
1455 | int i; | 1455 | int i; |
1456 | 1456 | ||
1457 | pci_restore_state(pci); | ||
1458 | pci_enable_device(pci); | ||
1459 | pci_set_power_state(pci, PCI_D0); | 1457 | pci_set_power_state(pci, PCI_D0); |
1458 | pci_restore_state(pci); | ||
1459 | if (pci_enable_device(pci) < 0) { | ||
1460 | printk(KERN_ERR "atiixp: pci_enable_device failed, " | ||
1461 | "disabling device\n"); | ||
1462 | snd_card_disconnect(card); | ||
1463 | return -EIO; | ||
1464 | } | ||
1460 | pci_set_master(pci); | 1465 | pci_set_master(pci); |
1461 | 1466 | ||
1462 | snd_atiixp_aclink_reset(chip); | 1467 | snd_atiixp_aclink_reset(chip); |