|
|
@@ -2586,8 +2586,11 @@ static void serial8250_set_divisor(struct uart_port *port, unsigned int baud,
|
|
|
serial_dl_write(up, quot);
|
|
|
|
|
|
/* XR17V35x UARTs have an extra fractional divisor register (DLD) */
|
|
|
- if (up->port.type == PORT_XR17V35X)
|
|
|
+ if (up->port.type == PORT_XR17V35X) {
|
|
|
+ /* Preserve bits not related to baudrate; DLD[7:4]. */
|
|
|
+ quot_frac |= serial_port_in(port, 0x2) & 0xf0;
|
|
|
serial_port_out(port, 0x2, quot_frac);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
static unsigned int serial8250_get_baud_rate(struct uart_port *port,
|