From: Andrey Panin Add support for SIIG Quartet Serial card. This card has Oxford Semiconducor 16954 quad UART which is clocked by 10x faster (18.432 MHz) quartz. Cc: rmk said: > @@ -1038,6 +1041,8 @@ enum pci_board_num_t { > pbn_b0_bt_4_921600, > pbn_b0_bt_8_921600, > > + pbn_b0_4_1152000, > + As per the other patch in this series, this is misplaced. The sorting order is: - base baud - index method (bt - bar / base+offset) - bar index - number of ports This means it should be between pbn_b0_4_921600 and pbn_b0_bt_1_115200. I'll add a note to the driver to this effect. > @@ -1226,6 +1231,12 @@ static struct pci_board pci_boards[] __d > .base_baud = 921600, > .uart_offset = 8, > }, > + [pbn_b0_4_1152000] = { > + .flags = FL_BASE0, > + .num_ports = 4, > + .base_baud = 1152000, > + .uart_offset = 8, > + }, Likewise here. Signed-off-by: Andrew Morton --- drivers/serial/8250_pci.c | 14 ++++++++++++++ include/linux/pci_ids.h | 2 ++ 2 files changed, 16 insertions(+) diff -puN drivers/serial/8250_pci.c~serial-add-siig-quartet-support drivers/serial/8250_pci.c --- 25/drivers/serial/8250_pci.c~serial-add-siig-quartet-support 2005-05-11 21:15:38.000000000 -0700 +++ 25-akpm/drivers/serial/8250_pci.c 2005-05-11 21:15:38.000000000 -0700 @@ -389,6 +389,9 @@ static void __devexit sbs_exit(struct pc * - 10x cards have control registers in IO and/or memory space; * - 20x cards have control registers in standard PCI configuration space. * + * There are also Quartet Serial cards which use Oxford Semiconductor + * 16954 quad UART PCI chip clocked by 18.432 MHz quartz. + * * Note: some SIIG cards are probed by the parport_serial object. */ @@ -1040,6 +1043,8 @@ enum pci_board_num_t { pbn_b0_bt_4_921600, pbn_b0_bt_8_921600, + pbn_b0_4_1152000, + pbn_b1_1_115200, pbn_b1_2_115200, pbn_b1_4_115200, @@ -1228,6 +1233,12 @@ static struct pci_board pci_boards[] __d .base_baud = 921600, .uart_offset = 8, }, + [pbn_b0_4_1152000] = { + .flags = FL_BASE0, + .num_ports = 4, + .base_baud = 1152000, + .uart_offset = 8, + }, [pbn_b1_1_115200] = { .flags = FL_BASE1, @@ -1985,6 +1996,9 @@ static struct pci_device_id serial_pci_t PCI_VENDOR_ID_SPECIALIX, PCI_SUBDEVICE_ID_SPECIALIX_SPEED4, 0, 0, pbn_b0_4_921600 }, { PCI_VENDOR_ID_OXSEMI, PCI_DEVICE_ID_OXSEMI_16PCI954, + PCI_SUBVENDOR_ID_SIIG, PCI_SUBDEVICE_ID_SIIG_QUARTET_SERIAL, 0, 0, + pbn_b0_4_1152000 }, + { PCI_VENDOR_ID_OXSEMI, PCI_DEVICE_ID_OXSEMI_16PCI954, PCI_ANY_ID, PCI_ANY_ID, 0, 0, pbn_b0_4_115200 }, { PCI_VENDOR_ID_OXSEMI, PCI_DEVICE_ID_OXSEMI_16PCI952, diff -puN include/linux/pci_ids.h~serial-add-siig-quartet-support include/linux/pci_ids.h --- 25/include/linux/pci_ids.h~serial-add-siig-quartet-support 2005-05-11 21:15:38.000000000 -0700 +++ 25-akpm/include/linux/pci_ids.h 2005-05-11 21:15:38.000000000 -0700 @@ -1861,6 +1861,7 @@ #define PCI_DEVICE_ID_CBOARDS_DAS1602_16 0x0001 #define PCI_VENDOR_ID_SIIG 0x131f +#define PCI_SUBVENDOR_ID_SIIG 0x131f #define PCI_DEVICE_ID_SIIG_1S_10x_550 0x1000 #define PCI_DEVICE_ID_SIIG_1S_10x_650 0x1001 #define PCI_DEVICE_ID_SIIG_1S_10x_850 0x1002 @@ -1898,6 +1899,7 @@ #define PCI_DEVICE_ID_SIIG_2S1P_20x_550 0x2060 #define PCI_DEVICE_ID_SIIG_2S1P_20x_650 0x2061 #define PCI_DEVICE_ID_SIIG_2S1P_20x_850 0x2062 +#define PCI_SUBDEVICE_ID_SIIG_QUARTET_SERIAL 0x2050 #define PCI_VENDOR_ID_RADISYS 0x1331 #define PCI_DEVICE_ID_RADISYS_ENP2611 0x0030 _