Index: sys/dev/alc/if_alc.c =================================================================== --- sys/dev/alc/if_alc.c +++ sys/dev/alc/if_alc.c @@ -239,6 +239,8 @@ static devclass_t alc_devclass; DRIVER_MODULE(alc, pci, alc_driver, alc_devclass, 0, 0); +MODULE_PNP_INFO("U16:vendor;U16:device", pci, alc, alc_ident_table, + sizeof(alc_ident_table[0]), nitems(alc_ident_table) - 1); DRIVER_MODULE(miibus, alc, miibus_driver, miibus_devclass, 0, 0); static struct resource_spec alc_res_spec_mem[] = { Index: sys/dev/amdsmb/amdsmb.c =================================================================== --- sys/dev/amdsmb/amdsmb.c +++ sys/dev/amdsmb/amdsmb.c @@ -125,20 +125,33 @@ static int amdsmb_detach(device_t dev); +static struct amdsmb_dev { + uint16_t vendorid; + uint16_t deviceid; + const char *description; +} amdsmb_devs[] = { + { AMDSMB_VENDORID_AMD, AMDSMB_DEVICEID_AMD8111_SMB2, + "AMD-8111 SMBus 2.0 Controller" }, +}; + static int amdsmb_probe(device_t dev) { + const struct amdsmb_dev *asd; u_int16_t vid; u_int16_t did; + size_t i; vid = pci_get_vendor(dev); did = pci_get_device(dev); if (vid == AMDSMB_VENDORID_AMD) { - switch(did) { - case AMDSMB_DEVICEID_AMD8111_SMB2: - device_set_desc(dev, "AMD-8111 SMBus 2.0 Controller"); - return (BUS_PROBE_DEFAULT); + for (i = 0; i < nitems(amdsmb_devs); i++) { + asd = &amdsmb_devs[i]; + if (asd->deviceid == did) { + device_set_desc(dev, asd->description); + return (BUS_PROBE_DEFAULT); + } } } @@ -578,6 +591,8 @@ }; DRIVER_MODULE(amdsmb, pci, amdsmb_driver, amdsmb_devclass, 0, 0); +MODULE_PNP_INFO("U16:vendor;U16:device;D:#", pci, amdsmb, amdsmb_devs, + sizeof(amdsmb_devs[0]), nitems(amdsmb_devs)); DRIVER_MODULE(smbus, amdsmb, smbus_driver, smbus_devclass, 0, 0); MODULE_DEPEND(amdsmb, pci, 1, 1, 1); Index: sys/dev/bfe/if_bfe.c =================================================================== --- sys/dev/bfe/if_bfe.c +++ sys/dev/bfe/if_bfe.c @@ -157,6 +157,8 @@ static devclass_t bfe_devclass; DRIVER_MODULE(bfe, pci, bfe_driver, bfe_devclass, 0, 0); +MODULE_PNP_INFO("U16:vendor;U16:device;D:#", pci, bfe, bfe_devs, + sizeof(bfe_devs[0]), nitems(bfe_devs) - 1); DRIVER_MODULE(miibus, bfe, miibus_driver, miibus_devclass, 0, 0); /* Index: sys/dev/bge/if_bge.c =================================================================== --- sys/dev/bge/if_bge.c +++ sys/dev/bge/if_bge.c @@ -543,6 +543,8 @@ static devclass_t bge_devclass; DRIVER_MODULE(bge, pci, bge_driver, bge_devclass, 0, 0); +MODULE_PNP_INFO("U16:vendor;U16:device", pci, bge, bge_devs, + sizeof(bge_devs), nitems(bge_devs) - 1); DRIVER_MODULE(miibus, bge, miibus_driver, miibus_devclass, 0, 0); static int bge_allow_asf = 1; Index: sys/dev/ce/if_ce.c =================================================================== --- sys/dev/ce/if_ce.c +++ sys/dev/ce/if_ce.c @@ -144,6 +144,15 @@ DEVMETHOD_END }; +static struct ce_dev { + uint16_t vendorid; + uint16_t deviceid; + const char *description; +} ce_devs[] = { + { TAU32_PCI_VENDOR_ID, TAU32_PCI_DEVICE_ID, + "Cronyx-Tau32-PCI serial adapter" }, +}; + typedef struct _ce_dma_mem_t { unsigned long phys; void *virt; @@ -2630,14 +2639,11 @@ #endif #ifdef KLD_MODULE DRIVER_MODULE (cemod, pci, ce_driver, ce_devclass, ce_modevent, NULL); +MODULE_PNP_INFO("U16:vendor; U16:device;D:#", pci, cemod, ce_devs, + sizeof(ce_devs[0]), nitems(ce_devs)); #else DRIVER_MODULE (ce, pci, ce_driver, ce_devclass, ce_modevent, NULL); +MODULE_PNP_INFO("U16:vendor; U16:device;D:#", pci, ce, ce_devs, + sizeof(ce_devs[0]), nitems(ce_devs)); #endif -#else /* if __FreeBSD_version < 500000*/ -#ifdef NETGRAPH -DRIVER_MODULE (ce, pci, ce_driver, ce_devclass, ng_mod_event, &typestruct); -#else -DRIVER_MODULE (ce, pci, ce_driver, ce_devclass, ce_modevent, NULL); -#endif -#endif /* __FreeBSD_version < 500000 */ #endif /* NPCI */ Index: sys/dev/ciss/ciss.c =================================================================== --- sys/dev/ciss/ciss.c +++ sys/dev/ciss/ciss.c @@ -222,11 +222,6 @@ sizeof(struct ciss_softc) }; -static devclass_t ciss_devclass; -DRIVER_MODULE(ciss, pci, ciss_pci_driver, ciss_devclass, 0, 0); -MODULE_DEPEND(ciss, cam, 1, 1, 1); -MODULE_DEPEND(ciss, pci, 1, 1, 1); - /* * Control device interface. */ @@ -271,6 +266,7 @@ static int ciss_force_interrupt = 0; TUNABLE_INT("hw.ciss.force_interrupt", &ciss_force_interrupt); + /************************************************************************ * CISS adapters amazingly don't have a defined programming interface * value. (One could say some very despairing things about PCI and @@ -366,6 +362,13 @@ { 0, 0, 0, NULL } }; +static devclass_t ciss_devclass; +DRIVER_MODULE(ciss, pci, ciss_pci_driver, ciss_devclass, 0, 0); +MODULE_PNP_INFO("U16:vendor;U16:device;D:#", pci, ciss, ciss_vendor_data, + sizeof(ciss_vendor_data[0]), nitems(ciss_vendor_data) - 1); +MODULE_DEPEND(ciss, cam, 1, 1, 1); +MODULE_DEPEND(ciss, pci, 1, 1, 1); + /************************************************************************ * Find a match for the device in our list of known adapters. */ Index: sys/dev/cp/if_cp.c =================================================================== --- sys/dev/cp/if_cp.c +++ sys/dev/cp/if_cp.c @@ -87,6 +87,15 @@ static int cp_attach __P((device_t)); static int cp_detach __P((device_t)); +static struct cp_dev { + uint16_t vendorid; + uint16_t deviceid; + const char *description; +} cp_devs[] = { + { cp_vendor_id, cp_device_id, + "Cronyx-Tau-PCI serial adapter" }, +}; + static device_method_t cp_methods[] = { /* Device interface */ DEVMETHOD(device_probe, cp_probe), @@ -201,9 +210,11 @@ static int cp_probe (device_t dev) { - if ((pci_get_vendor (dev) == cp_vendor_id) && - (pci_get_device (dev) == cp_device_id)) { - device_set_desc (dev, "Cronyx-Tau-PCI serial adapter"); + const struct cp_dev *cpd; + cpd = &cp_devs[0]; + if ((pci_get_vendor (dev) == cp->vendorid) && + (pci_get_device (dev) == cp->deviceid)) { + device_set_desc (dev, cp->description); return BUS_PROBE_DEFAULT; } return ENXIO; @@ -2266,4 +2277,6 @@ MODULE_DEPEND (cp, sppp, 1, 1, 1); #endif DRIVER_MODULE (cp, pci, cp_driver, cp_devclass, cp_modevent, NULL); +MODULE_PNP_INFO("U16:vendor;U16:device;D:#", pci, cp, cp_devs, + sizeof(cp_devs[0]), nitems(cp_devs)); MODULE_VERSION (cp, 1); Index: sys/dev/dc/if_dc.c =================================================================== --- sys/dev/dc/if_dc.c +++ sys/dev/dc/if_dc.c @@ -359,6 +359,8 @@ DRIVER_MODULE_ORDERED(dc, pci, dc_driver, dc_devclass, NULL, NULL, SI_ORDER_ANY); +MODULE_PNP_INFO("W32:vendor/device;U8:revision;D:#", pci, dc, dc_devs, + sizeof(dc_devs[0]), nitems(dc_devs) - 1); DRIVER_MODULE(miibus, dc, miibus_driver, miibus_devclass, NULL, NULL); #define DC_SETBIT(sc, reg, x) \ Index: sys/dev/dpt/dpt_pci.c =================================================================== --- sys/dev/dpt/dpt_pci.c +++ sys/dev/dpt/dpt_pci.c @@ -62,12 +62,28 @@ static int dpt_pci_probe (device_t); static int dpt_pci_attach (device_t); +static struct dpt_dev { + uint16_t vendorid; + uint16_t deviceid; + const char *description; +} dpt_devs[] = { + { DPT_VENDOR_ID, DPT_DEVICE_ID, + "DPT Caching SCSI RAID Controller"}, +}; + static int dpt_pci_probe (device_t dev) { - if ((pci_get_vendor(dev) == DPT_VENDOR_ID) && - (pci_get_device(dev) == DPT_DEVICE_ID)) { - device_set_desc(dev, "DPT Caching SCSI RAID Controller"); + const struct dpt_dev *dpd; + uint16_t vid; + uint16_t did; + + vid = pci_get_vendor(dev); + did = pci_get_device(dev); + dpd = &dpt_devs[0]; + if ((vid == DPT_VENDOR_ID) && + (did == DPT_DEVICE_ID)) { + device_set_desc(dev, dpd->description); return (BUS_PROBE_DEFAULT); } return (ENXIO); @@ -185,5 +201,7 @@ }; DRIVER_MODULE(dpt, pci, dpt_pci_driver, dpt_devclass, 0, 0); +MODULE_PNP_INFO("U16:vendor;U16:device;D:#", pci, dpt, dpt_devs, + sizeof(dpt_devs[0]), nitems(dpt_devs)); MODULE_DEPEND(dpt, pci, 1, 1, 1); MODULE_DEPEND(dpt, cam, 1, 1, 1);