Page MenuHomeFreeBSD

D16324.id45470.diff
No OneTemporary

D16324.id45470.diff

Index: sys/dev/ichiic/ig4_pci.c
===================================================================
--- sys/dev/ichiic/ig4_pci.c
+++ sys/dev/ichiic/ig4_pci.c
@@ -89,54 +89,98 @@
#define PCI_CHIP_APL_I2C_6 0x5ab88086
#define PCI_CHIP_APL_I2C_7 0x5aba8086
-struct ig4iic_pci_device {
- uint32_t devid;
- const char *desc;
- enum ig4_vers version;
-};
-static struct ig4iic_pci_device ig4iic_pci_devices[] = {
- { PCI_CHIP_LYNXPT_LP_I2C_1, "Intel Lynx Point-LP I2C Controller-1", IG4_HASWELL},
- { PCI_CHIP_LYNXPT_LP_I2C_2, "Intel Lynx Point-LP I2C Controller-2", IG4_HASWELL},
- { PCI_CHIP_BRASWELL_I2C_1, "Intel Braswell Serial I/O I2C Port 1", IG4_ATOM},
- { PCI_CHIP_BRASWELL_I2C_2, "Intel Braswell Serial I/O I2C Port 2", IG4_ATOM},
- { PCI_CHIP_BRASWELL_I2C_3, "Intel Braswell Serial I/O I2C Port 3", IG4_ATOM},
- { PCI_CHIP_BRASWELL_I2C_5, "Intel Braswell Serial I/O I2C Port 5", IG4_ATOM},
- { PCI_CHIP_BRASWELL_I2C_6, "Intel Braswell Serial I/O I2C Port 6", IG4_ATOM},
- { PCI_CHIP_BRASWELL_I2C_7, "Intel Braswell Serial I/O I2C Port 7", IG4_ATOM},
- { PCI_CHIP_SKYLAKE_I2C_0, "Intel Sunrise Point-LP I2C Controller-0", IG4_SKYLAKE},
- { PCI_CHIP_SKYLAKE_I2C_1, "Intel Sunrise Point-LP I2C Controller-1", IG4_SKYLAKE},
- { PCI_CHIP_SKYLAKE_I2C_2, "Intel Sunrise Point-LP I2C Controller-2", IG4_SKYLAKE},
- { PCI_CHIP_SKYLAKE_I2C_3, "Intel Sunrise Point-LP I2C Controller-3", IG4_SKYLAKE},
- { PCI_CHIP_SKYLAKE_I2C_4, "Intel Sunrise Point-LP I2C Controller-4", IG4_SKYLAKE},
- { PCI_CHIP_SKYLAKE_I2C_5, "Intel Sunrise Point-LP I2C Controller-5", IG4_SKYLAKE},
- { PCI_CHIP_APL_I2C_0, "Intel Apollo Lake I2C Controller-0", IG4_APL},
- { PCI_CHIP_APL_I2C_1, "Intel Apollo Lake I2C Controller-1", IG4_APL},
- { PCI_CHIP_APL_I2C_2, "Intel Apollo Lake I2C Controller-2", IG4_APL},
- { PCI_CHIP_APL_I2C_3, "Intel Apollo Lake I2C Controller-3", IG4_APL},
- { PCI_CHIP_APL_I2C_4, "Intel Apollo Lake I2C Controller-4", IG4_APL},
- { PCI_CHIP_APL_I2C_5, "Intel Apollo Lake I2C Controller-5", IG4_APL},
- { PCI_CHIP_APL_I2C_6, "Intel Apollo Lake I2C Controller-6", IG4_APL},
- { PCI_CHIP_APL_I2C_7, "Intel Apollo Lake I2C Controller-7", IG4_APL},
- { 0, NULL, 0 },
+#define PCI_DEVICE_LYNXPT_LP_I2C_1 0x9c61
+#define PCI_DEVICE_LYNXPT_LP_I2C_2 0x9c62
+#define PCI_DEVICE_BRASWELL_I2C_1 0x22c1
+#define PCI_DEVICE_BRASWELL_I2C_2 0x22c2
+#define PCI_DEVICE_BRASWELL_I2C_3 0x22c3
+#define PCI_DEVICE_BRASWELL_I2C_5 0x22c5
+#define PCI_DEVICE_BRASWELL_I2C_6 0x22c6
+#define PCI_DEVICE_BRASWELL_I2C_7 0x22c7
+#define PCI_DEVICE_SKYLAKE_I2C_0 0x9d60
+#define PCI_DEVICE_SKYLAKE_I2C_1 0x9d61
+#define PCI_DEVICE_SKYLAKE_I2C_2 0x9d62
+#define PCI_DEVICE_SKYLAKE_I2C_3 0x9d63
+#define PCI_DEVICE_SKYLAKE_I2C_4 0x9d64
+#define PCI_DEVICE_SKYLAKE_I2C_5 0x9d65
+#define PCI_DEVICE_APL_I2C_0 0x5aac
+#define PCI_DEVICE_APL_I2C_1 0x5aae
+#define PCI_DEVICE_APL_I2C_2 0x5ab0
+#define PCI_DEVICE_APL_I2C_3 0x5ab2
+#define PCI_DEVICE_APL_I2C_4 0x5ab4
+#define PCI_DEVICE_APL_I2C_5 0x5ab6
+#define PCI_DEVICE_APL_I2C_6 0x5ab8
+#define PCI_DEVICE_APL_I2C_7 0x5aba
+#define INTEL_VENDOR_ID 0x8086
+
+
+struct pci_device_table ig4iic_pci_devices[] = {
+ {PCI_DEV(INTEL_VENDOR_ID, PCI_DEVICE_LYNXPT_LP_I2C_1),
+ PCI_DESCR("Intel Lynx Point-LP I2C Controller-1"), .unused = (1)},
+ {PCI_DEV(INTEL_VENDOR_ID, PCI_DEVICE_LYNXPT_LP_I2C_2),
+ PCI_DESCR("Intel Lynx Point-LP I2C Controller-2"), .unused = (1)},
+ {PCI_DEV(INTEL_VENDOR_ID, PCI_DEVICE_BRASWELL_I2C_1),
+ PCI_DESCR("Intel Braswell Serial I/O I2C Port 1"), .unused = (2)},
+ {PCI_DEV(INTEL_VENDOR_ID, PCI_DEVICE_BRASWELL_I2C_2),
+ PCI_DESCR("Intel Braswell Serial I/O I2C Port 2"), .unused = (2)},
+ {PCI_DEV(INTEL_VENDOR_ID, PCI_DEVICE_BRASWELL_I2C_3),
+ PCI_DESCR("Intel Braswell Serial I/O I2C Port 3"), .unused = (2)},
+ {PCI_DEV(INTEL_VENDOR_ID, PCI_DEVICE_BRASWELL_I2C_5),
+ PCI_DESCR("Intel Braswell Serial I/O I2C Port 5"), .unused = (2)},
+ {PCI_DEV(INTEL_VENDOR_ID, PCI_DEVICE_BRASWELL_I2C_6),
+ PCI_DESCR("Intel Braswell Serial I/O I2C Port 6"), .unused = (2)},
+ {PCI_DEV(INTEL_VENDOR_ID, PCI_DEVICE_BRASWELL_I2C_7),
+ PCI_DESCR("Intel Braswell Serial I/O I2C Port 7"), .unused = (2)},
+ {PCI_DEV(INTEL_VENDOR_ID, PCI_DEVICE_SKYLAKE_I2C_0),
+ PCI_DESCR("Intel Sunrise Point-LP I2C Controller-0"), .unused = (3)},
+ {PCI_DEV(INTEL_VENDOR_ID, PCI_DEVICE_SKYLAKE_I2C_1),
+ PCI_DESCR("Intel Sunrise Point-LP I2C Controller-1"), .unused = (3)},
+ {PCI_DEV(INTEL_VENDOR_ID, PCI_DEVICE_SKYLAKE_I2C_2),
+ PCI_DESCR("Intel Sunrise Point-LP I2C Controller-2"), .unused = (3)},
+ {PCI_DEV(INTEL_VENDOR_ID, PCI_DEVICE_SKYLAKE_I2C_3),
+ PCI_DESCR("Intel Sunrise Point-LP I2C Controller-3"), .unused = (3)},
+ {PCI_DEV(INTEL_VENDOR_ID, PCI_DEVICE_SKYLAKE_I2C_4),
+ PCI_DESCR("Intel Sunrise Point-LP I2C Controller-4"), .unused = (3)},
+ {PCI_DEV(INTEL_VENDOR_ID, PCI_DEVICE_SKYLAKE_I2C_5),
+ PCI_DESCR("Intel Sunrise Point-LP I2C Controller-5"), .unused = (3)},
+ {PCI_DEV(INTEL_VENDOR_ID, PCI_DEVICE_APL_I2C_0),
+ PCI_DESCR("Intel Apollo Lake I2C Controller-0"), .unused = (4)},
+ {PCI_DEV(INTEL_VENDOR_ID, PCI_DEVICE_APL_I2C_1),
+ PCI_DESCR("Intel Apollo Lake I2C Controller-1"), .unused = (4)},
+ {PCI_DEV(INTEL_VENDOR_ID, PCI_DEVICE_APL_I2C_2),
+ PCI_DESCR("Intel Apollo Lake I2C Controller-2"), .unused = (4)},
+ {PCI_DEV(INTEL_VENDOR_ID, PCI_DEVICE_APL_I2C_3),
+ PCI_DESCR("Intel Apollo Lake I2C Controller-3"), .unused = (4)},
+ {PCI_DEV(INTEL_VENDOR_ID, PCI_DEVICE_APL_I2C_4),
+ PCI_DESCR("Intel Apollo Lake I2C Controller-4"), .unused = (4)},
+ {PCI_DEV(INTEL_VENDOR_ID, PCI_DEVICE_APL_I2C_5),
+ PCI_DESCR("Intel Apollo Lake I2C Controller-5"), .unused = (4)},
+ {PCI_DEV(INTEL_VENDOR_ID, PCI_DEVICE_APL_I2C_6),
+ PCI_DESCR("Intel Apollo Lake I2C Controller-6"), .unused = (4)},
+ {PCI_DEV(INTEL_VENDOR_ID, PCI_DEVICE_APL_I2C_7),
+ PCI_DESCR("Intel Apollo Lake I2C Controller-7"), .unused = (4)}
};
static int
ig4iic_pci_probe(device_t dev)
{
ig4iic_softc_t *sc = device_get_softc(dev);
- uint32_t devid;
- int i;
-
- devid = pci_get_devid(dev);
- for (i = 0; ig4iic_pci_devices[i].devid != 0; i++) {
- if (ig4iic_pci_devices[i].devid == devid) {
- device_set_desc(dev, ig4iic_pci_devices[i].desc);
- sc->version = ig4iic_pci_devices[i].version;
- return (BUS_PROBE_DEFAULT);
- }
- }
- return (ENXIO);
+ const struct pci_device_table *ig4d;
+
+ ig4d = PCI_MATCH(dev, ig4iic_pci_devices);
+ if (ig4d == NULL)
+ return (ENXIO);
+ device_set_desc(dev, ig4d->descr);
+ if (ig4d->unused == 1)
+ sc->version = IG4_HASWELL;
+ else if (ig4d->unused == 2)
+ sc->version = IG4_ATOM;
+ else if (ig4d->unused == 3)
+ sc->version = IG4_SKYLAKE;
+ else if (ig4d->unused == 4)
+ sc->version = IG4_APL;
+ return (BUS_PROBE_DEFAULT);
}
static int
@@ -226,6 +270,8 @@
DRIVER_MODULE_ORDERED(ig4iic_pci, pci, ig4iic_pci_driver, ig4iic_pci_devclass, 0, 0,
SI_ORDER_ANY);
+PCI_PNP_INFO(ig4iic_pci_devices);
+
MODULE_DEPEND(ig4iic_pci, pci, 1, 1, 1);
MODULE_DEPEND(ig4iic_pci, iicbus, IICBUS_MINVER, IICBUS_PREFVER, IICBUS_MAXVER);
MODULE_VERSION(ig4iic_pci, 1);
Index: sys/dev/ida/ida_pci.c
===================================================================
--- sys/dev/ida/ida_pci.c
+++ sys/dev/ida/ida_pci.c
@@ -306,3 +306,5 @@
}
DRIVER_MODULE(ida, pci, ida_pci_driver, ida_devclass, 0, 0);
+MODULE_PNP_INFO("W32:vendor/device;D:#", pci, ida, board_id,
+ sizeof(board_id[0]), nitems(board_id) - 1);
Index: sys/dev/iicbus/iicoc.c
===================================================================
--- sys/dev/iicbus/iicoc.c
+++ sys/dev/iicbus/iicoc.c
@@ -68,6 +68,11 @@
int len, int *sent, int timeout);
static int iicoc_repeated_start(device_t dev, u_char slave, int timeout);
+struct pci_device_table iicoc_devs[] = {
+ {PCI_DEV(0x184e, 0x1011),
+ PCI_DESCR("0x1011")}
+}
+
struct iicoc_softc {
device_t dev; /* Self */
u_int reg_shift; /* Chip specific */
@@ -179,17 +184,17 @@
iicoc_probe(device_t dev)
{
struct iicoc_softc *sc;
-
+ const struct pci_device_table *iicd;
+
sc = device_get_softc(dev);
- if ((pci_get_vendor(dev) == 0x184e) &&
- (pci_get_device(dev) == 0x1011)) {
- sc->clockfreq = XLP_I2C_CLKFREQ;
- sc->i2cfreq = XLP_I2C_FREQ;
- sc->reg_shift = 2;
- device_set_desc(dev, "Netlogic XLP I2C Controller");
- return (BUS_PROBE_DEFAULT);
- }
- return (ENXIO);
+ iicd = PCI_MATCH(dev, iicoc_devs);
+ if (iicd == NULL)
+ return (ENXIO);
+ sc->clockfreq = XLP_I2C_CLKFREQ;
+ sc->i2cfreq = XLP_I2C_FREQ;
+ sc->reg_shift = 2;
+ device_set_desc(dev, iicd->descr);
+ return (BUS_PROBE_DEFAULT);
}
@@ -390,4 +395,5 @@
};
DRIVER_MODULE(iicoc, pci, iicoc_driver, iicoc_devclass, 0, 0);
+PCI_PNP_INFO(iicoc_devs);
DRIVER_MODULE(iicbus, iicoc, iicbus_driver, iicbus_devclass, 0, 0);
Index: sys/dev/ipmi/ipmi_pci.c
===================================================================
--- sys/dev/ipmi/ipmi_pci.c
+++ sys/dev/ipmi/ipmi_pci.c
@@ -51,42 +51,23 @@
static int ipmi_pci_probe(device_t dev);
static int ipmi_pci_attach(device_t dev);
-static struct ipmi_ident
-{
- u_int16_t vendor;
- u_int16_t device;
- char *desc;
-} ipmi_identifiers[] = {
- {0x1028, 0x000d, "Dell PE2650 SMIC interface"},
- {0, 0, 0}
+struct pci_device_table ipmi_identifiers[] = {
+ {PCI_DEV(0x1028, 0x000d),
+ PCI_DESCR("Dell PE2650 SMIC interface")}
};
-const char *
-ipmi_pci_match(uint16_t vendor, uint16_t device)
-{
- struct ipmi_ident *m;
-
- for (m = ipmi_identifiers; m->vendor != 0; m++)
- if (m->vendor == vendor && m->device == device)
- return (m->desc);
- return (NULL);
-}
-
static int
ipmi_pci_probe(device_t dev)
{
- const char *desc;
+ const struct pci_device_table *ipmd;
if (ipmi_attached)
return (ENXIO);
-
- desc = ipmi_pci_match(pci_get_vendor(dev), pci_get_device(dev));
- if (desc != NULL) {
- device_set_desc(dev, desc);
- return (BUS_PROBE_DEFAULT);
- }
-
- return (ENXIO);
+ ipmd = PCI_MATCH(dev, ipmi_identifiers);
+ if (ipmd == NULL)
+ return (ENXIO);
+ device_set_desc(dev, ipmd->descr);
+ return (BUS_PROBE_DEFAULT);
}
static int
@@ -179,20 +160,24 @@
};
DRIVER_MODULE(ipmi_pci, pci, ipmi_pci_driver, ipmi_devclass, 0, 0);
+PCI_PNP_INFO(ipmi_identifiers);
/* Native IPMI on PCI driver. */
+struct pci_device_table ipmi2_devs[] = {
+ {PCI_CLASS(PCI_SERIALBUS), PCI_SUBCLASS(PCIS_SERIALBUS_IPMI),
+ PCI_DESCR("IPMI System Interface")}
+};
static int
ipmi2_pci_probe(device_t dev)
{
+ const struct pci_device_table *ipmi2d;
- if (pci_get_class(dev) == PCIC_SERIALBUS &&
- pci_get_subclass(dev) == PCIS_SERIALBUS_IPMI) {
- device_set_desc(dev, "IPMI System Interface");
- return (BUS_PROBE_GENERIC);
- }
-
- return (ENXIO);
+ ipmi2d = PCI_MATCH(dev, ipmi2_devs);
+ if (ipmi2d == NULL)
+ return (ENXIO);
+ device_set_desc(dev, ipmi2d->descr);
+ return (BUS_PROBE_GENERIC);
}
static int
@@ -292,3 +277,4 @@
};
DRIVER_MODULE(ipmi2_pci, pci, ipmi2_pci_driver, ipmi_devclass, 0, 0);
+PCI_PNP_INFO(ipmi2_devs);
Index: sys/dev/isci/isci.c
===================================================================
--- sys/dev/isci/isci.c
+++ sys/dev/isci/isci.c
@@ -54,6 +54,7 @@
#include <dev/isci/scil/scif_library.h>
#include <dev/isci/scil/scif_logger.h>
#include <dev/isci/scil/scif_user_callback.h>
+#define INTEL_VENDOR_ID 0x8086
MALLOC_DEFINE(M_ISCI, "isci", "isci driver memory allocations");
@@ -85,49 +86,55 @@
sizeof(struct isci_softc),
};
+struct pci_device_table isci_devs[] = {
+ {PCI_DEV(INTEL_VENDOR_ID, 0x1d60),
+ PCI_DESCR("Intel(R) C600 Series Chipset SAS Controller")},
+ {PCI_DEV(INTEL_VENDOR_ID, 0x1d61),
+ PCI_DESCR("Intel(R) C600 Series Chipset SAS Controller (SATA mode)")},
+ {PCI_DEV(INTEL_VENDOR_ID, 0x1d62),
+ PCI_DESCR("Intel(R) C600 Series Chipset SAS Controller")},
+ {PCI_DEV(INTEL_VENDOR_ID, 0x1d63),
+ PCI_DESCR("Intel(R) C600 Series Chipset SAS Controller")},
+ {PCI_DEV(INTEL_VENDOR_ID, 0x1d64),
+ PCI_DESCR("Intel(R) C600 Series Chipset SAS Controller")},
+ {PCI_DEV(INTEL_VENDOR_ID, 0x1d65),
+ PCI_DESCR("Intel(R) C600 Series Chipset SAS Controller")},
+ {PCI_DEV(INTEL_VENDOR_ID, 0x1d66),
+ PCI_DESCR("Intel(R) C600 Series Chipset SAS Controller")},
+ {PCI_DEV(INTEL_VENDOR_ID, 0x1d67),
+ PCI_DESCR("Intel(R) C600 Series Chipset SAS Controller")},
+ {PCI_DEV(INTEL_VENDOR_ID, 0x1d68),
+ PCI_DESCR("Intel(R) C600 Series Chipset SAS Controller")},
+ {PCI_DEV(INTEL_VENDOR_ID, 0x1d69),
+ PCI_DESCR("Intel(R) C600 Series Chipset SAS Controller")},
+ {PCI_DEV(INTEL_VENDOR_ID, 0x1d6a),
+ PCI_DESCR("Intel(R) C600 Series Chipset SAS Controller (SATA mode)")},
+ {PCI_DEV(INTEL_VENDOR_ID, 0x1d6b),
+ PCI_DESCR("Intel(R) C600 Series Chipset SAS Controller (SATA mode)")},
+ {PCI_DEV(INTEL_VENDOR_ID, 0x1d6c),
+ PCI_DESCR("Intel(R) C600 Series Chipset SAS Controller")},
+ {PCI_DEV(INTEL_VENDOR_ID, 0x1d6d),
+ PCI_DESCR("Intel(R) C600 Series Chipset SAS Controller")},
+ {PCI_DEV(INTEL_VENDOR_ID, 0x1d6e),
+ PCI_DESCR("Intel(R) C600 Series Chipset SAS Controller")},
+ {PCI_DEV(INTEL_VENDOR_ID, 0x1d6f),
+ PCI_DESCR("Intel(R) C600 Series Chipset SAS Controller (SATA mode)")}
+};
+
DRIVER_MODULE(isci, pci, isci_pci_driver, isci_devclass, 0, 0);
+PCI_PNP_INFO(isci_devs);
MODULE_DEPEND(isci, cam, 1, 1, 1);
-static struct _pcsid
-{
- u_int32_t type;
- const char *desc;
-} pci_ids[] = {
- { 0x1d608086, "Intel(R) C600 Series Chipset SAS Controller" },
- { 0x1d618086, "Intel(R) C600 Series Chipset SAS Controller (SATA mode)" },
- { 0x1d628086, "Intel(R) C600 Series Chipset SAS Controller" },
- { 0x1d638086, "Intel(R) C600 Series Chipset SAS Controller" },
- { 0x1d648086, "Intel(R) C600 Series Chipset SAS Controller" },
- { 0x1d658086, "Intel(R) C600 Series Chipset SAS Controller" },
- { 0x1d668086, "Intel(R) C600 Series Chipset SAS Controller" },
- { 0x1d678086, "Intel(R) C600 Series Chipset SAS Controller" },
- { 0x1d688086, "Intel(R) C600 Series Chipset SAS Controller" },
- { 0x1d698086, "Intel(R) C600 Series Chipset SAS Controller" },
- { 0x1d6a8086, "Intel(R) C600 Series Chipset SAS Controller (SATA mode)" },
- { 0x1d6b8086, "Intel(R) C600 Series Chipset SAS Controller (SATA mode)" },
- { 0x1d6c8086, "Intel(R) C600 Series Chipset SAS Controller" },
- { 0x1d6d8086, "Intel(R) C600 Series Chipset SAS Controller" },
- { 0x1d6e8086, "Intel(R) C600 Series Chipset SAS Controller" },
- { 0x1d6f8086, "Intel(R) C600 Series Chipset SAS Controller (SATA mode)" },
- { 0x00000000, NULL }
-};
-
static int
isci_probe (device_t device)
{
- u_int32_t type = pci_get_devid(device);
- struct _pcsid *ep = pci_ids;
+ const struct pci_device_table *iscd;
- while (ep->type && ep->type != type)
- ++ep;
-
- if (ep->desc)
- {
- device_set_desc(device, ep->desc);
- return (BUS_PROBE_DEFAULT);
- }
- else
+ iscd = PCI_MATCH(dev, isci_devs);
+ if (iscd == NULL)
return (ENXIO);
+ device_set_desc(device, iscd->descr);
+ return (BUS_PROBE_DEFAULT);
}
static int
Index: sys/dev/isp/isp_pci.c
===================================================================
--- sys/dev/isp/isp_pci.c
+++ sys/dev/isp/isp_pci.c
@@ -304,6 +304,58 @@
#define PCI_DFLT_LTNCY 0x40
#define PCI_DFLT_LNSZ 0x10
+struct pci_device_table isp_devs[] = {
+ {PCI_DEV(PCI_VENDOR_QLOGIC, PCI_PRODUCT_QLOGIC_ISP1020),
+ PCI_DESCR("Qlogic ISP 1020/1040 PCI SCSI Adapter")},
+ {PCI_DEV(PCI_VENDOR_QLOGIC, PCI_PRODUCT_QLOGIC_ISP1080),
+ PCI_DESCR("Qlogic ISP 1080 PCI SCSI Adapter")},
+ {PCI_DEV(PCI_VENDOR_QLOGIC, PCI_PRODUCT_QLOGIC_ISP1240),
+ PCI_DESCR("Qlogic ISP 1240 PCI SCSI Adapter")},
+ {PCI_DEV(PCI_VENDOR_QLOGIC, PCI_PRODUCT_QLOGIC_ISP1280),
+ PCI_DESCR("Qlogic ISP 1280 PCI SCSI Adapter")},
+ {PCI_DEV(PCI_VENDOR_QLOGIC, PCI_PRODUCT_QLOGIC_ISP10160),
+ PCI_DESCR("Qlogic ISP 10160 PCI SCSI Adapter")},
+ {PCI_DEV(PCI_VENDOR_QLOGIC, PCI_PRODUCT_QLOGIC_ISP12160),
+ PCI_DESCR("Qlogic ISP 12160 PCI SCSI Adapter")},
+ {PCI_DEV(PCI_VENDOR_QLOGIC, PCI_PRODUCT_QLOGIC_ISP1280),
+ PCI_DESCR("Qlogic ISP 1280 PCI SCSI Adapter")},
+ {PCI_DEV(PCI_VENDOR_QLOGIC, PCI_PRODUCT_QLOGIC_ISP2100),
+ PCI_DESCR("Qlogic ISP 2100 PCI FC-AL Adapter")},
+ {PCI_DEV(PCI_VENDOR_QLOGIC, PCI_PRODUCT_QLOGIC_ISP2200),
+ PCI_DESCR("Qlogic ISP 2200 PCI FC-AL Adapter")},
+ {PCI_DEV(PCI_VENDOR_QLOGIC, PCI_PRODUCT_QLOGIC_ISP2300),
+ PCI_DESCR("Qlogic ISP 2300 PCI FC-AL Adapter")},
+ {PCI_DEV(PCI_VENDOR_QLOGIC, PCI_PRODUCT_QLOGIC_ISP2312),
+ PCI_DESCR("Qlogic ISP 2312 PCI FC-AL Adapter")},
+ {PCI_DEV(PCI_VENDOR_QLOGIC, PCI_PRODUCT_QLOGIC_ISP2322),
+ PCI_DESCR("Qlogic ISP 2322 PCI FC-AL Adapter")},
+ {PCI_DEV(PCI_VENDOR_QLOGIC, PCI_PRODUCT_QLOGIC_ISP2422),
+ PCI_DESCR("Qlogic ISP 2422 PCI FC-AL Adapter")},
+ {PCI_DEV(PCI_VENDOR_QLOGIC, PCI_PRODUCT_QLOGIC_ISP2432),
+ PCI_DESCR("Qlogic ISP 2432 PCI FC-AL Adapter")},
+ {PCI_DEV(PCI_VENDOR_QLOGIC, PCI_PRODUCT_QLOGIC_ISP2532),
+ PCI_DESCR("Qlogic ISP 2532 PCI FC-AL Adapter")},
+ {PCI_DEV(PCI_VENDOR_QLOGIC, PCI_PRODUCT_QLOGIC_ISP5432),
+ PCI_DESCR("Qlogic ISP 5432 PCI FC-AL Adapter")},
+ {PCI_DEV(PCI_VENDOR_QLOGIC, PCI_PRODUCT_QLOGIC_ISP6312),
+ PCI_DESCR("Qlogic ISP 6312 PCI FC-AL Adapter")},
+ {PCI_DEV(PCI_VENDOR_QLOGIC, PCI_PRODUCT_QLOGIC_ISP6322),
+ PCI_DESCR("Qlogic ISP 6322 PCI FC-AL Adapter")},
+ {PCI_DEV(PCI_VENDOR_QLOGIC, PCI_PRODUCT_QLOGIC_ISP2031),
+ PCI_DESCR("Qlogic ISP 2031 PCI FC-AL Adapter")},
+ {PCI_DEV(PCI_VENDOR_QLOGIC, PCI_PRODUCT_QLOGIC_ISP8031),
+ PCI_DESCR("Qlogic ISP 8031 PCI FCoE Adapter")},
+ {PCI_DEV(PCI_VENDOR_QLOGIC, PCI_PRODUCT_QLOGIC_ISP2684),
+ PCI_DESCR("Qlogic ISP 2684 PCI FC Adapter")},
+ {PCI_DEV(PCI_VENDOR_QLOGIC, PCI_PRODUCT_QLOGIC_ISP2692),
+ PCI_DESCR("Qlogic ISP 2692 PCI FC Adapter")},
+ {PCI_DEV(PCI_VENDOR_QLOGIC, PCI_PRODUCT_QLOGIC_ISP2714),
+ PCI_DESCR("Qlogic ISP 2714 PCI FC Adapter")},
+ {PCI_DEV(PCI_VENDOR_QLOGIC, PCI_PRODUCT_QLOGIC_ISP2722),
+ PCI_DESCR("Qlogic ISP 2722 PCI FC Adapter")}
+
+};
+
static int isp_pci_probe (device_t);
static int isp_pci_attach (device_t);
static int isp_pci_detach (device_t);
@@ -346,6 +398,7 @@
};
static devclass_t isp_devclass;
DRIVER_MODULE(isp, pci, isp_pci_driver, isp_devclass, 0, 0);
+PCI_PNP_INFO(isp_devs);
MODULE_DEPEND(isp, cam, 1, 1, 1);
MODULE_DEPEND(isp, firmware, 1, 1, 1);
static int isp_nvports = 0;
@@ -353,82 +406,15 @@
static int
isp_pci_probe(device_t dev)
{
- switch ((pci_get_device(dev) << 16) | (pci_get_vendor(dev))) {
- case PCI_QLOGIC_ISP1020:
- device_set_desc(dev, "Qlogic ISP 1020/1040 PCI SCSI Adapter");
- break;
- case PCI_QLOGIC_ISP1080:
- device_set_desc(dev, "Qlogic ISP 1080 PCI SCSI Adapter");
- break;
- case PCI_QLOGIC_ISP1240:
- device_set_desc(dev, "Qlogic ISP 1240 PCI SCSI Adapter");
- break;
- case PCI_QLOGIC_ISP1280:
- device_set_desc(dev, "Qlogic ISP 1280 PCI SCSI Adapter");
- break;
- case PCI_QLOGIC_ISP10160:
- device_set_desc(dev, "Qlogic ISP 10160 PCI SCSI Adapter");
- break;
- case PCI_QLOGIC_ISP12160:
- if (pci_get_subvendor(dev) == AMI_RAID_SUBVENDOR_ID) {
- return (ENXIO);
- }
- device_set_desc(dev, "Qlogic ISP 12160 PCI SCSI Adapter");
- break;
- case PCI_QLOGIC_ISP2100:
- device_set_desc(dev, "Qlogic ISP 2100 PCI FC-AL Adapter");
- break;
- case PCI_QLOGIC_ISP2200:
- device_set_desc(dev, "Qlogic ISP 2200 PCI FC-AL Adapter");
- break;
- case PCI_QLOGIC_ISP2300:
- device_set_desc(dev, "Qlogic ISP 2300 PCI FC-AL Adapter");
- break;
- case PCI_QLOGIC_ISP2312:
- device_set_desc(dev, "Qlogic ISP 2312 PCI FC-AL Adapter");
- break;
- case PCI_QLOGIC_ISP2322:
- device_set_desc(dev, "Qlogic ISP 2322 PCI FC-AL Adapter");
- break;
- case PCI_QLOGIC_ISP2422:
- device_set_desc(dev, "Qlogic ISP 2422 PCI FC-AL Adapter");
- break;
- case PCI_QLOGIC_ISP2432:
- device_set_desc(dev, "Qlogic ISP 2432 PCI FC-AL Adapter");
- break;
- case PCI_QLOGIC_ISP2532:
- device_set_desc(dev, "Qlogic ISP 2532 PCI FC-AL Adapter");
- break;
- case PCI_QLOGIC_ISP5432:
- device_set_desc(dev, "Qlogic ISP 5432 PCI FC-AL Adapter");
- break;
- case PCI_QLOGIC_ISP6312:
- device_set_desc(dev, "Qlogic ISP 6312 PCI FC-AL Adapter");
- break;
- case PCI_QLOGIC_ISP6322:
- device_set_desc(dev, "Qlogic ISP 6322 PCI FC-AL Adapter");
- break;
- case PCI_QLOGIC_ISP2031:
- device_set_desc(dev, "Qlogic ISP 2031 PCI FC-AL Adapter");
- break;
- case PCI_QLOGIC_ISP8031:
- device_set_desc(dev, "Qlogic ISP 8031 PCI FCoE Adapter");
- break;
- case PCI_QLOGIC_ISP2684:
- device_set_desc(dev, "Qlogic ISP 2684 PCI FC Adapter");
- break;
- case PCI_QLOGIC_ISP2692:
- device_set_desc(dev, "Qlogic ISP 2692 PCI FC Adapter");
- break;
- case PCI_QLOGIC_ISP2714:
- device_set_desc(dev, "Qlogic ISP 2714 PCI FC Adapter");
- break;
- case PCI_QLOGIC_ISP2722:
- device_set_desc(dev, "Qlogic ISP 2722 PCI FC Adapter");
- break;
- default:
+ const struct pci_device_table *ispd;
+
+ ispd = PCI_MATCH(dev, isp_devs);
+ if (ispd == NULL)
return (ENXIO);
- }
+ else if (ispd->device == PCI_PRODUCT_QLOGIC_ISP12160 &&
+ pci_get_subvendor(dev) == AMI_RAID_SUBVENDOR_ID)
+ return (ENXIO);
+ device_set_desc(dev, ispd->descr);
if (isp_announced == 0 && bootverbose) {
printf("Qlogic ISP Driver, FreeBSD Version %d.%d, "
"Core Version %d.%d\n",
Index: sys/dev/iwi/if_iwi.c
===================================================================
--- sys/dev/iwi/if_iwi.c
+++ sys/dev/iwi/if_iwi.c
@@ -123,13 +123,15 @@
const char *name;
};
-static const struct iwi_ident iwi_ident_table[] = {
- { 0x8086, 0x4220, "Intel(R) PRO/Wireless 2200BG" },
- { 0x8086, 0x4221, "Intel(R) PRO/Wireless 2225BG" },
- { 0x8086, 0x4223, "Intel(R) PRO/Wireless 2915ABG" },
- { 0x8086, 0x4224, "Intel(R) PRO/Wireless 2915ABG" },
-
- { 0, 0, NULL }
+struct pci_device_table iwi_devs[] = {
+ {PCI_DEV(0x8086, 0x4220),
+ PCI_DESCR("Intel(R) PRO/Wireless 2200BG")},
+ {PCI_DEV(0x8086, 0x4221),
+ PCI_DESCR("Intel(R) PRO/Wireless 2225BG")},
+ {PCI_DEV(0x8086, 0x4223),
+ PCI_DESCR("Intel(R) PRO/Wireless 2915ABG")},
+ {PCI_DEV(0x8086, 0x4224),
+ PCI_DESCR("Intel(R) PRO/Wireless 2915ABG")}
};
static const uint8_t def_chan_2ghz[] =
@@ -247,6 +249,7 @@
static devclass_t iwi_devclass;
DRIVER_MODULE(iwi, pci, iwi_driver, iwi_devclass, NULL, NULL);
+PCI_PNP_INFO(iwi_devs);
MODULE_VERSION(iwi, 1);
@@ -267,16 +270,13 @@
static int
iwi_probe(device_t dev)
{
- const struct iwi_ident *ident;
+ const struct pci_device_table *iwid;
- for (ident = iwi_ident_table; ident->name != NULL; ident++) {
- if (pci_get_vendor(dev) == ident->vendor &&
- pci_get_device(dev) == ident->device) {
- device_set_desc(dev, ident->name);
- return (BUS_PROBE_DEFAULT);
- }
- }
- return ENXIO;
+ iwid = PCI_MATCH(dev, iwi_devs);
+ if (iwid == NULL)
+ return (ENXIO);
+ device_set_desc(dev, iwid->descr);
+ return (BUS_PROBE_DEFAULT);
}
static int
Index: sys/dev/iwn/if_iwn.c
===================================================================
--- sys/dev/iwn/if_iwn.c
+++ sys/dev/iwn/if_iwn.c
@@ -372,7 +372,8 @@
static devclass_t iwn_devclass;
DRIVER_MODULE(iwn, pci, iwn_driver, iwn_devclass, NULL, NULL);
-
+MODULE_PNP_INFO("U16:vendor;U16:device;D:#", pci, iwn, iwn_ident_table,
+ sizeof(iwn_ident_table[0]), nitems(iwn_ident_table) - 1);
MODULE_VERSION(iwn, 1);
MODULE_DEPEND(iwn, firmware, 1, 1, 1);
Index: sys/dev/ixl/if_ixl.c
===================================================================
--- sys/dev/ixl/if_ixl.c
+++ sys/dev/ixl/if_ixl.c
@@ -150,6 +150,7 @@
devclass_t ixl_devclass;
DRIVER_MODULE(ixl, pci, ixl_driver, ixl_devclass, 0, 0);
+IFLIB_PNP_INFO(pci, ixl, ixl_vendor_info_array);
MODULE_VERSION(ixl, 3);
MODULE_DEPEND(ixl, pci, 1, 1, 1);
Index: sys/dev/ixl/if_ixlv.c
===================================================================
--- sys/dev/ixl/if_ixlv.c
+++ sys/dev/ixl/if_ixlv.c
@@ -149,7 +149,9 @@
devclass_t ixlv_devclass;
DRIVER_MODULE(ixlv, pci, ixlv_driver, ixlv_devclass, 0, 0);
-
+MODULE_PNP_INFO("U32:vendor;U32:device;U32:subvendor;U32:subdevice;U32:revision",
+ pci, ixlv, ixlv_vendor_info_array, sizeof(ixlv_vendor_info_array[0]),
+ nitems(ixlv_vendor_info_array) - 1);
MODULE_DEPEND(ixlv, pci, 1, 1, 1);
MODULE_DEPEND(ixlv, ether, 1, 1, 1);
MODULE_DEPEND(ixlv, iflib, 1, 1, 1);

File Metadata

Mime Type
text/plain
Expires
Mon, Mar 30, 1:17 PM (2 h, 4 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
30539996
Default Alt Text
D16324.id45470.diff (23 KB)

Event Timeline