[ALSA] ens1370 - Fix resume
authorTakashi Iwai <tiwai@suse.de>
Thu, 12 Jan 2006 10:43:49 +0000 (11:43 +0100)
committerJaroslav Kysela <perex@suse.cz>
Wed, 22 Mar 2006 09:22:42 +0000 (10:22 +0100)
Modules: ENS1370/1+ driver

Fix resume of ens1370 driver.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/ens1370.c

index 55aaf110331a4227509ded1cc88e34dc98242a42..bee382995fe995cab9aa738cd40ea23fdb870fb4 100644 (file)
@@ -2061,6 +2061,13 @@ static int snd_ensoniq_suspend(struct pci_dev *pci, pm_message_t state)
 #ifdef CHIP1371        
        snd_ac97_suspend(ensoniq->u.es1371.ac97);
 #else
 #ifdef CHIP1371        
        snd_ac97_suspend(ensoniq->u.es1371.ac97);
 #else
+       /* try to reset AK4531 */
+       outw(ES_1370_CODEC_WRITE(AK4531_RESET, 0x02), ES_REG(ensoniq, 1370_CODEC));
+       inw(ES_REG(ensoniq, 1370_CODEC));
+       udelay(100);
+       outw(ES_1370_CODEC_WRITE(AK4531_RESET, 0x03), ES_REG(ensoniq, 1370_CODEC));
+       inw(ES_REG(ensoniq, 1370_CODEC));
+       udelay(100);
        snd_ak4531_suspend(ensoniq->u.es1370.ak4531);
 #endif 
        pci_set_power_state(pci, PCI_D3hot);
        snd_ak4531_suspend(ensoniq->u.es1370.ak4531);
 #endif 
        pci_set_power_state(pci, PCI_D3hot);