From: Len Brown Date: Sat, 30 Jul 2005 05:55:32 +0000 (-0400) Subject: merge 2.6.13-rc4 with ACPI's to-linus tree X-Git-Tag: v2.6.13-rc5~51^2 X-Git-Url: http://pilppa.com/gitweb/?a=commitdiff_plain;h=adbedd34244e2b054557002817f979a9b004a405;p=linux-2.6-omap-h63xx.git merge 2.6.13-rc4 with ACPI's to-linus tree --- adbedd34244e2b054557002817f979a9b004a405 diff --cc sound/pci/intel8x0.c index 28ac005c21b,7c806bd9cc9..d7af3e47443 --- a/sound/pci/intel8x0.c +++ b/sound/pci/intel8x0.c @@@ -2373,8 -2374,8 +2374,11 @@@ static int intel8x0_suspend(snd_card_t for (i = 0; i < 3; i++) if (chip->ac97[i]) snd_ac97_suspend(chip->ac97[i]); + if (chip->device_type == DEVICE_INTEL_ICH4) + chip->sdm_saved = igetbyte(chip, ICHREG(SDM)); ++ + if (chip->irq >= 0) + free_irq(chip->irq, (void *)chip); pci_disable_device(chip->pci); return 0; } @@@ -2386,10 -2387,18 +2390,20 @@@ static int intel8x0_resume(snd_card_t * pci_enable_device(chip->pci); pci_set_master(chip->pci); - snd_intel8x0_chip_init(chip, 0); + request_irq(chip->irq, snd_intel8x0_interrupt, SA_INTERRUPT|SA_SHIRQ, card->shortname, (void *)chip); + synchronize_irq(chip->irq); + snd_intel8x0_chip_init(chip, 1); + /* re-initialize mixer stuff */ + if (chip->device_type == DEVICE_INTEL_ICH4) { + /* enable separate SDINs for ICH4 */ + iputbyte(chip, ICHREG(SDM), chip->sdm_saved); + /* use slot 10/11 for SPDIF */ + iputdword(chip, ICHREG(GLOB_CNT), + (igetdword(chip, ICHREG(GLOB_CNT)) & ~ICH_PCM_SPDIF_MASK) | + ICH_PCM_SPDIF_1011); + } + /* refill nocache */ if (chip->fix_nocache) fill_nocache(chip->bdbars.area, chip->bdbars.bytes, 1);