n 033, 02 02, 2006 at 10:26:44AM +0000, Russell King wrote: > On Tue, Jan 24, 2006 at 09:01:41PM +0000, Russell King wrote: > > On Tue, Jan 24, 2006 at 11:25:38AM +0300, Andrey Panin wrote: > > > This patch (against 2.6.16-rc1) adds support for SIIG 8 port serial boards. > > > Please consider applying. > > > > Could you supply a sign-off (and a description) for this patch please - > > see Documentation/SubmittingPatches for more information. > > Ping? Pong :) Please see below. Does it look better now ? BTW I have a question for you. I'm trying to add support for Advantech serial cards into 8250_pci.c. These cards are based on Oxford Semiconductor 16C950 UARTs and some of then can work in RS485 mode. They use DTR to automatically control direction of the RS485 transiever buffer and so need to set bits 3 and 4 in the ACR register. Unfortunately there is currently no way to set different ACR value. Is it okay to use unused[] array in the struct uart_port to pass ACR value from 8250_pci.c to 8250.c ? -- Andrey Panin | Linux and UNIX system administrator [email protected] | PGP key: wwwkeys.pgp.net
This patch adds support for SIIG 8-port boards. These boards have 4 ports in separate bars and another 4 ports in the single bar. Because of this strange port arrangement these cards need special setup function. Fortunately no other SIIG cards have more than 4 port, so this setup function could be used for them too. Signed-off-by: Andrey Panin <[email protected]> drivers/serial/8250_pci.c | 25 ++++++++++++++++++++++++- include/linux/pci_ids.h | 3 +++ 2 files changed, 27 insertions(+), 1 deletion(-) diff -urdpNX /usr/share/dontdiff linux-2.6.16-rc1.vanilla/drivers/serial/8250_pci.c linux-2.6.16-rc1/drivers/serial/8250_pci.c --- linux-2.6.16-rc1.vanilla/drivers/serial/8250_pci.c 2006-01-24 10:14:24.000000000 +0300 +++ linux-2.6.16-rc1/drivers/serial/8250_pci.c 2006-01-24 10:16:56.000000000 +0300 @@ -439,6 +439,20 @@ static int pci_siig_init(struct pci_dev return -ENODEV; } +static int pci_siig_setup(struct serial_private *priv, + struct pciserial_board *board, + struct uart_port *port, int idx) +{ + unsigned int bar = FL_GET_BASE(board->flags) + idx, offset = 0; + + if (idx > 3) { + bar = 4; + offset = (idx - 4) * 8; + } + + return setup_port(priv, port, bar, offset, 0); +} + /* * Timedia has an explosion of boards, and to avoid the PCI table from * growing *huge*, we use this function to collapse some 70 entries @@ -748,7 +762,7 @@ static struct pci_serial_quirk pci_seria .subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID, .init = pci_siig_init, - .setup = pci_default_setup, + .setup = pci_siig_setup, }, /* * Titan cards @@ -2134,6 +2148,15 @@ static struct pci_device_id serial_pci_t { PCI_VENDOR_ID_SIIG, PCI_DEVICE_ID_SIIG_4S_20x_850, PCI_ANY_ID, PCI_ANY_ID, 0, 0, pbn_b0_bt_4_921600 }, + { PCI_VENDOR_ID_SIIG, PCI_DEVICE_ID_SIIG_8S_20x_550, + PCI_ANY_ID, PCI_ANY_ID, 0, 0, + pbn_b0_bt_8_921600 }, + { PCI_VENDOR_ID_SIIG, PCI_DEVICE_ID_SIIG_8S_20x_650, + PCI_ANY_ID, PCI_ANY_ID, 0, 0, + pbn_b0_bt_8_921600 }, + { PCI_VENDOR_ID_SIIG, PCI_DEVICE_ID_SIIG_8S_20x_850, + PCI_ANY_ID, PCI_ANY_ID, 0, 0, + pbn_b0_bt_8_921600 }, /* * Computone devices submitted by Doug McNash [email protected] diff -urdpNX /usr/share/dontdiff linux-2.6.16-rc1.vanilla/include/linux/pci_ids.h linux-2.6.16-rc1/include/linux/pci_ids.h --- linux-2.6.16-rc1.vanilla/include/linux/pci_ids.h 2006-01-24 10:14:51.000000000 +0300 +++ linux-2.6.16-rc1/include/linux/pci_ids.h 2006-01-24 10:16:56.000000000 +0300 @@ -1677,6 +1677,9 @@ #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_DEVICE_ID_SIIG_8S_20x_550 0x2080 +#define PCI_DEVICE_ID_SIIG_8S_20x_650 0x2081 +#define PCI_DEVICE_ID_SIIG_8S_20x_850 0x2082 #define PCI_SUBDEVICE_ID_SIIG_QUARTET_SERIAL 0x2050 #define PCI_VENDOR_ID_RADISYS 0x1331
Attachment:
signature.asc
Description: Digital signature
- References:
- [PATCH] SIIG 8-port serial boards support
- From: Andrey Panin <[email protected]>
- Re: [PATCH] SIIG 8-port serial boards support
- From: Russell King <[email protected]>
- Re: [PATCH] SIIG 8-port serial boards support
- From: Russell King <[email protected]>
- [PATCH] SIIG 8-port serial boards support
- Prev by Date: Re: [ 00/10] [Suspend2] Modules support.
- Next by Date: Re: [PATCH] Dynamically allocated pageflags
- Previous by thread: Re: [PATCH] SIIG 8-port serial boards support
- Next by thread: Re: [PATCH] SIIG 8-port serial boards support
- Index(es):