Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'tty-4.6-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty

Pull serial fixes from Greg KH:
"Here are 3 serial driver fixes for issues that have been reported.

Two are reverts, fixing problems that were in the big TTY/Serial
driver merge in 4.6-rc1, and the last one is a simple bugfix for a
regression that showed up in 4.6-rc1 as well.

All have been in linux-next with no reported issues"

* tag 'tty-4.6-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
Revert "serial: 8250: Add hardware dependency to RT288X option"
tty/serial/8250: fix RS485 half-duplex RX
Revert "serial-uartlite: Constify uartlite_be/uartlite_le"

+14 -6
+10 -1
drivers/tty/serial/8250/8250_port.c
··· 1403 1403 /* 1404 1404 * Empty the RX FIFO, we are not interested in anything 1405 1405 * received during the half-duplex transmission. 1406 + * Enable previously disabled RX interrupts. 1406 1407 */ 1407 - if (!(p->port.rs485.flags & SER_RS485_RX_DURING_TX)) 1408 + if (!(p->port.rs485.flags & SER_RS485_RX_DURING_TX)) { 1408 1409 serial8250_clear_fifos(p); 1410 + 1411 + serial8250_rpm_get(p); 1412 + 1413 + p->ier |= UART_IER_RLSI | UART_IER_RDI; 1414 + serial_port_out(&p->port, UART_IER, p->ier); 1415 + 1416 + serial8250_rpm_put(p); 1417 + } 1409 1418 } 1410 1419 1411 1420 static void serial8250_em485_handle_stop_tx(unsigned long arg)
-1
drivers/tty/serial/8250/Kconfig
··· 324 324 config SERIAL_8250_RT288X 325 325 bool "Ralink RT288x/RT305x/RT3662/RT3883 serial port support" 326 326 depends on SERIAL_8250 327 - depends on MIPS || COMPILE_TEST 328 327 default y if MIPS_ALCHEMY || SOC_RT288X || SOC_RT305X || SOC_RT3883 || SOC_MT7620 329 328 help 330 329 Selecting this option will add support for the alternate register
+4 -4
drivers/tty/serial/uartlite.c
··· 72 72 iowrite32be(val, addr); 73 73 } 74 74 75 - static const struct uartlite_reg_ops uartlite_be = { 75 + static struct uartlite_reg_ops uartlite_be = { 76 76 .in = uartlite_inbe32, 77 77 .out = uartlite_outbe32, 78 78 }; ··· 87 87 iowrite32(val, addr); 88 88 } 89 89 90 - static const struct uartlite_reg_ops uartlite_le = { 90 + static struct uartlite_reg_ops uartlite_le = { 91 91 .in = uartlite_inle32, 92 92 .out = uartlite_outle32, 93 93 }; 94 94 95 95 static inline u32 uart_in32(u32 offset, struct uart_port *port) 96 96 { 97 - const struct uartlite_reg_ops *reg_ops = port->private_data; 97 + struct uartlite_reg_ops *reg_ops = port->private_data; 98 98 99 99 return reg_ops->in(port->membase + offset); 100 100 } 101 101 102 102 static inline void uart_out32(u32 val, u32 offset, struct uart_port *port) 103 103 { 104 - const struct uartlite_reg_ops *reg_ops = port->private_data; 104 + struct uartlite_reg_ops *reg_ops = port->private_data; 105 105 106 106 reg_ops->out(val, port->membase + offset); 107 107 }