ref: 2f2e3b1f7234a1fcfc19b4a323c709642b93b8af
parent: f31bb1141bf602601ce9f6a2e7ef740be6971afe
author: cinap_lenrek <cinap_lenrek@rei2.9hal>
date: Tue Feb 21 06:58:42 EST 2012
audiohda: add more pci vid/did
--- a/sys/src/9/pc/audiohda.c
+++ b/sys/src/9/pc/audiohda.c
@@ -1345,10 +1345,27 @@
{while(p = pcimatch(p, 0, 0))
switch((p->vid << 16) | p->did){- case (0x8086 << 16) | 0x27d8:
+ case (0x8086 << 16) | 0x2668: /* Intel ICH6 (untested) */
+ case (0x8086 << 16) | 0x27d8: /* Intel ICH7 */
+ case (0x8086 << 16) | 0x269a: /* Intel ESB2 (untested) */
case (0x8086 << 16) | 0x284b: /* Intel ICH8 */
- case (0x1002 << 16) | 0x4383: /* ATI */
+ case (0x8086 << 16) | 0x293f: /* Intel ICH9 (untested) */
+ case (0x8086 << 16) | 0x293e: /* Intel P35 (untested) */
+
+ case (0x10de << 16) | 0x026c: /* NVidia MCP51 (untested) */
+ case (0x10de << 16) | 0x0371: /* NVidia MCP55 (untested) */
+ case (0x10de << 16) | 0x03e4: /* NVidia MCP61 (untested) */
+ case (0x10de << 16) | 0x03f0: /* NVidia MCP61A (untested) */
+ case (0x10de << 16) | 0x044a: /* NVidia MCP65 (untested) */
+ case (0x10de << 16) | 0x055c: /* NVidia MCP67 (untested) */
+
+ case (0x1002 << 16) | 0x437b: /* ATI SB450 (untested) */
+ case (0x1002 << 16) | 0x4383: /* ATI SB600 */
case (0x1002 << 16) | 0x7919: /* ATI HDMI */
+
+ case (0x1106 << 16) | 0x3288: /* VIA (untested) */
+ case (0x1039 << 16) | 0x7502: /* SIS (untested) */
+ case (0x10b9 << 16) | 0x5461: /* ULI (untested) */
return p;
}
return nil;
@@ -1429,9 +1446,18 @@
irq = p->intl;
tbdf = p->tbdf;
+ if(p->vid == 0x10de){+ /* magic for NVidia */
+ pcicfgw8(p, 0x4e, (pcicfgr8(p, 0x4e) & 0xf0) | 0x0f);
+ }
+ if(p->vid == 0x10b9){+ /* magic for ULI */
+ pcicfgw16(p, 0x40, pcicfgr16(p, 0x40) | 0x10);
+ pcicfgw32(p, PciBAR1, 0);
+ }
if(p->vid == 0x1002){/* magic for ATI */
- pcicfgw8(p, 0x42, pcicfgr8(p, 0x42) | 2);
+ pcicfgw8(p, 0x42, pcicfgr8(p, 0x42) | 0x02);
} else {/* TCSEL */
pcicfgw8(p, 0x44, pcicfgr8(p, 0x44) & 0xf8);
--
⑨