diff -ur -X /usr/dontdiff /linux.vanilla/drivers/char/mxser.c /linux/drivers/char/mxser.c --- /linux.vanilla/drivers/char/mxser.c Wed Oct 17 11:25:41 2001 +++ /linux/drivers/char/mxser.c Thu Oct 18 12:14:04 2001 @@ -159,17 +159,14 @@ #define MOXA_GET_CUMAJOR (MOXA + 64) #define MOXA_GETMSTATUS (MOXA + 65) -typedef struct { - unsigned short vendor_id; - unsigned short device_id; - unsigned short board_type; -} mxser_pciinfo; - -static mxser_pciinfo mxser_pcibrds[] = -{ - {PCI_VENDOR_ID_MOXA, PCI_DEVICE_ID_C168, MXSER_BOARD_C168_PCI}, - {PCI_VENDOR_ID_MOXA, PCI_DEVICE_ID_C104, MXSER_BOARD_C104_PCI}, +static struct pci_device_id mxser_pcibrds[] = { + { PCI_VENDOR_ID_MOXA, PCI_DEVICE_ID_C168, PCI_ANY_ID, PCI_ANY_ID, 0, 0, + MXSER_BOARD_C168_PCI }, + { PCI_VENDOR_ID_MOXA, PCI_DEVICE_ID_C104, PCI_ANY_ID, PCI_ANY_ID, 0, 0, + MXSER_BOARD_C104_PCI }, + { 0 } }; +MODULE_DEVICE_TABLE(pci, mxser_pcibrds); static int ioaddr[MXSER_BOARDS]; static int ttymajor = MXSERMAJOR; @@ -614,22 +611,22 @@ { struct pci_dev *pdev = NULL; - n = sizeof(mxser_pcibrds) / sizeof(mxser_pciinfo); + n = (sizeof(mxser_pcibrds) / sizeof(mxser_pcibrds[0])) - 1; index = 0; for (b = 0; b < n; b++) { - pdev = pci_find_device(mxser_pcibrds[b].vendor_id, - mxser_pcibrds[b].device_id, pdev); + pdev = pci_find_device(mxser_pcibrds[b].vendor, + mxser_pcibrds[b].device, pdev); if (!pdev || pci_enable_device(pdev)) continue; hwconf.pdev = pdev; printk("Found MOXA %s board(BusNo=%d,DevNo=%d)\n", - mxser_brdname[mxser_pcibrds[b].board_type], + mxser_brdname[mxser_pcibrds[b].driver_data], pdev->bus->number, PCI_SLOT(pdev->devfn)); if (m >= MXSER_BOARDS) { printk("Too many Smartio family boards found (maximum %d),board not configured\n", MXSER_BOARDS); } else { retval = mxser_get_PCI_conf(pdev, - mxser_pcibrds[b].board_type, &hwconf); + mxser_pcibrds[b].driver_data, &hwconf); if (retval < 0) { if (retval == MXSER_ERR_IRQ) printk("Invalid interrupt number,board not configured\n");