serial: Allow uart_get_rs485_mode() to return errno
We're about to amend uart_get_rs485_mode() to support a GPIO pin for rs485 bus termination. Retrieving the GPIO descriptor may fail, so allow uart_get_rs485_mode() to return an errno and change all callers to check for failure. The GPIO descriptor is going to be stored in struct uart_port. Pass that struct to uart_get_rs485_mode() in lieu of a struct device and struct serial_rs485, both of which are directly accessible from struct uart_port. A few drivers call uart_get_rs485_mode() before setting the struct device pointer in struct uart_port. Shuffle those calls around where necessary. [Heiko Stuebner did the ar933x_uart.c portion, hence his Signed-off-by.] Signed-off-by: Heiko Stuebner <heiko@sntech.de> Signed-off-by: Lukas Wunner <lukas@wunner.de> Link: https://lore.kernel.org/r/271e814af4b0db3bffbbb74abf2b46b75add4516.1589285873.git.lukas@wunner.de Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:

committed by
Greg Kroah-Hartman

parent
e0a851fe6b
commit
c150c0f362
@@ -159,9 +159,7 @@ static int stm32_init_rs485(struct uart_port *port,
|
||||
if (!pdev->dev.of_node)
|
||||
return -ENODEV;
|
||||
|
||||
uart_get_rs485_mode(&pdev->dev, rs485conf);
|
||||
|
||||
return 0;
|
||||
return uart_get_rs485_mode(port);
|
||||
}
|
||||
|
||||
static int stm32_pending_rx(struct uart_port *port, u32 *sr, int *last_res,
|
||||
@@ -959,7 +957,9 @@ static int stm32_init_port(struct stm32_port *stm32port,
|
||||
|
||||
port->rs485_config = stm32_config_rs485;
|
||||
|
||||
stm32_init_rs485(port, pdev);
|
||||
ret = stm32_init_rs485(port, pdev);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
if (stm32port->info->cfg.has_wakeup) {
|
||||
stm32port->wakeirq = platform_get_irq(pdev, 1);
|
||||
|
Reference in New Issue
Block a user