aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/hda
diff options
context:
space:
mode:
authorAdam Lackorzynski <adam@os.inf.tu-dresden.de>2011-03-10 11:41:56 -0500
committerTakashi Iwai <tiwai@suse.de>2011-03-10 11:44:34 -0500
commita09e89f67ca56d6fa7634bd0738d64fa61bc3c39 (patch)
treefca9a84947d7faaf72ca5d4e2e2120bf59487ff1 /sound/pci/hda
parent0a3fabe30e1a3b2037a12b863b8c45fffce38ee9 (diff)
ALSA: hda: Prevent writing ICH6_PCIREG_TCSEL on AMD systems
azx_init_pci() always writes PCI config register ICH6_PCIREG_TCSEL although this looks to be only defined on Intel systems and has a different meaning on AMD systems. On AMD systems the PCI interrupt pin control register is modified instead. Since the meaning of offset 0x44 in device specific configuration space is unknown for devices by other vendors, we only exclude AMD systems to retain the current behaviour. Signed-off-by: Adam Lackorzynski <adam@os.inf.tu-dresden.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci/hda')
-rw-r--r--sound/pci/hda/hda_intel.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
index fcedad9a5fef..70a9d32f0e96 100644
--- a/sound/pci/hda/hda_intel.c
+++ b/sound/pci/hda/hda_intel.c
@@ -1052,9 +1052,12 @@ static void azx_init_pci(struct azx *chip)
1052 /* Clear bits 0-2 of PCI register TCSEL (at offset 0x44) 1052 /* Clear bits 0-2 of PCI register TCSEL (at offset 0x44)
1053 * TCSEL == Traffic Class Select Register, which sets PCI express QOS 1053 * TCSEL == Traffic Class Select Register, which sets PCI express QOS
1054 * Ensuring these bits are 0 clears playback static on some HD Audio 1054 * Ensuring these bits are 0 clears playback static on some HD Audio
1055 * codecs 1055 * codecs.
1056 * The PCI register TCSEL is defined in the Intel manuals.
1056 */ 1057 */
1057 update_pci_byte(chip->pci, ICH6_PCIREG_TCSEL, 0x07, 0); 1058 if (chip->driver_type != AZX_DRIVER_ATI &&
1059 chip->driver_type != AZX_DRIVER_ATIHDMI)
1060 update_pci_byte(chip->pci, ICH6_PCIREG_TCSEL, 0x07, 0);
1058 1061
1059 switch (chip->driver_type) { 1062 switch (chip->driver_type) {
1060 case AZX_DRIVER_ATI: 1063 case AZX_DRIVER_ATI: