diff -ur -X /usr/dontdiff /linux.vanilla/drivers/char/moxa.c /linux/drivers/char/moxa.c --- /linux.vanilla/drivers/char/moxa.c Wed Oct 17 11:25:43 2001 +++ /linux/drivers/char/moxa.c Thu Oct 18 12:15:14 2001 @@ -105,18 +105,16 @@ "CP-204J series", }; -typedef struct { - unsigned short vendor_id; - unsigned short device_id; - unsigned short board_type; -} moxa_pciinfo; - -static moxa_pciinfo moxa_pcibrds[] = -{ - {PCI_VENDOR_ID_MOXA, PCI_DEVICE_ID_C218, MOXA_BOARD_C218_PCI}, - {PCI_VENDOR_ID_MOXA, PCI_DEVICE_ID_C320, MOXA_BOARD_C320_PCI}, - {PCI_VENDOR_ID_MOXA, PCI_DEVICE_ID_CP204J, MOXA_BOARD_CP204J}, +static struct pci_device_id moxa_pcibrds[] = { + { PCI_VENDOR_ID_MOXA, PCI_DEVICE_ID_C218, PCI_ANY_ID, PCI_ANY_ID, + 0, 0, MOXA_BOARD_C218_PCI }, + { PCI_VENDOR_ID_MOXA, PCI_DEVICE_ID_C320, PCI_ANY_ID, PCI_ANY_ID, + 0, 0, MOXA_BOARD_C320_PCI }, + { PCI_VENDOR_ID_MOXA, PCI_DEVICE_ID_CP204J, PCI_ANY_ID, PCI_ANY_ID, + 0, 0, MOXA_BOARD_CP204J }, + { 0 } }; +MODULE_DEVICE_TABLE(pci, moxa_pcibrds); typedef struct _moxa_isa_board_conf { int boardType; @@ -487,10 +485,10 @@ #ifdef CONFIG_PCI { struct pci_dev *p = NULL; - n = sizeof(moxa_pcibrds) / sizeof(moxa_pciinfo); + n = (sizeof(moxa_pcibrds) / sizeof(moxa_pcibrds[0])) - 1; i = 0; while (i < n) { - while((p = pci_find_device(moxa_pcibrds[i].vendor_id, moxa_pcibrds[i].device_id, p))!=NULL) + while ((p = pci_find_device(moxa_pcibrds[i].vendor, moxa_pcibrds[i].device, p))!=NULL) { if (pci_enable_device(p)) continue; @@ -498,7 +496,7 @@ if (verbose) printk("More than %d MOXA Intellio family boards found. Board is ignored.", MAX_BOARDS); } else { - moxa_get_PCI_conf(p, moxa_pcibrds[i].board_type, + moxa_get_PCI_conf(p, moxa_pcibrds[i].driver_data, &moxa_boards[numBoards]); numBoards++; }