Message ID | 1460061433-63750-9-git-send-email-andriy.shevchenko@linux.intel.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
On 04/07/2016 01:37 PM, Andy Shevchenko wrote: > Intel Quark has 16550A compatible UART with autoflow feature enabled. It has > only 16 bytes of FIFO. Currently serial8250_do_set_termios() prevents to enable > autoflow since the minimum requirement of 32 bytes of FIFO size. > > Decrease a FIFO size limitation to 16 bytes to allow autoflow control be > enabled on such UARTs. > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> > --- > drivers/tty/serial/8250/8250_port.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c > index e213da0..3f8121e 100644 > --- a/drivers/tty/serial/8250/8250_port.c > +++ b/drivers/tty/serial/8250/8250_port.c > @@ -2522,9 +2522,9 @@ serial8250_do_set_termios(struct uart_port *port, struct ktermios *termios, > * the trigger, or the MCR RTS bit is cleared. In the case where > * the remote UART is not using CTS auto flow control, we must > * have sufficient FIFO entries for the latency of the remote > - * UART to respond. IOW, at least 32 bytes of FIFO. > + * UART to respond. IOW, at least 16 bytes of FIFO. > */ > - if (up->capabilities & UART_CAP_AFE && port->fifosize >= 32) { > + if (up->capabilities & UART_CAP_AFE && port->fifosize >= 16) { Let's just remove the fifosize test and rely on UART_CAP_AFE to enable AFE. Please remove comment from "In the case where ..." Also, I think the PORT_A7 port type should have UART_CAP_AFE commented out, especially since/if the trigger level is 1 byte. Regards, Peter Hurley > up->mcr &= ~UART_MCR_AFE; > if (termios->c_cflag & CRTSCTS) > up->mcr |= UART_MCR_AFE; > -- To unsubscribe from this list: send the line "unsubscribe dmaengine" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c index e213da0..3f8121e 100644 --- a/drivers/tty/serial/8250/8250_port.c +++ b/drivers/tty/serial/8250/8250_port.c @@ -2522,9 +2522,9 @@ serial8250_do_set_termios(struct uart_port *port, struct ktermios *termios, * the trigger, or the MCR RTS bit is cleared. In the case where * the remote UART is not using CTS auto flow control, we must * have sufficient FIFO entries for the latency of the remote - * UART to respond. IOW, at least 32 bytes of FIFO. + * UART to respond. IOW, at least 16 bytes of FIFO. */ - if (up->capabilities & UART_CAP_AFE && port->fifosize >= 32) { + if (up->capabilities & UART_CAP_AFE && port->fifosize >= 16) { up->mcr &= ~UART_MCR_AFE; if (termios->c_cflag & CRTSCTS) up->mcr |= UART_MCR_AFE;
Intel Quark has 16550A compatible UART with autoflow feature enabled. It has only 16 bytes of FIFO. Currently serial8250_do_set_termios() prevents to enable autoflow since the minimum requirement of 32 bytes of FIFO size. Decrease a FIFO size limitation to 16 bytes to allow autoflow control be enabled on such UARTs. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> --- drivers/tty/serial/8250/8250_port.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)