|
@@ -2310,6 +2310,10 @@ int snd_ymfpci_suspend(struct pci_dev *pci, pm_message_t state)
|
|
|
for (i = 0; i < YDSXGR_NUM_SAVED_REGS; i++)
|
|
|
chip->saved_regs[i] = snd_ymfpci_readl(chip, saved_regs_index[i]);
|
|
|
chip->saved_ydsxgr_mode = snd_ymfpci_readl(chip, YDSXGR_MODE);
|
|
|
+ pci_read_config_word(chip->pci, PCIR_DSXG_LEGACY,
|
|
|
+ &chip->saved_dsxg_legacy);
|
|
|
+ pci_read_config_word(chip->pci, PCIR_DSXG_ELEGACY,
|
|
|
+ &chip->saved_dsxg_elegacy);
|
|
|
snd_ymfpci_writel(chip, YDSXGR_NATIVEDACOUTVOL, 0);
|
|
|
snd_ymfpci_writel(chip, YDSXGR_BUF441OUTVOL, 0);
|
|
|
snd_ymfpci_disable_dsp(chip);
|
|
@@ -2344,6 +2348,11 @@ int snd_ymfpci_resume(struct pci_dev *pci)
|
|
|
|
|
|
snd_ac97_resume(chip->ac97);
|
|
|
|
|
|
+ pci_write_config_word(chip->pci, PCIR_DSXG_LEGACY,
|
|
|
+ chip->saved_dsxg_legacy);
|
|
|
+ pci_write_config_word(chip->pci, PCIR_DSXG_ELEGACY,
|
|
|
+ chip->saved_dsxg_elegacy);
|
|
|
+
|
|
|
/* start hw again */
|
|
|
if (chip->start_count > 0) {
|
|
|
spin_lock_irq(&chip->reg_lock);
|