Hi I have hacked hardware flowcontrol into 8250.c for the XR17D154. I have attached the patch. The fix just uses another address for the EFR-register. I would like to have some adwise as to how to do this the right way. Thanks. -- Søren Holm
diff --git a/drivers/tty/serial/8250.c b/drivers/tty/serial/8250.c index b3b881b..ba28eb8 100644 --- a/drivers/tty/serial/8250.c +++ b/drivers/tty/serial/8250.c @@ -301,7 +301,7 @@ static const struct serial8250_config uart_config[] = { .fifo_size = 64, .tx_loadsz = 64, .fcr = UART_FCR_ENABLE_FIFO | UART_FCR_R_TRIG_10, - .flags = UART_CAP_FIFO | UART_CAP_AFE, + .flags = UART_CAP_FIFO | UART_CAP_AFE | UART_CAP_EFR, }, }; @@ -2420,7 +2420,7 @@ serial8250_do_set_termios(struct uart_port *port, struct ktermios *termios, efr |= UART_EFR_CTS; serial_outp(up, UART_LCR, UART_LCR_CONF_MODE_B); - serial_outp(up, UART_EFR, efr); + serial_outp(up, UART_EFR2, efr); } #ifdef CONFIG_ARCH_OMAP diff --git a/include/linux/serial_reg.h b/include/linux/serial_reg.h index 3ecb71a..56b2569 100644 --- a/include/linux/serial_reg.h +++ b/include/linux/serial_reg.h @@ -150,6 +150,7 @@ * LCR=0xBF (or DLAB=1 for 16C660) */ #define UART_EFR 2 /* I/O: Extended Features Register */ +#define UART_EFR2 9 /* I/O: Extended Features Register for Exari XR17D154 */ #define UART_EFR_CTS 0x80 /* CTS flow control */ #define UART_EFR_RTS 0x40 /* RTS flow control */ #define UART_EFR_SCD 0x20 /* Special character detect */