Re: serial.c fifo overrun problem?

From: Alan Modra (alan@linuxcare.com.au)
Date: Wed Mar 29 2000 - 19:34:21 EST


On Wed, 29 Mar 2000, Jonathan Larmour wrote:

> However info->xmit_fifo_size is set to 16 for a 16550A, and the FIFO
> threshold for speeds of 2400bps and above is 8. And it calls
> transmit_chars() when the threshold is reached. This would mean the FIFO
> would get overrun if it ever rose above the threshold and there were more
> than 8 more chars waiting to be sent.
>
> Is my analysis correct?

No. UART_LSR_THRE is set only when the fifo is empty. This is
independent of how the fifo threshold interrupt is set, which in any case
is only for the receive fifo as far as I can tell. Thus transmit_chars()
is only called when we know we can send a full fifo's worth of data.

-- 
Linuxcare.  Support for the Revolution.

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Fri Mar 31 2000 - 21:00:26 EST