Add a bugs field to the serial8250_config and propagate it to the port's bugs field when the port is registered and configured. This is a follow on to the previous patch. Now that we can specify the port type and don't have to probe for it, we can avoid probing for bugs if they are known with certainty to exist. The alternative is to load up 8250.c with a bunch of OCTEON specific special cases in the probing code. Signed-off-by: David Daney <ddaney@xxxxxxxxxxxxxxxxxx> --- drivers/serial/8250.c | 2 ++ drivers/serial/8250.h | 1 + 2 files changed, 3 insertions(+), 0 deletions(-) diff --git a/drivers/serial/8250.c b/drivers/serial/8250.c index 9d16abb..474ab89 100644 --- a/drivers/serial/8250.c +++ b/drivers/serial/8250.c @@ -1212,6 +1212,7 @@ static void autoconfig(struct uart_8250_port *up, unsigned int probeflags) up->port.fifosize = uart_config[up->port.type].fifo_size; up->capabilities = uart_config[up->port.type].flags; up->tx_loadsz = uart_config[up->port.type].tx_loadsz; + up->bugs |= uart_config[up->port.type].bugs; if (up->port.type == PORT_UNKNOWN) goto out; @@ -3062,6 +3063,7 @@ int serial8250_register_port(struct uart_port *port) uart->port.fifosize = uart_config[port->type].fifo_size; uart->capabilities = uart_config[port->type].flags; uart->tx_loadsz = uart_config[port->type].tx_loadsz; + uart->bugs = uart_config[port->type].bugs; } set_io_fns_from_upio(&uart->port); diff --git a/drivers/serial/8250.h b/drivers/serial/8250.h index 5202603..c9b3002 100644 --- a/drivers/serial/8250.h +++ b/drivers/serial/8250.h @@ -34,6 +34,7 @@ struct serial8250_config { const char *name; unsigned short fifo_size; unsigned short tx_loadsz; + unsigned short bugs; unsigned char fcr; unsigned int flags; }; -- 1.5.6.5