linux-mips
[Top] [All Lists]

[PATCH 4/5] 8250: Allow port type to specify bugs that are not probed fo

To: linux-serial@vger.kernel.org, akpm@linux-foundation.org, alan@lxorguk.ukuu.org.uk
Subject: [PATCH 4/5] 8250: Allow port type to specify bugs that are not probed for.
From: David Daney <ddaney@caviumnetworks.com>
Date: Tue, 25 Nov 2008 16:18:38 -0800
Cc: linux-mips@linux-mips.org, David Daney <ddaney@caviumnetworks.com>
In-reply-to: <492C94FC.9070906@caviumnetworks.com>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <492C94FC.9070906@caviumnetworks.com>
Sender: linux-mips-bounce@linux-mips.org
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@caviumnetworks.com>
---
 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 3ae4974..3bb8e30 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;
@@ -3065,6 +3066,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_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


<Prev in Thread] Current Thread [Next in Thread>