Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F143395974
D16363.id45593.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
9 KB
Referenced Files
None
Subscribers
None
D16363.id45593.diff
View Options
Index: sys/dev/bktr/bktr_os.c
===================================================================
--- sys/dev/bktr/bktr_os.c
+++ sys/dev/bktr/bktr_os.c
@@ -211,23 +211,17 @@
static int bktr_shutdown( device_t dev );
static void bktr_intr(void *arg) { common_bktr_intr(arg); }
-static struct bktr_dev {
- uint16_t vendorid;
- uint16_t deviceid;
- uint8_t rev;
- const char *description;
-} bktr_devs[] = {
- {PCI_VENDOR_BROOKTREE, PCI_PRODUCT_BROOKTREE_BT848, 0x12,
- "BrookTree 848A"},
- {PCI_VENDOR_BROOKTREE, PCI_PRODUCT_BROOKTREE_BT848, 0,
- "BrookTree 848"},
- {PCI_VENDOR_BROOKTREE, PCI_PRODUCT_BROOKTREE_BT849, 0,
- "BrookTree 849A"},
- {PCI_VENDOR_BROOKTREE, PCI_PRODUCT_BROOKTREE_BT878, 0,
- "BrookTree 878"},
- {PCI_VENDOR_BROOKTREE, PCI_PRODUCT_BROOKTREE_BT879, 0,
- "BrookTree 879"},
- {0, 0, 0, NULL},
+struct pci_device_table bktr_devs[] = {
+ {PCI_DEV(PCI_VENDOR_BROOKTREE, PCI_PRODUCT_BROOKTREE_BT848), PCI_REVID(0x12),
+ PCI_DESCR("BrookTree 848A")},
+ {PCI_DEV(PCI_VENDOR_BROOKTREE, PCI_PRODUCT_BROOKTREE_BT848),
+ PCI_DESCR("BrookTree 848")},
+ {PCI_DEV(PCI_VENDOR_BROOKTREE, PCI_PRODUCT_BROOKTREE_BT849),
+ PCI_DESCR("BrookTree 849A")},
+ {PCI_DEV(PCI_VENDOR_BROOKTREE, PCI_PRODUCT_BROOKTREE_BT878),
+ PCI_DESCR("BrookTree 878")},
+ {PCI_DEV(PCI_VENDOR_BROOKTREE, PCI_PRODUCT_BROOKTREE_BT879),
+ PCI_DESCR("BrookTree 879")}
};
static device_method_t bktr_methods[] = {
@@ -293,8 +287,7 @@
MODULE_DEPEND(bktr, smbus, SMBUS_MINVER, SMBUS_MODVER, SMBUS_MAXVER);
#endif
DRIVER_MODULE(bktr, pci, bktr_driver, bktr_devclass, 0, 0);
-MODULE_PNP_INFO("U16:vendor;U16:device", pci, bktr, bktr_devs,
- sizeof(bktr_devs[0]), nitems(bktr_devs) - 1);
+PCI_PNP_INFO(bktr_devs);
MODULE_DEPEND(bktr, bktr_mem, 1,1,1);
MODULE_VERSION(bktr, 1);
@@ -305,38 +298,13 @@
static int
bktr_probe( device_t dev )
{
- unsigned int type = pci_get_devid(dev);
- unsigned int rev = pci_get_revid(dev);
- const struct bktr_dev *bktd;
- uint16_t vid;
- uint16_t did;
- size_t i;
-
- vid = PCI_VENDOR(type);
- did = PCI_PRODUCT(type);
-
- // XXX merge conflicts. Need to convert to PCI_MATCH instead.
- if (BKTR_PCI_VENDOR(type) == PCI_VENDOR_BROOKTREE)
- {
- switch (BKTR_PCI_PRODUCT(type)) {
- case PCI_PRODUCT_BROOKTREE_BT848:
- if (rev == 0x12)
- device_set_desc(dev, "BrookTree 848A");
- else
- device_set_desc(dev, "BrookTree 848");
- return BUS_PROBE_DEFAULT;
- case PCI_PRODUCT_BROOKTREE_BT849:
- device_set_desc(dev, "BrookTree 849A");
- return BUS_PROBE_DEFAULT;
- case PCI_PRODUCT_BROOKTREE_BT878:
- device_set_desc(dev, "BrookTree 878");
- return BUS_PROBE_DEFAULT;
- case PCI_PRODUCT_BROOKTREE_BT879:
- device_set_desc(dev, "BrookTree 879");
- return BUS_PROBE_DEFAULT;
- }
- }
- return ENXIO;
+ const struct pci_device_table *bktd;
+
+ bktd = PCI_MATCH(dev, bktr_devs);
+ if (bktd == NULL)
+ return (ENXIO);
+ device_set_desc(dev, bktd->descr);
+ return (BUS_PROBE_DEFAULT);
}
Index: sys/dev/dpt/dpt_pci.c
===================================================================
--- sys/dev/dpt/dpt_pci.c
+++ sys/dev/dpt/dpt_pci.c
@@ -64,7 +64,7 @@
struct pci_device_table dpt_devs[] = {
{PCI_DEV(DPT_VENDOR_ID, DPT_DEVICE_ID),
- PCI_DESCR("DPT Caching SCSI RAID Controller")},
+ PCI_DESCR("DPT Caching SCSI RAID Controller")}
};
static int
@@ -75,7 +75,7 @@
dpd = PCI_MATCH(dev, dpt_devs);
if (dpd == NULL)
return (ENXIO);
- device_set_desc(dev, dpd->description);
+ device_set_desc(dev, dpd->descr);
return (BUS_PROBE_DEFAULT);
}
Index: sys/dev/le/if_le_pci.c
===================================================================
--- sys/dev/le/if_le_pci.c
+++ sys/dev/le/if_le_pci.c
@@ -122,6 +122,13 @@
static device_resume_t le_pci_resume;
static device_suspend_t le_pci_suspend;
+struct pci_device_table le_devs[] = {
+ {PCI_DEV(AMD_VENDOR, AMD_PCNET_PCI),
+ PCI_DESCR("AMD PCnet-PCI")},
+ {PCI_DEV(AMD_VENDOR, AMD_PCNET_HOME),
+ PCI_DESCR("AMD PCnet-Home")}
+};
+
static device_method_t le_pci_methods[] = {
/* Device interface */
DEVMETHOD(device_probe, le_pci_probe),
@@ -137,6 +144,7 @@
DEFINE_CLASS_0(le, le_pci_driver, le_pci_methods, sizeof(struct le_pci_softc));
DRIVER_MODULE(le, pci, le_pci_driver, le_devclass, 0, 0);
+PCI_PNP_INFO(le_devs);
MODULE_DEPEND(le, ether, 1, 1, 1);
static const int le_home_supmedia[] = {
@@ -276,22 +284,13 @@
static int
le_pci_probe(device_t dev)
{
+ const struct pci_device_table *led;
- if (pci_get_vendor(dev) != AMD_VENDOR)
- return (ENXIO);
-
- switch (pci_get_device(dev)) {
- case AMD_PCNET_PCI:
- device_set_desc(dev, "AMD PCnet-PCI");
- /* Let pcn(4) win. */
- return (BUS_PROBE_LOW_PRIORITY);
- case AMD_PCNET_HOME:
- device_set_desc(dev, "AMD PCnet-Home");
- /* Let pcn(4) win. */
- return (BUS_PROBE_LOW_PRIORITY);
- default:
+ led = PCI_MATCH(dev, le_devs);
+ if (led == NULL)
return (ENXIO);
- }
+ device_set_desc(dev, led->descr);
+ return (BUS_PROBE_LOW_PRIORITY);
}
static int
Index: sys/dev/liquidio/lio_main.c
===================================================================
--- sys/dev/liquidio/lio_main.c
+++ sys/dev/liquidio/lio_main.c
@@ -145,28 +145,36 @@
uint8_t index;
};
-static struct lio_vendor_info lio_pci_tbl[] = {
+struct pci_device_table lio_pci_tbl[] = {
/* CN2350 10G */
- {PCI_VENDOR_ID_CAVIUM, LIO_CN23XX_PF_VID, LIO_CN2350_10G_SUBDEVICE,
- 0x02, 0},
+ {PCI_DEV(PCI_VENDOR_ID_CAVIUM, LIO_CN23XX_PF_VID),
+ .match_flag_subdevice = 1, .subdevice = (LIO_CN2350_10G_SUBDEVICE),
+ PCI_REVID(0x02), .unused (0),
+ PCI_DESCR("LiquidIO 2350 10GbE Server Adapter")},
/* CN2350 10G */
- {PCI_VENDOR_ID_CAVIUM, LIO_CN23XX_PF_VID, LIO_CN2350_10G_SUBDEVICE1,
- 0x02, 0},
+ {PCI_DEV(PCI_VENDOR_ID_CAVIUM, LIO_CN23XX_PF_VID),
+ .match_flag_subdevice = 1, .subdevice = (LIO_CN2350_10G_SUBDEVICE1),
+ PCI_REVID(0x02), .unused(0),
+ PCI_DESCR("LiquidIO 2350 10GbE Server Adapter")},
/* CN2360 10G */
- {PCI_VENDOR_ID_CAVIUM, LIO_CN23XX_PF_VID, LIO_CN2360_10G_SUBDEVICE,
- 0x02, 1},
+ {PCI_DEV(PCI_VENDOR_ID_CAVIUM, LIO_CN23XX_PF_VID),
+ .match_flag_subdevice = 1, .subdevice = (LIO_CN2360_10G_SUBDEVICE),
+ PCI_REVID(0x02), .unused(1),
+ PCI_DESCR("LiquidIO 2360 10GbE Server Adapter")},
/* CN2350 25G */
- {PCI_VENDOR_ID_CAVIUM, LIO_CN23XX_PF_VID, LIO_CN2350_25G_SUBDEVICE,
- 0x02, 2},
+ {PCI_DEV(PCI_VENDOR_ID_CAVIUM, LIO_CN23XX_PF_VID),
+ .match_flag_subdevice = 1, .subdevice = (LIO_CN2350_25G_SUBDEVICE),
+ PCI_REVID(0x02), .unused(2),
+ PCI_DESCR("LiquidIO 2350 25GbE Server Adapter")},
/* CN2360 25G */
- {PCI_VENDOR_ID_CAVIUM, LIO_CN23XX_PF_VID, LIO_CN2360_25G_SUBDEVICE,
- 0x02, 3},
-
- {0, 0, 0, 0, 0}
+ {PCI_DEV(PCI_VENDOR_ID_CAVIUM, LIO_CN23XX_PF_VID),
+ .match_flag_subdevice = 1, .subdevice = (LIO_CN2360_25G_SUBDEVICE),
+ PCI_REVID(0x02), .unused(3),
+ PCI_DESCR("LiquidIO 2360 25GbE Server Adapter")}
};
static char *lio_strings[] = {
@@ -195,38 +203,16 @@
static int
lio_probe(device_t dev)
{
- struct lio_vendor_info *tbl;
-
- uint16_t vendor_id;
- uint16_t device_id;
- uint16_t subdevice_id;
- uint8_t revision_id;
+ const struct pci_device_table *liod;
char device_ver[256];
- vendor_id = pci_get_vendor(dev);
- if (vendor_id != PCI_VENDOR_ID_CAVIUM)
+ liod = PCI_MATCH(dev, lio_pci_tbl);
+ if (liod == NULL)
return (ENXIO);
-
- device_id = pci_get_device(dev);
- subdevice_id = pci_get_subdevice(dev);
- revision_id = pci_get_revid(dev);
-
- tbl = lio_pci_tbl;
- while (tbl->vendor_id) {
- if ((vendor_id == tbl->vendor_id) &&
- (device_id == tbl->device_id) &&
- (subdevice_id == tbl->subdevice_id) &&
- (revision_id == tbl->revision_id)) {
- sprintf(device_ver, "%s, Version - %s",
- lio_strings[tbl->index], LIO_VERSION);
- device_set_desc_copy(dev, device_ver);
- return (BUS_PROBE_DEFAULT);
- }
-
- tbl++;
- }
-
- return (ENXIO);
+ sprintf(device_ver, "%s, Version - %s",
+ lio_strings[liod->unused], LIO_VERSION);
+ device_set_desc_copy(dev, device_ver);
+ return (BUS_PROBE_DEFAULT);
}
static int
@@ -414,6 +400,7 @@
devclass_t lio_devclass;
DRIVER_MODULE(lio, pci, lio_driver, lio_devclass, lio_event, 0);
+PCI_PNP_INFO(lio_pci_tbl);
MODULE_DEPEND(lio, pci, 1, 1, 1);
MODULE_DEPEND(lio, ether, 1, 1, 1);
Index: sys/dev/mpr/mpr_pci.c
===================================================================
--- sys/dev/mpr/mpr_pci.c
+++ sys/dev/mpr/mpr_pci.c
@@ -88,9 +88,6 @@
sizeof(struct mpr_softc)
};
-static devclass_t mpr_devclass;
-DRIVER_MODULE(mpr, pci, mpr_pci_driver, mpr_devclass, 0, 0);
-MODULE_DEPEND(mpr, cam, 1, 1, 1);
struct mpr_ident {
uint16_t vendor;
@@ -154,6 +151,14 @@
{ 0, 0, 0, 0, 0, NULL }
};
+
+static devclass_t mpr_devclass;
+DRIVER_MODULE(mpr, pci, mpr_pci_driver, mpr_devclass, 0, 0);
+MODULE_PNP_INFO("U16:vendor;U16:device;U16:subvendor;U16:subdevice;D:#", pci, mpr,
+ mpr_identifiers, sizeof(mpr_identifiers[0]), nitems(mpr_identifiers) - 1);
+
+MODULE_DEPEND(mpr, cam, 1, 1, 1);
+
static struct mpr_ident *
mpr_find_ident(device_t dev)
{
Index: sys/dev/mvs/mvs_pci.c
===================================================================
--- sys/dev/mvs/mvs_pci.c
+++ sys/dev/mvs/mvs_pci.c
@@ -521,6 +521,8 @@
sizeof(struct mvs_controller)
};
DRIVER_MODULE(mvs, pci, mvs_driver, mvs_devclass, 0, 0);
+MODULE_PNP_INFO("W32:vendor/device", pci, mvs, mvs_ids,
+ sizeof(mvs_ids[0]), nitems(mvs_ids) - 1);
MODULE_VERSION(mvs, 1);
MODULE_DEPEND(mvs, cam, 1, 1, 1);
Index: sys/dev/my/if_my.c
===================================================================
--- sys/dev/my/if_my.c
+++ sys/dev/my/if_my.c
@@ -163,6 +163,8 @@
static devclass_t my_devclass;
DRIVER_MODULE(my, pci, my_driver, my_devclass, 0, 0);
+MODULE_PNP_INFO("U16:vendor;U16:device;D:#", pci, my, my_devs,
+ sizeof(my_devs[0]), nitems(my_devs) - 1);
MODULE_DEPEND(my, pci, 1, 1, 1);
MODULE_DEPEND(my, ether, 1, 1, 1);
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, Jan 30, 10:24 PM (15 h, 13 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28104833
Default Alt Text
D16363.id45593.diff (9 KB)
Attached To
Mode
D16363: Add PNP info to PCI attachments of LE, LIO, MPR, MVS, MY drivers
Attached
Detach File
Event Timeline
Log In to Comment