merge 2.6.13-rc4 with ACPI's to-linus tree
authorLen Brown <len.brown@intel.com>
Sat, 30 Jul 2005 05:55:32 +0000 (01:55 -0400)
committerLen Brown <len.brown@intel.com>
Sat, 30 Jul 2005 05:55:32 +0000 (01:55 -0400)
1  2 
arch/i386/pci/irq.c
sound/pci/intel8x0.c

Simple merge
index 28ac005c21b5ca9381e62316a4a94e24ddbbb857,7c806bd9cc90a7c647ac128270366f440f0c8b48..d7af3e47443263810fc075e1b7e9e513c01996fc
@@@ -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);