Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F152217093
D16253.id45474.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
37 KB
Referenced Files
None
Subscribers
None
D16253.id45474.diff
View Options
Index: sys/dev/arcmsr/arcmsr.c
===================================================================
--- sys/dev/arcmsr/arcmsr.c
+++ sys/dev/arcmsr/arcmsr.c
@@ -213,93 +213,99 @@
static d_close_t arcmsr_close;
static d_ioctl_t arcmsr_ioctl;
-static struct arcmsr_dev {
- uint16_t vendorid;
- uint32_t deviceid;
- uint16_t subdeviceid;
- char *description;
-} arcmsr_devs[] = {
- {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1110, 0,
- "Areca SATA 3G Host Adapter RAID Controller"},
- {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1200, 0,
- "Areca SATA 3G Host Adapter RAID Controller"},
- {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1201, 0,
- "Areca SATA 3G Host Adapter RAID Controller"},
- {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1210, 0,
- "Areca SATA 3G Host Adapter RAID Controller"},
- {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1120, 0,
- "Areca SATA 3G Host Adapter RAID Controller\n(RAID6 capable)"},
- {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1130, 0,
- "Areca SATA 3G Host Adapter RAID Controller\n(RAID6 capable)"},
- {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1160, 0,
- "Areca SATA 3G Host Adapter RAID Controller\n(RAID6 capable)"},
- {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1170, 0,
- "Areca SATA 3G Host Adapter RAID Controller\n(RAID6 capable)"},
- {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1220, 0,
- "Areca SATA 3G Host Adapter RAID Controller\n(RAID6 capable)"},
- {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1230, 0,
- "Areca SATA 3G Host Adapter RAID Controller\n(RAID6 capable)"},
- {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1231, 0,
- "Areca SATA 3G Host Adapter RAID Controller\n(RAID6 capable)"},
- {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1260, 0,
- "Areca SATA 3G Host Adapter RAID Controller\n(RAID6 capable)"},
- {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1261, 0,
- "Areca SATA 3G Host Adapter RAID Controller\n(RAID6 capable)"},
- {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1270, 0,
- "Areca SATA 3G Host Adapter RAID Controller\n(RAID6 capable)"},
- {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1280, 0,
- "Areca SATA 3G Host Adapter RAID Controller\n(RAID6 capable)"},
- {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1212, 0,
- "Areca SAS 3G Host Adapter RAID Controller\n(RAID6 capable)"},
- {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1222, 0,
- "Areca SAS 3G Host Adapter RAID Controller\n(RAID6 capable)"},
- {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1380, 0,
- "Areca SAS 3G Host Adapter RAID Controller\n(RAID6 capable)"},
- {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1381, 0,
- "Areca SAS 3G Host Adapter RAID Controller\n(RAID6 capable)"},
- {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1680, 0,
- "Areca SAS 3G Host Adapter RAID Controller\n(RAID6 capable)"},
- {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1681, 0,
- "Areca SAS 3G Host Adapter RAID Controller\n(RAID6 capable)"},
- {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1880, 0,
- "Areca SAS 6G Host Adapter RAID Controller\n(RAID6 capable)"},
- {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1882, 0,
- "Areca SAS 6G Host Adapter RAID Controller\n(RAID6 capable)"},
- {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1213, 0,
- "Areca SAS 6G Host Adapter RAID Controller\n(RAID6 capable)"},
- {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1223, 0,
- "Areca SAS 6G Host Adapter RAID Controller\n(RAID6 capable)"},
- {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1880, ARECA_SUB_DEV_ID_1883,
- "Areca SAS 12G Host Adapter RAID Controller\n(RAID6 capable)"},
- {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1882, ARECA_SUB_DEV_ID_1883,
- "Areca SAS 12G Host Adapter RAID Controller\n(RAID6 capable)"},
- {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1213, ARECA_SUB_DEV_ID_1883,
- "Areca SAS 12G Host Adapter RAID Controller\n(RAID6 capable)"},
- {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1223, ARECA_SUB_DEV_ID_1883,
- "Areca SAS 12G Host Adapter RAID Controller\n(RAID6 capable)"},
- {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1880, ARECA_SUB_DEV_ID_1216,
- "Areca SAS 12G Host Adapter RAID Controller\n(RAID6 capable)"},
- {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1882, ARECA_SUB_DEV_ID_1216,
- "Areca SAS 12G Host Adapter RAID Controller\n(RAID6 capable)"},
- {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1213, ARECA_SUB_DEV_ID_1216,
- "Areca SAS 12G Host Adapter RAID Controller\n(RAID6 capable)"},
- {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1223, ARECA_SUB_DEV_ID_1216,
- "Areca SAS 12G Host Adapter RAID Controller\n(RAID6 capable)"},
- {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1880, ARECA_SUB_DEV_ID_1226,
- "Areca SAS 12G Host Adapter RAID Controller\n(RAID6 capable)"},
- {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1882, ARECA_SUB_DEV_ID_1226,
- "Areca SAS 12G Host Adapter RAID Controller\n(RAID6 capable)"},
- {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1213, ARECA_SUB_DEV_ID_1226,
- "Areca SAS 12G Host Adapter RAID Controller\n(RAID6 capable)"},
- {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1223, ARECA_SUB_DEV_ID_1226,
- "Areca SAS 12G Host Adapter RAID Controller\n(RAID6 capable)"},
- {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1884, 0,
- "Areca SAS 12G Host Adapter RAID Controller\n(RAID6 capable)"},
- {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1214, 0,
- "Areca SATA 6G Host Adapter RAID Controller\n(RAID6 capable)"},
- {PCI_VENDOR_ID_ARECA, PCIDevVenIDARC1203, 0,
- "Areca SATA 6G Host Adapter RAID Controller\n(RAID6 capable)"},
- {0, 0, 0, 0},
+struct pci_device_table arcmsr_devs[] = {
+ {PCI_DEV(PCI_VENDOR_ID_ARECA, PCI_DEVICE_ID_ARECA_1110),
+ PCI_DESCR("Areca SATA 3G Host Adapter RAID Controller")},
+ {PCI_DEV(PCI_VENDOR_ID_ARECA, PCI_DEVICE_ID_ARECA_1200),
+ PCI_DESCR("Areca SATA 3G Host Adapter RAID Controller")},
+ {PCI_DEV(PCI_VENDOR_ID_ARECA, PCI_DEVICE_ID_ARECA_1201),
+ PCI_DESCR("Areca SATA 3G Host Adapter RAID Controller")},
+ {PCI_DEV(PCI_VENDOR_ID_ARECA, PCI_DEVICE_ID_ARECA_1210),
+ PCI_DESCR("Areca SATA 3G Host Adapter RAID Controller")},
+ {PCI_DEV(PCI_VENDOR_ID_ARECA, PCI_DEVICE_ID_ARECA_1120),
+ PCI_DESCR("Areca SATA 3G Host Adapter RAID Controller\n(RAID6 capable)")},
+ {PCI_DEV(PCI_VENDOR_ID_ARECA, PCI_DEVICE_ID_ARECA_1130),
+ PCI_DESCR("Areca SATA 3G Host Adapter RAID Controller\n(RAID6 capable)")},
+ {PCI_DEV(PCI_VENDOR_ID_ARECA, PCI_DEVICE_ID_ARECA_1160),
+ PCI_DESCR("Areca SATA 3G Host Adapter RAID Controller\n(RAID6 capable)")},
+ {PCI_DEV(PCI_VENDOR_ID_ARECA, PCI_DEVICE_ID_ARECA_1170),
+ PCI_DESCR("Areca SATA 3G Host Adapter RAID Controller\n(RAID6 capable)")},
+ {PCI_DEV(PCI_VENDOR_ID_ARECA, PCI_DEVICE_ID_ARECA_1220),
+ PCI_DESCR("Areca SATA 3G Host Adapter RAID Controller\n(RAID6 capable)")},
+ {PCI_DEV(PCI_VENDOR_ID_ARECA, PCI_DEVICE_ID_ARECA_1230),
+ PCI_DESCR("Areca SATA 3G Host Adapter RAID Controller\n(RAID6 capable)")},
+ {PCI_DEV(PCI_VENDOR_ID_ARECA, PCI_DEVICE_ID_ARECA_1231),
+ PCI_DESCR("Areca SATA 3G Host Adapter RAID Controller\n(RAID6 capable)")},
+ {PCI_DEV(PCI_VENDOR_ID_ARECA, PCI_DEVICE_ID_ARECA_1260),
+ PCI_DESCR("Areca SATA 3G Host Adapter RAID Controller\n(RAID6 capable)")},
+ {PCI_DEV(PCI_VENDOR_ID_ARECA, PCI_DEVICE_ID_ARECA_1261),
+ PCI_DESCR("Areca SATA 3G Host Adapter RAID Controller\n(RAID6 capable)")},
+ {PCI_DEV(PCI_VENDOR_ID_ARECA, PCI_DEVICE_ID_ARECA_1270),
+ PCI_DESCR("Areca SATA 3G Host Adapter RAID Controller\n(RAID6 capable)")},
+ {PCI_DEV(PCI_VENDOR_ID_ARECA, PCI_DEVICE_ID_ARECA_1280),
+ PCI_DESCR("Areca SATA 3G Host Adapter RAID Controller\n(RAID6 capable)")},
+ {PCI_DEV(PCI_VENDOR_ID_ARECA, PCI_DEVICE_ID_ARECA_1212),
+ PCI_DESCR("Areca SAS 3G Host Adapter RAID Controller\n(RAID6 capable)")},
+ {PCI_DEV(PCI_VENDOR_ID_ARECA, PCI_DEVICE_ID_ARECA_1222),
+ PCI_DESCR("Areca SAS 3G Host Adapter RAID Controller\n(RAID6 capable)")},
+ {PCI_DEV(PCI_VENDOR_ID_ARECA, PCI_DEVICE_ID_ARECA_1380),
+ PCI_DESCR("Areca SAS 3G Host Adapter RAID Controller\n(RAID6 capable)")},
+ {PCI_DEV(PCI_VENDOR_ID_ARECA, PCI_DEVICE_ID_ARECA_1381),
+ PCI_DESCR("Areca SAS 3G Host Adapter RAID Controller\n(RAID6 capable)")},
+ {PCI_DEV(PCI_VENDOR_ID_ARECA, PCI_DEVICE_ID_ARECA_1680),
+ PCI_DESCR("Areca SAS 3G Host Adapter RAID Controller\n(RAID6 capable)")},
+ {PCI_DEV(PCI_VENDOR_ID_ARECA, PCI_DEVICE_ID_ARECA_1681),
+ PCI_DESCR("Areca SAS 3G Host Adapter RAID Controller\n(RAID6 capable)")},
+ {PCI_DEV(PCI_VENDOR_ID_ARECA, PCI_DEVICE_ID_ARECA_1880),
+ PCI_DESCR("Areca SAS 6G Host Adapter RAID Controller\n(RAID6 capable)")},
+ {PCI_DEV(PCI_VENDOR_ID_ARECA, PCI_DEVICE_ID_ARECA_1882),
+ PCI_DESCR("Areca SAS 6G Host Adapter RAID Controller\n(RAID6 capable)")},
+ {PCI_DEV(PCI_VENDOR_ID_ARECA, PCI_DEVICE_ID_ARECA_1213),
+ PCI_DESCR("Areca SAS 6G Host Adapter RAID Controller\n(RAID6 capable)")},
+ {PCI_DEV(PCI_VENDOR_ID_ARECA, PCI_DEVICE_ID_ARECA_1223),
+ PCI_DESCR("Areca SAS 6G Host Adapter RAID Controller\n(RAID6 capable)")},
+ {PCI_DEV(PCI_VENDOR_ID_ARECA, PCI_DEVICE_ID_ARECA_1880),
+ .match_flag_subdevice = 1, .subdevice = (ARECA_SUB_DEV_ID_1883),
+ PCI_DESCR("Areca SAS 12G Host Adapter RAID Controller\n(RAID6 capable)")},
+ {PCI_DEV(PCI_VENDOR_ID_ARECA, PCI_DEVICE_ID_ARECA_1882),
+ .match_flag_subdevice = 1, .subdevice = (ARECA_SUB_DEV_ID_1883),
+ PCI_DESCR("Areca SAS 12G Host Adapter RAID Controller\n(RAID6 capable)")},
+ {PCI_DEV(PCI_VENDOR_ID_ARECA, PCI_DEVICE_ID_ARECA_1213),
+ .match_flag_subdevice = 1, .subdevice = (ARECA_SUB_DEV_ID_1883),
+ PCI_DESCR("Areca SAS 12G Host Adapter RAID Controller\n(RAID6 capable)")},
+ {PCI_DEV(PCI_VENDOR_ID_ARECA, PCI_DEVICE_ID_ARECA_1223),
+ .match_flag_subdevice = 1, .subdevice = (ARECA_SUB_DEV_ID_1883),
+ PCI_DESCR("Areca SAS 12G Host Adapter RAID Controller\n(RAID6 capable)")},
+ {PCI_DEV(PCI_VENDOR_ID_ARECA, PCI_DEVICE_ID_ARECA_1880),
+ .match_flag_subdevice = 1, .subdevice = (ARECA_SUB_DEV_ID_1216),
+ PCI_DESCR("Areca SAS 12G Host Adapter RAID Controller\n(RAID6 capable)")},
+ {PCI_DEV(PCI_VENDOR_ID_ARECA, PCI_DEVICE_ID_ARECA_1882),
+ .match_flag_subdevice = 1, .subdevice = (ARECA_SUB_DEV_ID_1216),
+ PCI_DESCR("Areca SAS 12G Host Adapter RAID Controller\n(RAID6 capable)")},
+ {PCI_DEV(PCI_VENDOR_ID_ARECA, PCI_DEVICE_ID_ARECA_1213),
+ .match_flag_subdevice = 1, .subdevice = (ARECA_SUB_DEV_ID_1216),
+ PCI_DESCR("Areca SAS 12G Host Adapter RAID Controller\n(RAID6 capable)")},
+ {PCI_DEV(PCI_VENDOR_ID_ARECA, PCI_DEVICE_ID_ARECA_1223),
+ .match_flag_subdevice = 1, .subdevice = (ARECA_SUB_DEV_ID_1216),
+ PCI_DESCR("Areca SAS 12G Host Adapter RAID Controller\n(RAID6 capable)")},
+ {PCI_DEV(PCI_VENDOR_ID_ARECA, PCI_DEVICE_ID_ARECA_1880),
+ .match_flag_subdevice = 1, .subdevice = (ARECA_SUB_DEV_ID_1226),
+ PCI_DESCR("Areca SAS 12G Host Adapter RAID Controller\n(RAID6 capable)")},
+ {PCI_DEV(PCI_VENDOR_ID_ARECA, PCI_DEVICE_ID_ARECA_1882),
+ .match_flag_subdevice = 1, .subdevice = (ARECA_SUB_DEV_ID_1226),
+ PCI_DESCR("Areca SAS 12G Host Adapter RAID Controller\n(RAID6 capable)")},
+ {PCI_DEV(PCI_VENDOR_ID_ARECA, PCI_DEVICE_ID_ARECA_1213),
+ .match_flag_subdevice = 1, .subdevice = (ARECA_SUB_DEV_ID_1226),
+ PCI_DESCR("Areca SAS 12G Host Adapter RAID Controller\n(RAID6 capable)")},
+ {PCI_DEV(PCI_VENDOR_ID_ARECA, PCI_DEVICE_ID_ARECA_1223),
+ .match_flag_subdevice = 1, .subdevice = (ARECA_SUB_DEV_ID_1226),
+ PCI_DESCR("Areca SAS 12G Host Adapter RAID Controller\n(RAID6 capable)")},
+ {PCI_DEV(PCI_VENDOR_ID_ARECA, PCI_DEVICE_ID_ARECA_1884),
+ PCI_DESCR("Areca SAS 12G Host Adapter RAID Controller\n(RAID6 capable)")},
+ {PCI_DEV(PCI_VENDOR_ID_ARECA, PCI_DEVICE_ID_ARECA_1214),
+ PCI_DESCR("Areca SATA 6G Host Adapter RAID Controller\n(RAID6 capable)")},
+ {PCI_DEV(PCI_VENDOR_ID_ARECA, PCI_DEVICE_ID_ARECA_1203),
+ PCI_DESCR("Areca SATA 6G Host Adapter RAID Controller\n(RAID6 capable)")},
};
@@ -324,8 +330,7 @@
static devclass_t arcmsr_devclass;
DRIVER_MODULE(arcmsr, pci, arcmsr_driver, arcmsr_devclass, 0, 0);
-MODULE_PNP_INFO("U16:vendor;W32:vendor/device;U16:subdevice;D:#", pci, arcmsr,
- arcmsr_devs, sizeof(arcmsr_devs[0]), nitems(arcmsr_devs) - 1);
+PCI_PNP_INFO(arcmsr_devs);
MODULE_DEPEND(arcmsr, pci, 1, 1, 1);
MODULE_DEPEND(arcmsr, cam, 1, 1, 1);
#ifndef BUS_DMA_COHERENT
@@ -5000,28 +5005,15 @@
*/
static int arcmsr_probe(device_t dev)
{
- const struct arcmsr_dev *arcd;
- u_int32_t did;
- size_t i;
- u_int16_t sub_device_id;
+ const struct pci_device_table *arcd;
char buf[256];
- if (pci_get_vendor(dev) != PCI_VENDOR_ID_ARECA) {
+ arcd = PCI_MATCH(dev, arcmsr_devs);
+ if (arcd == NULL)
return (ENXIO);
- }
- did = pci_get_devid(dev);
- sub_device_id = pci_read_config(dev, PCIR_SUBDEV_0, 2);
- for (i = 0; i < nitems(arcmsr_devs); i++) {
- arcd = &arcmsr_devs[i];
- if ((arcd->deviceid == did) &&
- ((arcd->subdeviceid == sub_device_id)
- || (arcd->subdeviceid == 0))) {
- sprintf(buf, "%s\n%s\n", arcd->description, ARCMSR_DRIVER_VERSION);
- device_set_desc_copy(dev, buf);
- return (BUS_PROBE_DEFAULT);
- }
- }
- return(ENXIO);
+ sprintf(buf, "%s\n%s\n", arcd->descr, ARCMSR_DRIVER_VERSION);
+ device_set_desc_copy(dev, buf);
+ return (BUS_PROBE_DEFAULT);
}
/*
************************************************************************
Index: sys/dev/bfe/if_bfe.c
===================================================================
--- sys/dev/bfe/if_bfe.c
+++ sys/dev/bfe/if_bfe.c
@@ -71,12 +71,11 @@
#define BFE_DEVDESC_MAX 64 /* Maximum device description length */
-static struct bfe_type bfe_devs[] = {
- { BCOM_VENDORID, BCOM_DEVICEID_BCM4401,
- "Broadcom BCM4401 Fast Ethernet" },
- { BCOM_VENDORID, BCOM_DEVICEID_BCM4401B0,
- "Broadcom BCM4401-B0 Fast Ethernet" },
- { 0, 0, NULL }
+struct pci_device_table bfe_devs[] = {
+ {PCI_DEV(BCOM_VENDORID, BCOM_DEVICEID_BCM4401),
+ PCI_DESCR("Broadcom BCM4401 Fast Ethernet")},
+ {PCI_DEV(BCOM_VENDORID, BCOM_DEVICEID_BCM4401B0),
+ PCI_DESCR("Broadcom BCM4401-B0 Fast Ethernet")}
};
static int bfe_probe (device_t);
@@ -157,8 +156,7 @@
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);
+PCI_PNP_INFO(bfe_devs);
DRIVER_MODULE(miibus, bfe, miibus_driver, miibus_devclass, 0, 0);
/*
@@ -167,20 +165,13 @@
static int
bfe_probe(device_t dev)
{
- struct bfe_type *t;
+ const struct pci_device_table *bfed;
- t = bfe_devs;
-
- while (t->bfe_name != NULL) {
- if (pci_get_vendor(dev) == t->bfe_vid &&
- pci_get_device(dev) == t->bfe_did) {
- device_set_desc(dev, t->bfe_name);
- return (BUS_PROBE_DEFAULT);
- }
- t++;
- }
-
- return (ENXIO);
+ bfed = PCI_MATCH(dev, bfe_devs);
+ if (bfed == NULL)
+ return (ENXIO);
+ device_set_desc(dev, bfed->descr);
+ return (BUS_PROBE_DEFAULT);
}
struct bfe_dmamap_arg {
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_REVID(0),
+ PCI_DESCR("BrookTree 848")},
+ {PCI_DEV(PCI_VENDOR_BROOKTREE, PCI_PRODUCT_BROOKTREE_BT849), PCI_REVID(0),
+ PCI_DESCR("BrookTree 849A")},
+ {PCI_DEV(PCI_VENDOR_BROOKTREE, PCI_PRODUCT_BROOKTREE_BT878), PCI_REVID(0),
+ PCI_DESCR("BrookTree 878")},
+ {PCI_DEV(PCI_VENDOR_BROOKTREE, PCI_PRODUCT_BROOKTREE_BT879), PCI_REVID(0),
+ 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/buslogic/bt_pci.c
===================================================================
--- sys/dev/buslogic/bt_pci.c
+++ sys/dev/buslogic/bt_pci.c
@@ -56,16 +56,11 @@
#define PCI_DEVICE_ID_BUSLOGIC_MULTIMASTER_NC 0x0140104Bul
#define PCI_DEVICE_ID_BUSLOGIC_FLASHPOINT 0x8130104Bul
-static struct bt_dev {
- uint16_t vendorid;
- uint32_t deviceid;
- const char *description;
-} bt_devs[] = {
- {0x104B, PCI_DEVICE_ID_BUSLOGIC_MULTIMASTER,
- "Buslogic Multi-Master SCSI Host Adapter"},
- {0x104B, PCI_DEVICE_ID_BUSLOGIC_MULTIMASTER_NC,
- "Buslogic Multi-Master SCSI Host Adapter"},
- {0, 0, 0},
+struct pci_device_table bt_devs[] = {
+ {PCI_DEV(0x104B, 0x1040),
+ PCI_DESCR("Buslogic Multi-Master SCSI Host Adapter")},
+ {PCI_DEV(0x104B, 0x0140),
+ PCI_DESCR("Buslogic Multi-Master SCSI Host Adapter")}
};
static int
@@ -118,53 +113,47 @@
static int
bt_pci_probe(device_t dev)
{
- const struct bt_dev *btd;
- uint32_t did;
- size_t i;
-
- did = pci_get_devid(dev);
- for (i = 0; i < nitems(bt_devs) - 1; i++) {
- btd = &bt_devs[i];
- if (btd->deviceid == did) {
- struct bt_softc *bt = device_get_softc(dev);
- pci_info_data_t pci_info;
- int error;
-
- error = bt_pci_alloc_resources(dev);
- if (error)
- return (error);
-
- /*
- * Determine if an ISA compatible I/O port has been
- * enabled. If so, record the port so it will not
- * be probed by our ISA probe. If the PCI I/O port
- * was not set to the compatibility port, disable it.
- */
- error = bt_cmd(bt, BOP_INQUIRE_PCI_INFO,
- /*param*/NULL, /*paramlen*/0,
- (u_int8_t*)&pci_info, sizeof(pci_info),
- DEFAULT_CMD_TIMEOUT);
- if (error == 0
- && pci_info.io_port < BIO_DISABLED) {
- bt_mark_probed_bio(pci_info.io_port);
- if (rman_get_start(bt->port) !=
- bt_iop_from_bio(pci_info.io_port)) {
- u_int8_t new_addr;
-
- new_addr = BIO_DISABLED;
- bt_cmd(bt, BOP_MODIFY_IO_ADDR,
- /*param*/&new_addr,
- /*paramlen*/1, /*reply_buf*/NULL,
- /*reply_len*/0,
- DEFAULT_CMD_TIMEOUT);
- }
- }
- bt_pci_release_resources(dev);
- device_set_desc(dev, btd->description);
- return (BUS_PROBE_DEFAULT);
+ const struct pci_device_table *btd;
+
+ btd = PCI_MATCH(dev, bt_devs);
+ if (btd == NULL)
+ return (ENXIO);
+ struct bt_softc *bt = device_get_softc(dev);
+ pci_info_data_t pci_info;
+ int error;
+
+ error = bt_pci_alloc_resources(dev);
+ if (error)
+ return (error);
+
+ /*
+ * Determine if an ISA compatible I/O port has been
+ * enabled. If so, record the port so it will not
+ * be probed by our ISA probe. If the PCI I/O port
+ * was not set to the compatibility port, disable it.
+ */
+ error = bt_cmd(bt, BOP_INQUIRE_PCI_INFO,
+ /*param*/NULL, /*paramlen*/0,
+ (u_int8_t*)&pci_info, sizeof(pci_info),
+ DEFAULT_CMD_TIMEOUT);
+ if (error == 0
+ && pci_info.io_port < BIO_DISABLED) {
+ bt_mark_probed_bio(pci_info.io_port);
+ if (rman_get_start(bt->port) !=
+ bt_iop_from_bio(pci_info.io_port)) {
+ u_int8_t new_addr;
+
+ new_addr = BIO_DISABLED;
+ bt_cmd(bt, BOP_MODIFY_IO_ADDR,
+ /*param*/&new_addr,
+ /*paramlen*/1, /*reply_buf*/NULL,
+ /*reply_len*/0,
+ DEFAULT_CMD_TIMEOUT);
}
}
- return (ENXIO);
+ bt_pci_release_resources(dev);
+ device_set_desc(dev, btd->descr);
+ return (BUS_PROBE_DEFAULT);
}
static int
@@ -231,6 +220,5 @@
static devclass_t bt_devclass;
DRIVER_MODULE(bt, pci, bt_pci_driver, bt_devclass, 0, 0);
-MODULE_PNP_INFO("U16:vendor;W32:vendor/device;D:#", pci, bt, bt_devs,
- sizeof(bt_devs[0]), nitems(bt_devs) - 1);
+PCI_PNP_INFO(bt_devs);
MODULE_DEPEND(bt, pci, 1, 1, 1);
Index: sys/dev/ce/if_ce.c
===================================================================
--- sys/dev/ce/if_ce.c
+++ sys/dev/ce/if_ce.c
@@ -322,9 +322,9 @@
ced = PCI_MATCH(dev, ce_devs);
if (ced == NULL)
- return ENXIO;
- device_set_desc(dev, ced->description);
- return BUS_PROBE_DEFAULT;
+ return (ENXIO);
+ device_set_desc(dev, ced->descr);
+ return (BUS_PROBE_DEFAULT);
}
static void ce_timeout (void *arg)
@@ -2636,11 +2636,9 @@
#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));
+PCI_PNP_INFO(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));
+PCI_PNP_INFO(ce_devs);
#endif
#endif /* NPCI */
Index: sys/dev/cp/if_cp.c
===================================================================
--- sys/dev/cp/if_cp.c
+++ sys/dev/cp/if_cp.c
@@ -207,11 +207,11 @@
static int cp_probe (device_t dev)
{
const struct pci_device_table *cpd;
-
+
cpd = PCI_MATCH(dev, cp_devs);
if (cpd == NULL)
return ENXIO;
- device_set_desc(dev, cpd->description);
+ device_set_desc(dev, cpd->descr);
return BUS_PROBE_DEFAULT;
}
Index: sys/dev/cy/cy_pci.c
===================================================================
--- sys/dev/cy/cy_pci.c
+++ sys/dev/cy/cy_pci.c
@@ -70,13 +70,11 @@
static int cy_pci_attach(device_t dev);
static int cy_pci_probe(device_t dev);
-static struct cy_dev {
- uint32_t deviceid;
- const char *description;
-} cy_devs[] = {
- {0x0100120e, "Cyclades Cyclom-Y Serial Adapter"},
- {0x0101120e, "Cyclades Cyclom-Y Serial Adapter"},
- { 0, NULL },
+struct pci_device_table cy_devs[] = {
+ {PCI_DEV(0x120e, 0x0100),
+ PCI_DESCR("Cyclades Cyclom-Y Serial Adapter")},
+ {PCI_DEV(0x120e, 0x0101),
+ PCI_DESCR("Cyclades Cyclom-Y Serial Adapter")}
};
static device_method_t cy_pci_methods[] = {
@@ -94,21 +92,24 @@
};
DRIVER_MODULE(cy, pci, cy_pci_driver, cy_devclass, 0, 0);
-MODULE_PNP_INFO("U32:device", pci, cy, cy_devs,
- sizeof(cy_devs[0]), nitems(cy_devs) - 1);
+PCI_PNP_INFO(cy_devs);
MODULE_DEPEND(cy, pci, 1, 1, 1);
static int
cy_pci_probe(dev)
device_t dev;
{
+ const struct pci_device_table *cyd;
u_int32_t device_id;
device_id = pci_get_devid(dev);
device_id &= ~0x00060000;
if (device_id != 0x0100120e && device_id != 0x0101120e)
return (ENXIO);
- device_set_desc(dev, "Cyclades Cyclom-Y Serial Adapter");
+ cyd = PCI_MATCH(dev, cy_devs);
+ if (cyd == NULL)
+ return (ENXIO);
+ device_set_desc(dev, cyd->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/et/if_et.c
===================================================================
--- sys/dev/et/if_et.c
+++ sys/dev/et/if_et.c
@@ -152,16 +152,11 @@
static void et_tick(void *);
static void et_stats_update(struct et_softc *);
-static const struct et_dev {
- uint16_t vid;
- uint16_t did;
- const char *desc;
-} et_devices[] = {
- { PCI_VENDOR_LUCENT, PCI_PRODUCT_LUCENT_ET1310,
- "Agere ET1310 Gigabit Ethernet" },
- { PCI_VENDOR_LUCENT, PCI_PRODUCT_LUCENT_ET1310_FAST,
- "Agere ET1310 Fast Ethernet" },
- { 0, 0, NULL }
+struct pci_device_table et_devices[] = {
+ {PCI_DEV(PCI_VENDOR_LUCENT, PCI_PRODUCT_LUCENT_ET1310),
+ PCI_DESCR("Agere ET1310 Gigabit Ethernet")},
+ {PCI_DEV(PCI_VENDOR_LUCENT, PCI_PRODUCT_LUCENT_ET1310_FAST),
+ PCI_DESCR("Agere ET1310 Fast Ethernet")}
};
static device_method_t et_methods[] = {
@@ -188,8 +183,7 @@
static devclass_t et_devclass;
DRIVER_MODULE(et, pci, et_driver, et_devclass, 0, 0);
-MODULE_PNP_INFO("U16:vendor;U16:device;D:#", pci, et, et_devices,
- sizeof(et_devices[0]), nitems(et_devices) - 1);
+PCI_PNP_INFO(et_devices);
DRIVER_MODULE(miibus, et, miibus_driver, miibus_devclass, 0, 0);
static int et_rx_intr_npkts = 32;
@@ -205,19 +199,13 @@
static int
et_probe(device_t dev)
{
- const struct et_dev *d;
- uint16_t did, vid;
+ const struct pci_device_table *etd;
- vid = pci_get_vendor(dev);
- did = pci_get_device(dev);
-
- for (d = et_devices; d->desc != NULL; ++d) {
- if (vid == d->vid && did == d->did) {
- device_set_desc(dev, d->desc);
- return (BUS_PROBE_DEFAULT);
- }
- }
- return (ENXIO);
+ etd = PCI_MATCH(dev, et_devices);
+ if (etd == NULL)
+ return (ENXIO);
+ device_set_desc(dev, etd->descr);
+ return (BUS_PROBE_DEFAULT);
}
static int
Index: sys/dev/glxsb/glxsb.c
===================================================================
--- sys/dev/glxsb/glxsb.c
+++ sys/dev/glxsb/glxsb.c
@@ -219,14 +219,9 @@
static void glxsb_crypto_task(void *, int);
static int glxsb_crypto_process(device_t, struct cryptop *, int);
-static struct glxsb_dev{
- uint16_t vendorid;
- uint16_t deviceid;
- const char *description;
-} glxsb_devs[] = {
- {PCI_VENDOR_AMD, PCI_PRODUCT_AMD_GEODE_LX_CRYPTO,
- "AMD Geode LX Security Block (AES-128-CBC, RNG)"},
- {0, 0, NULL},
+struct pci_device_table glxsb_devs[] = {
+ {PCI_DEV(PCI_VENDOR_AMD, PCI_PRODUCT_AMD_GEODE_LX_CRYPTO),
+ PCI_DESCR("AMD Geode LX Security Block (AES-128-CBC, RNG)")}
};
static device_method_t glxsb_methods[] = {
@@ -252,31 +247,20 @@
static devclass_t glxsb_devclass;
DRIVER_MODULE(glxsb, pci, glxsb_driver, glxsb_devclass, 0, 0);
-MODULE_PNP_INFO("U16:vendor;U16:device", pci, glxsb, glxsb_devs,
- sizeof(glxsb_devs[0]), nitems(glxsb_devs) - 1);
+PCI_PNP_INFO(glxsb_devs);
MODULE_VERSION(glxsb, 1);
MODULE_DEPEND(glxsb, crypto, 1, 1, 1);
static int
glxsb_probe(device_t dev)
{
- uint16_t vid;
- uint16_t did;
- const struct glxsb_dev *glxd;
- size_t i;
-
- vid = pci_get_vendor(dev);
- did = pci_get_device(dev);
- for(i=0; i<nitems(glxsb_devs) - 1; i++){
- glxd = &glxd_devs[i];
- if (vid == glxd->vendorid &&
- did == glxd->deviceid){
- device_set_desc(dev, glxd->description);
- return (BUS_PROBE_DEFAULT);
- }
- }
+ const struct pci_device_table *glxd;
- return (ENXIO);
+ glxd = PCI_MATCH(dev, glxsb_devs);
+ if (glxd == NULL)
+ return (ENXIO);
+ device_set_desc(dev, glxd->descr);
+ return (BUS_PROBE_DEFAULT);
}
static int
Index: sys/dev/hifn/hifn7751.c
===================================================================
--- sys/dev/hifn/hifn7751.c
+++ sys/dev/hifn/hifn7751.c
@@ -106,18 +106,14 @@
static int hifn_freesession(device_t, u_int64_t);
static int hifn_process(device_t, struct cryptop *, int);
-static struct hifn_dev {
- uint16_t vendorid;
- uint16_t deviceid;
-} hifn_devs[] = {
- {PCI_VENDOR_INVERTEX, PCI_PRODUCT_INVERTEX_AEON},
- {PCI_VENDOR_HIFN, PCI_PRODUCT_HIFN_7751},
- {PCI_VENDOR_HIFN, PCI_PRODUCT_HIFN_7951},
- {PCI_VENDOR_HIFN, PCI_PRODUCT_HIFN_7955},
- {PCI_VENDOR_HIFN, PCI_PRODUCT_HIFN_7956},
- {PCI_VENDOR_HIFN, PCI_PRODUCT_HIFN_7811},
- {PCI_VENDOR_NETSEC, PCI_PRODUCT_NETSEC_7751},
- {0, 0},
+struct pci_device_table hifn_devs[] = {
+ {PCI_DEV(PCI_VENDOR_INVERTEX, PCI_PRODUCT_INVERTEX_AEON)},
+ {PCI_DEV(PCI_VENDOR_HIFN, PCI_PRODUCT_HIFN_7751)},
+ {PCI_DEV(PCI_VENDOR_HIFN, PCI_PRODUCT_HIFN_7951)},
+ {PCI_DEV(PCI_VENDOR_HIFN, PCI_PRODUCT_HIFN_7955)},
+ {PCI_DEV(PCI_VENDOR_HIFN, PCI_PRODUCT_HIFN_7956)},
+ {PCI_DEV(PCI_VENDOR_HIFN, PCI_PRODUCT_HIFN_7811)},
+ {PCI_DEV(PCI_VENDOR_NETSEC, PCI_PRODUCT_NETSEC_7751)}
};
@@ -145,8 +141,7 @@
static devclass_t hifn_devclass;
DRIVER_MODULE(hifn, pci, hifn_driver, hifn_devclass, 0, 0);
-MODULE_PNP_INFO("U16:vendor;U16:device", pci, hifn, hifn_devs,
- sizeof(hifn_devs[0]), nitems(hifn_devs) - 1);
+PCI_PNP_INFO(hifn_devs);
MODULE_DEPEND(hifn, crypto, 1, 1, 1);
#ifdef HIFN_RNDTEST
MODULE_DEPEND(hifn, rndtest, 1, 1, 1);
@@ -222,21 +217,12 @@
static int
hifn_probe(device_t dev)
{
- const struct hifn_dev *hifd;
- size_t i;
- u_int16_t vid;
- u_int16_t did;
-
- vid = pci_get_vendor(dev);
- did = pci_get_device(dev);
- for (i = 0; i < nitems(hifn_devs); i++) {
- hifd = &hifn_devs[i];
- if ((hifd->vendorid == vid) &&
- (hifd->deviceid == did)) {
- return (BUS_PROBE_DEFAULT);
- }
- }
- return (ENXIO);
+ const struct pci_device_table *hifd;
+
+ hifd = PCI_MATCH(dev, hifn_devs);
+ if (hifd == NULL)
+ return (ENXIO);
+ return (BUS_PROBE_DEFAULT);
}
static void
Index: sys/dev/hme/if_hme_pci.c
===================================================================
--- sys/dev/hme/if_hme_pci.c
+++ sys/dev/hme/if_hme_pci.c
@@ -92,14 +92,9 @@
#define PCI_PRODUCT_SUN_EBUS 0x1000
#define PCI_PRODUCT_SUN_HMENETWORK 0x1001
-static struct hme_dev{
- uint16_t vendorid;
- uint16_t deviceid;
- const char *description;
-} hme_devs[] = {
- {PCI_VENDOR_SUN, PCI_PRODUCT_SUN_HMENETWORK,
- "Sun HME 10/100 Ethernet"},
- {0, 0, NULL},
+struct pci_device_table hme_devs[] = {
+ {PCI_DEV(PCI_VENDOR_SUN, PCI_PRODUCT_SUN_HMENETWORK),
+ PCI_DESCR("Sun HME 10/100 Ethernet")}
};
static device_method_t hme_pci_methods[] = {
@@ -127,30 +122,20 @@
};
DRIVER_MODULE(hme, pci, hme_pci_driver, hme_devclass, 0, 0);
-MODULE_PNP_INFO("U16:vendor;U16:device", pci, hme, hme_devs,
- sizeof(hme_devs[0]), nitems(hme_devs) - 1);
+PCI_PNP_INFO(hme_devs);
MODULE_DEPEND(hme, pci, 1, 1, 1);
MODULE_DEPEND(hme, ether, 1, 1, 1);
int
hme_pci_probe(device_t dev)
{
- const struct hme_dev *hmed;
- uint16_t vid;
- uint16_t did;
- size_t i;
-
- vid = pci_get_vendor(dev);
- did = pci_get_device(dev);
-
- for(i=0; i<nitems(hme_devs) - 1; i++){
- hmed = &hme_devs[i];
- if(vid == hmed->vendorid && did == hmed->deviceid){
- device_set_desc(dev, hmed->description);
- return (BUS_PROBE_DEFAULT);
- }
- }
- return (ENXIO);
+ const struct pci_device_table *hmed;
+
+ hmed = PCI_MATCH(dev, hme_devs);
+ if (hmed == NULL)
+ return (ENXIO);
+ device_set_desc(dev, hmed->descr);
+ return (BUS_PROBE_DEFAULT);
}
int
Index: sys/dev/ipw/if_ipw.c
===================================================================
--- sys/dev/ipw/if_ipw.c
+++ sys/dev/ipw/if_ipw.c
@@ -102,10 +102,9 @@
const char *name;
};
-static const struct ipw_ident ipw_ident_table[] = {
- { 0x8086, 0x1043, "Intel(R) PRO/Wireless 2100 MiniPCI" },
-
- { 0, 0, NULL }
+struct pci_device_table ipw_ident_table[] = {
+ {PCI_DEV(0x8086, 0x1043),
+ PCI_DESCR("Intel(R) PRO/Wireless 2100 MiniPCI")}
};
static struct ieee80211vap *ipw_vap_create(struct ieee80211com *,
@@ -202,24 +201,20 @@
static devclass_t ipw_devclass;
DRIVER_MODULE(ipw, pci, ipw_driver, ipw_devclass, NULL, NULL);
-MODULE_PNP_INFO("U16:vendor;U16:device;D:#", pci, ipw, ipw_ident_table,
- sizeof(ipw_ident_table[0]), nitems(ipw_ident_table) - 1);
+PCI_PNP_INFO(ipw_ident_table);
MODULE_VERSION(ipw, 1);
static int
ipw_probe(device_t dev)
{
- const struct ipw_ident *ident;
+ const struct pci_device_table *ident;
- for (ident = ipw_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;
+ ident = PCI_MATCH(dev, ipw_ident_table);
+ if (ident == NULL)
+ return (ENXIO);
+ device_set_desc(dev, ident->descr);
+ return (BUS_PROBE_DEFAULT);
}
/* Base Address Register */
Index: sys/dev/sound/pci/emu10k1.c
===================================================================
--- sys/dev/sound/pci/emu10k1.c
+++ sys/dev/sound/pci/emu10k1.c
@@ -53,7 +53,11 @@
#define EMUMAXPAGES (WAVEOUT_MAXBUFSIZE * NUM_G / EMUPAGESIZE)
#define EMU10K1_PCI_ID 0x00021102 /* 1102 => Creative Labs Vendor ID */
#define EMU10K2_PCI_ID 0x00041102
-#define EMU10K3_PCI_ID 0x00081102
+#define EMU10K3_PCI_ID 0x00081102
+#define CREATIVE_LABS_VENDOR_ID 0x1102
+#define EMU10K1_DEVICE_ID 0x0002
+#define EMU10K2_DEVICE_ID 0x0004
+#define EMU10K3_DEVICE_ID 0x0008
#define EMU_DEFAULT_BUFSZ 4096
#define EMU_MAX_CHANS 8
#define EMU_CHANS 4
@@ -157,25 +161,22 @@
#define A_EXTOUT_ADC_CAP_L 0x16
#define A_EXTOUT_ADC_CAP_R 0x17
-static struct emu_pci_dev {
- uint32_t devid;
- const char *description;
- uint8_t rev;
-} emu_pci_devs[] = {
- {EMU10K1_PCI_ID, "Creative EMU10K1", 0},
- {EMU10K2_PCI_ID, "Creative Audigy (EMU10K2)", 0},
- {EMU10K2_PCI_ID, "Creative Audigy 2 (EMU10K2)", 0x04},
- {EMU10K3_PCI_ID, "Creative Audigy 2 (EMU10K3)", 0},
- {0, 0, 0},
+struct pci_device_table emu_pci_devs[] = {
+ {PCI_DEV(CREATIVE_LABS_VENDOR_ID, EMU10K1_DEVICE_ID),
+ PCI_DESCR("Creative EMU10K1"), PCI_REVID(0)},
+ {PCI_DEV(CREATIVE_LABS_VENDOR_ID, EMU10K2_DEVICE_ID),
+ PCI_DESCR("Creative Audigy (EMU10K2)"), PCI_REVID(0)},
+ {PCI_DEV(CREATIVE_LABS_VENDOR_ID, EMU10K2_DEVICE_ID),
+ PCI_DESCR("Creative Audigy 2 (EMU10K2)"), PCI_REVID(0x04)},
+ {PCI_DEV(CREATIVE_LABS_VENDOR_ID, EMU10K3_DEVICE_ID),
+ PCI_DESCR("Creative Audigy 2 (EMU10K3)"), PCI_REVID(0)}
};
-static struct emujoy_pci_dev {
- uint32_t devid;
- const char *description;
-} emujoy_pci_devs[] = {
- {0x70021102, "Creative EMU10K1 Joystick"},
- {0x70031102, "Creative EMU10K2 Joystick"},
- {0, 0},
+struct pci_device_table emujoy_pci_devs[] = {
+ {PCI_DEV(0x1102, 0x7002),
+ PCI_DESCR("Creative EMU10K1 Joystick")},
+ {PCI_DEV(0x1102, 0x7003),
+ PCI_DESCR("Creative EMU10K2 Joystick")}
};
struct emu_memblk {
@@ -2065,22 +2066,13 @@
static int
emu_pci_probe(device_t dev)
{
- const struct emu_pci_dev *emud;
- uint32_t devid;
- size_t i;
- uint8_t rev;
-
- devid = pci_get_devid(dev);
- rev = pci_get_revid(dev);
- for (i = 0; i < nitems(emu_pci_devs); i++) {
- emud = &emu_pci_devs[i];
- if ((emud->devid == devid) &&
- ((emud->rev == rev) || emud->rev == 0)) {
- device_set_desc(dev, emud->description);
- return BUS_PROBE_LOW_PRIORITY;
- }
- }
- return ENXIO;
+ const struct pci_device_table *emud;
+
+ emud = PCI_MATCH(dev, emu_pci_devs);
+ if (emud == NULL)
+ return (ENXIO);
+ device_set_desc(dev, emud->descr);
+ return (BUS_PROBE_LOW_PRIORITY);
}
@@ -2214,8 +2206,7 @@
};
DRIVER_MODULE(snd_emu10k1, pci, emu_driver, pcm_devclass, NULL, NULL);
-MODULE_PNP_INFO("W32:vendor/device;D:#", pci, snd_emu101k1,
- emu_pci_devs, sizeof(emu_pci_devs[0]), nitems(emu_pci_devs) - 1);
+PCI_PNP_INFO(emu_pci_devs);
MODULE_DEPEND(snd_emu10k1, sound, SOUND_MINVER, SOUND_PREFVER, SOUND_MAXVER);
MODULE_VERSION(snd_emu10k1, 1);
MODULE_DEPEND(snd_emu10k1, midi, 1, 1, 1);
@@ -2224,20 +2215,14 @@
static int
emujoy_pci_probe(device_t dev)
{
- const struct emujoy_pci_dev *emujd;
- size_t i;
- uint32_t devid;
-
- devid = pci_get_devid(dev);
- for (i = 0; i < nitems(emujoy_pci_devs); i++) {
- emujd = &emujoy_pci_devs[i];
- if(emujd->devid == devid) {
- device_set_desc(dev, emujd->description);
- device_quiet(dev);
- return -1000;
- }
- }
- return ENXIO;
+ const struct pci_device_table *emujd;
+
+ emujd = PCI_MATCH(dev, emujoy_pci_devs);
+ if (emujd == NULL)
+ return (ENXIO);
+ device_set_desc(dev, emujd->descr);
+ device_quiet(dev);
+ return -1000;
}
static int
@@ -2271,5 +2256,4 @@
static devclass_t emujoy_devclass;
DRIVER_MODULE(emujoy, pci, emujoy_driver, emujoy_devclass, NULL, NULL);
-MODULE_PNP_INFO("W32:vendor/device;D:#", pci, emujoy, emujoy_pci_devs,
- sizeof(emujoy_pci_devs[0]), nitems(emujoy_pci_devs) - 1);
+PCI_PNP_INFO(emujoy_pci_devs);
Index: sys/sparc64/ebus/ebus.c
===================================================================
--- sys/sparc64/ebus/ebus.c
+++ sys/sparc64/ebus/ebus.c
@@ -200,14 +200,11 @@
BUS_PASS_BUS + 1);
MODULE_DEPEND(ebus, nexus, 1, 1, 1);
-static struct ebus_pci_dev {
- uint16_t vendorid;
- uint16_t deviceid;
- const char *description;
-} ebus_pci_devs[] = {
- {0x108e, 0x1000, "PCI-EBus2 bridge"},
- {0x108e, 0x1100, "PCI-EBus3 bridge"},
- {0, 0, 0},
+struct pci_device_table ebus_pci_devs[] = {
+ {PCI_DEV(0x108e, 0x1000),
+ PCI_DESCR("PCI-EBus2 bridge")},
+ {PCI_DEV(0x108e, 0x1100),
+ PCI_DESCR("PCI-EBus3 bridge")}
}
static device_method_t ebus_pci_methods[] = {
@@ -250,8 +247,7 @@
EARLY_DRIVER_MODULE(ebus, pci, ebus_pci_driver, ebus_devclass, 0, 0,
BUS_PASS_BUS);
-MODULE_PNP_INFO("U16:vendor;U16:device;D:#", pci, ebus, ebus_pci_devs,
- sizeof(ebus_pci_devs[0]), nitems(ebus_pci_devs) - 1);
+PCI_PNP_INFO(ebus_pci_devs);
MODULE_DEPEND(ebus, pci, 1, 1, 1);
MODULE_VERSION(ebus, 1);
@@ -272,23 +268,20 @@
static int
ebus_pci_probe(device_t dev)
{
- const struct ebus_pci_dev *ebd;
+ const struct pci_device_table *ebd;
uint16_t did;
- size_t i;
did = pci_get_device(dev);
if (pci_get_class(dev) != PCIC_BRIDGE ||
pci_get_vendor(dev) != 0x108e ||
strcmp(ofw_bus_get_name(dev), "ebus") != 0)
return (ENXIO);
- for (i = 0; i < nitems(ebus_pci_devs) - 1; i++) {
- ebd = &ebus_pci_devs[i];
- if (did == ebd->deviceid) {
- device_set_desc(dev, ebd->description);
- return (BUS_PROBE_GENERIC);
- }
- }
- return (ENXIO);
+
+ ebd = PCI_MATCH(dev, ebus_pci_devs);
+ if (ebd == NULL)
+ return (ENXIO);
+ device_set_desc(dev, ebd->descr);
+ return (BUS_PROBE_GENERIC);
}
static int
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Tue, Apr 14, 11:49 AM (18 h, 7 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
31471848
Default Alt Text
D16253.id45474.diff (37 KB)
Attached To
Mode
D16253: Update GLXSB, EBUS, EMU, EMUJOY, HIFN, BT, ARCMSR, HME, CP, CE, BFE to use PCI_MATCH
Attached
Detach File
Event Timeline
Log In to Comment