diff options
author | cinap_lenrek <cinap_lenrek@rei2.9hal> | 2012-02-21 11:58:42 +0100 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@rei2.9hal> | 2012-02-21 11:58:42 +0100 |
commit | 6c41bd843caa1d738431b49460b83038b54fd303 (patch) | |
tree | 70d57ccf549caf63906acb38be0136d16bc414e5 | |
parent | 6336c8387b7b426cd4e149171df65653cf964e5c (diff) | |
download | plan9front-6c41bd843caa1d738431b49460b83038b54fd303.tar.xz |
audiohda: add more pci vid/did
-rw-r--r-- | sys/src/9/pc/audiohda.c | 32 |
1 files changed, 29 insertions, 3 deletions
diff --git a/sys/src/9/pc/audiohda.c b/sys/src/9/pc/audiohda.c index 586d38324..062488676 100644 --- a/sys/src/9/pc/audiohda.c +++ b/sys/src/9/pc/audiohda.c @@ -1345,10 +1345,27 @@ hdamatch(Pcidev *p) { 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 @@ Found: 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); |