summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThierry Vignaud <tvignaud@mandriva.org>2005-02-17 14:15:02 +0000
committerThierry Vignaud <tvignaud@mandriva.org>2005-02-17 14:15:02 +0000
commit7e3f02d7b898faf370a9c5e4d416d7927a8ce2b2 (patch)
tree1347062dffe147eeb2a78fd1da94e737017cc8b2
parentfb9e762d04e7f7e1170dedc24d5c84f514ed83a0 (diff)
downloadldetect-7e3f02d7b898faf370a9c5e4d416d7927a8ce2b2.tar
ldetect-7e3f02d7b898faf370a9c5e4d416d7927a8ce2b2.tar.gz
ldetect-7e3f02d7b898faf370a9c5e4d416d7927a8ce2b2.tar.bz2
ldetect-7e3f02d7b898faf370a9c5e4d416d7927a8ce2b2.tar.xz
ldetect-7e3f02d7b898faf370a9c5e4d416d7927a8ce2b2.zip
handle a few more special cases (gdth, snd-vx222, 8139too, and agp bridges)
-rw-r--r--pci.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/pci.c b/pci.c
index 89856cb..f25ba48 100644
--- a/pci.c
+++ b/pci.c
@@ -80,8 +80,28 @@ extern struct pciusb_entries pci_probe(void) {
} else if (e->class_ == PCI_CLASS_BRIDGE_CARDBUS) {
e->module = strdup("yenta_socket");
+ } else if (e->class_ == (PCI_CLASS_BRIDGE_HOST << 8)) { /* AGP */
+ if (e->vendor == 0x10b9)
+ e->module = strdup("ali-agp");
+ else if (e->vendor == 0x1002)
+ e->module = strdup("ati-agp");
+ else if (e->vendor == 0x1039)
+ e->module = strdup("sis-agp");
+ else if (e->vendor == 0x1166)
+ e->module = strdup("sworks-agp");
+ else if (e->vendor == 0x1279)
+ e->module = strdup("efficeon-agp");
+ } else if (e->device == 0x8139) {
+ if (e->subvendor == 0x8139 && e->subdevice == 0x10ec
+ || e->subvendor == 0x1186 && e->subdevice == 0x1300
+ || e->subvendor == 0x13d1 && e->subdevice == 0xab06)
+ e->module = strdup("8139too");
} else if (e->vendor == 0x1106 && e->class_ == PCI_CLASS_STORAGE_IDE) {
e->module = strdup("sata_via");
+ } else if (e->vendor == 0x10b5 && (e->device == 0x9030 || e->device == 0x9050) && e->subvendor == 0x1369) {
+ e->module = strdup("snd-vx222");
+ } else if (e->vendor == 0x1119) { /* Vortex only makes RAID controllers. */
+ e->module = strdup("gdth");
}
close(devf);