On 10/16/23 11:25, Paul Barker wrote:
The current SCIF error handling is broken for the RZ/G2L. After a break
condition has been triggered, the current code is unable to clear the
error and serial port output never resumes.

The RZ/G2L datasheet says that most error conditions are cleared by
resetting the relevant error bits in the FSR & LSR registers to zero.
To clear framing errors, the invalid data also needs to be read out of
the receive FIFO.

After reviewing datasheets for RZ/G2{H,M,N,E}, R-Car Gen4, R-Car Gen3
and even SH7751 SoCs, it's clear that this is the way to clear errors
for all of these SoCs.

While we're here, annotate the handle_error() function with a couple of
comments as the reads and writes themselves don't immediately make it
clear what we're doing.

Signed-off-by: Paul Barker <paul.barker...@bp.renesas.com>
Tested-by: Chris Paterson <chris.paters...@renesas.com>
        # HiHope RZ/G2M board
Tested-by: Marek Vasut <marek.vasut+rene...@mailbox.org>
        # R-Car H3 Salvator-XS

Reviewed-by: Marek Vasut <marek.vasut+rene...@mailbox.org>

Reply via email to