Hello, On Fri, May 31, 2019 at 09:38:37PM +0300, Sergey Organov wrote: > Russell King <rmk@xxxxxxxxxxxxxxx> writes: > > If this is not done, data loss will occur: characters will be received > > from the FIFO, and the attempt to place them into the kernel buffer > > will fail, resulting in the characters being discarded. This would not > > be an effective hardware flow control implementation. > > Why? Doesn't kernel stop its receiving machinery anyway when software > receive buffers get filled? > > If it does, that seems logical, then it will rather stop reading from > FIFO, and once FIFO fills above threshold (if at all), hardware will > de-assert RTS by itself, no complications required. Not all hardware has a FIFO and the necessary mechanisms to auto-deassert RTS when it fills. So there must be support in software to deassert RTS, too. And even in the presence of a "smart" FIFO, the software then usually knows earlier about having to stop the other side and this might be the necessary margin that makes them stop before the local buffer is over full. Best regards Uwe -- Pengutronix e.K. | Uwe Kleine-König | Industrial Linux Solutions | http://www.pengutronix.de/ |