Page MenuHomeFreeBSD

D16253.id45474.diff
No OneTemporary

D16253.id45474.diff

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

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)

Event Timeline