--- a/drivers/serial/8250.c
+++ b/drivers/serial/8250.c
-@@ -196,7 +196,7 @@ static const struct serial8250_config ua
+@@ -199,7 +199,7 @@ static const struct serial8250_config ua
[PORT_16550A] = {
.name = "16550A",
.fifo_size = 16,
.fcr = UART_FCR_ENABLE_FIFO | UART_FCR_R_TRIG_10,
.flags = UART_CAP_FIFO,
},
-@@ -403,6 +403,10 @@ static unsigned int mem_serial_in(struct
+@@ -406,6 +406,10 @@ static unsigned int mem_serial_in(struct
static void mem_serial_out(struct uart_port *p, int offset, int value)
{
offset = map_8250_out_reg(p, offset) << p->regshift;
writeb(value, p->membase + offset);
}
-@@ -2213,6 +2217,83 @@ static void serial8250_shutdown(struct u
+@@ -2214,6 +2218,83 @@ static void serial8250_shutdown(struct u
serial_unlink_irq_chain(up);
}
static unsigned int serial8250_get_divisor(struct uart_port *port, unsigned int baud)
{
unsigned int quot;
-@@ -2232,6 +2313,7 @@ static unsigned int serial8250_get_divis
+@@ -2233,6 +2314,7 @@ static unsigned int serial8250_get_divis
return quot;
}
static void
serial8250_set_termios(struct uart_port *port, struct ktermios *termios,
-@@ -2241,6 +2323,9 @@ serial8250_set_termios(struct uart_port
+@@ -2242,6 +2324,9 @@ serial8250_set_termios(struct uart_port
unsigned char cval, fcr = 0;
unsigned long flags;
unsigned int baud, quot;
switch (termios->c_cflag & CSIZE) {
case CS5:
-@@ -2275,7 +2360,12 @@ serial8250_set_termios(struct uart_port
+@@ -2276,7 +2361,12 @@ serial8250_set_termios(struct uart_port
baud = uart_get_baud_rate(port, termios, old,
port->uartclk / 16 / 0xffff,
port->uartclk / 16);
/*
* Oxford Semi 952 rev B workaround
-@@ -2353,6 +2443,10 @@ serial8250_set_termios(struct uart_port
+@@ -2354,6 +2444,10 @@ serial8250_set_termios(struct uart_port
if (up->capabilities & UART_CAP_UUE)
up->ier |= UART_IER_UUE | UART_IER_RTOIE;
serial_out(up, UART_IER, up->ier);
if (up->capabilities & UART_CAP_EFR) {
-@@ -2387,7 +2481,15 @@ serial8250_set_termios(struct uart_port
+@@ -2388,7 +2482,15 @@ serial8250_set_termios(struct uart_port
serial_outp(up, UART_LCR, cval | UART_LCR_DLAB);/* set DLAB */
}