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

Pull serial driver fixes from Greg KH:
"Here are three small serial driver fixes for 6.19-rc7 that resolve
some reported issues. They include:

- tty->port race condition fix for a reported problem

- qcom_geni serial driver fix

- 8250_pci serial driver fix

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

* tag 'tty-6.19-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
serial: Fix not set tty->port race condition
serial: 8250_pci: Fix broken RS485 for F81504/508/512
serial: qcom_geni: Fix BT failure regression on RB2 platform

+13 -8
+1 -1
drivers/tty/serial/8250/8250_pci.c
··· 1658 } 1659 1660 static const struct serial_rs485 pci_fintek_rs485_supported = { 1661 - .flags = SER_RS485_ENABLED | SER_RS485_RTS_ON_SEND, 1662 /* F81504/508/512 does not support RTS delay before or after send */ 1663 }; 1664
··· 1658 } 1659 1660 static const struct serial_rs485 pci_fintek_rs485_supported = { 1661 + .flags = SER_RS485_ENABLED | SER_RS485_RTS_ON_SEND | SER_RS485_RTS_AFTER_SEND, 1662 /* F81504/508/512 does not support RTS delay before or after send */ 1663 }; 1664
+6 -7
drivers/tty/serial/qcom_geni_serial.c
··· 1888 if (ret) 1889 goto error; 1890 1891 - devm_pm_runtime_enable(port->se.dev); 1892 - 1893 - ret = uart_add_one_port(drv, uport); 1894 - if (ret) 1895 - goto error; 1896 - 1897 if (port->wakeup_irq > 0) { 1898 device_init_wakeup(&pdev->dev, true); 1899 ret = dev_pm_set_dedicated_wake_irq(&pdev->dev, ··· 1895 if (ret) { 1896 device_init_wakeup(&pdev->dev, false); 1897 ida_free(&port_ida, uport->line); 1898 - uart_remove_one_port(drv, uport); 1899 goto error; 1900 } 1901 } 1902 1903 return 0; 1904
··· 1888 if (ret) 1889 goto error; 1890 1891 if (port->wakeup_irq > 0) { 1892 device_init_wakeup(&pdev->dev, true); 1893 ret = dev_pm_set_dedicated_wake_irq(&pdev->dev, ··· 1901 if (ret) { 1902 device_init_wakeup(&pdev->dev, false); 1903 ida_free(&port_ida, uport->line); 1904 goto error; 1905 } 1906 } 1907 + 1908 + devm_pm_runtime_enable(port->se.dev); 1909 + 1910 + ret = uart_add_one_port(drv, uport); 1911 + if (ret) 1912 + goto error; 1913 1914 return 0; 1915
+6
drivers/tty/serial/serial_core.c
··· 3074 if (uport->cons && uport->dev) 3075 of_console_check(uport->dev->of_node, uport->cons->name, uport->line); 3076 3077 uart_configure_port(drv, state, uport); 3078 3079 port->console = uart_console(uport);
··· 3074 if (uport->cons && uport->dev) 3075 of_console_check(uport->dev->of_node, uport->cons->name, uport->line); 3076 3077 + /* 3078 + * TTY port has to be linked with the driver before register_console() 3079 + * in uart_configure_port(), because user-space could open the console 3080 + * immediately after. 3081 + */ 3082 + tty_port_link_device(port, drv->tty_driver, uport->line); 3083 uart_configure_port(drv, state, uport); 3084 3085 port->console = uart_console(uport);