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); |
