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.shevche...@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;
> 

Reply via email to