Signed-off-by: Graham Gower <graham.gower@xxxxxxxxx> --- drivers/serial/8250.c | 12 ++++++++++++ 1 files changed, 12 insertions(+), 0 deletions(-) diff --git a/drivers/serial/8250.c b/drivers/serial/8250.c index e9b15c3..dfe6640 100644 --- a/drivers/serial/8250.c +++ b/drivers/serial/8250.c @@ -199,7 +199,11 @@ static const struct serial8250_config uart_config[] = { [PORT_16550A] = { .name = "16550A", .fifo_size = 16, +#ifndef CONFIG_XBURST .tx_loadsz = 16, +#else + .tx_loadsz = 8, +#endif .fcr = UART_FCR_ENABLE_FIFO | UART_FCR_R_TRIG_10, .flags = UART_CAP_FIFO, }, @@ -406,6 +410,10 @@ static unsigned int mem_serial_in(struct uart_port *p, int offset) static void mem_serial_out(struct uart_port *p, int offset, int value) { offset = map_8250_out_reg(p, offset) << p->regshift; +#if defined(CONFIG_XBURST) + if (offset == (UART_FCR << p->regshift)) + value |= 0x10; /* set FCR.UUE */ +#endif writeb(value, p->membase + offset); } @@ -2354,6 +2362,10 @@ serial8250_set_termios(struct uart_port *port, struct ktermios *termios, if (up->capabilities & UART_CAP_UUE) up->ier |= UART_IER_UUE | UART_IER_RTOIE; +#ifdef CONFIG_XBURST + up->ier |= UART_IER_RTOIE; /* Set this flag, or very slow */ +#endif + serial_out(up, UART_IER, up->ier); if (up->capabilities & UART_CAP_EFR) { -- 1.6.4