Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F150119335
D16324.id45470.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
23 KB
Referenced Files
None
Subscribers
None
D16324.id45470.diff
View Options
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
Details
Attached
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)
Attached To
Mode
D16324: Add PNP info to PCI attachment of IICOC, IPMI, ISP, ISCI, IXL, IXLV, IWN, IWI, IDA, IG4 drivers
Attached
Detach File
Event Timeline
Log In to Comment