diff options
Diffstat (limited to 'sys/dev/agp')
-rw-r--r-- | sys/dev/agp/agp_i810.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/sys/dev/agp/agp_i810.c b/sys/dev/agp/agp_i810.c index 3b209bd..79fd566 100644 --- a/sys/dev/agp/agp_i810.c +++ b/sys/dev/agp/agp_i810.c @@ -84,6 +84,9 @@ agp_i810_match(device_t dev) case 0x71258086: return ("Intel 82810E (i810E GMCH) SVGA controller"); + + case 0x11328086: + return ("Intel 82815 (i815 GMCH) SVGA controller"); }; return NULL; @@ -100,9 +103,20 @@ agp_i810_find_bridge(device_t dev) u_int32_t devid; /* - * XXX assume that the bridge device's ID is one minus the vga ID. + * Calculate bridge device's ID. */ - devid = pci_get_devid(dev) - 0x10000; + devid = pci_get_devid(dev); + switch (devid) { + case 0x71218086: + case 0x71238086: + case 0x71258086: + devid -= 0x10000; + break; + + case 0x11328086: + devid = 0x11308086; + break; + }; if (device_get_children(device_get_parent(dev), &children, &nchildren)) return 0; |