serial: sh-sci: Clear (H)SCIF timeout and overrun during reset
Add the missing timeout bit definition for (H)SCIF. Clear the timeout and overrun flag bits during UART reset, cfr. the initialization flowchart in the datasheet. Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Tento commit je obsažen v:

odevzdal
Greg Kroah-Hartman

rodič
2768cf4287
revize
fc2af3348a
@@ -2156,6 +2156,11 @@ static void sci_reset(struct uart_port *port)
|
||||
sci_clear_SCxSR(port,
|
||||
SCxSR_RDxF_CLEAR(port) & SCxSR_ERROR_CLEAR(port) &
|
||||
SCxSR_BREAK_CLEAR(port));
|
||||
if (sci_getreg(port, SCLSR)->size) {
|
||||
status = serial_port_in(port, SCLSR);
|
||||
status &= ~(SCLSR_TO | SCLSR_ORER);
|
||||
serial_port_out(port, SCLSR, status);
|
||||
}
|
||||
}
|
||||
|
||||
static void sci_set_termios(struct uart_port *port, struct ktermios *termios,
|
||||
|
@@ -105,6 +105,7 @@ enum {
|
||||
#define SCFCR_LOOP BIT(0) /* Loopback Test */
|
||||
|
||||
/* SCLSR (Line Status Register) on (H)SCIF */
|
||||
#define SCLSR_TO BIT(2) /* Timeout */
|
||||
#define SCLSR_ORER BIT(0) /* Overrun Error */
|
||||
|
||||
/* SCSPTR (Serial Port Register), optional */
|
||||
|
Odkázat v novém úkolu
Zablokovat Uživatele