Hi, Le 14/08/2019 à 12:20, Geert Uytterhoeven a écrit : > Hi Uwe, > > On Wed, Aug 14, 2019 at 11:36 AM Uwe Kleine-König > <u.kleine-koenig@xxxxxxxxxxxxxx> wrote: >> On Wed, Aug 14, 2019 at 11:29:22AM +0200, Geert Uytterhoeven wrote: >>> Since commit 1d267ea6539f2663 ("serial: mctrl-gpio: simplify init >>> routine"), mctrl_gpio_init() returns failure if the assignment to any >>> member of the gpio array results in an error pointer. >>> Since commit c359522194593815 ("serial: mctrl_gpio: Avoid probe failures >>> in case of missing gpiolib"), mctrl_gpio_to_gpiod() returns NULL in the >>> !CONFIG_GPIOLIB case. >>> Hence there is no longer a need to check for mctrl_gpio_to_gpiod() >>> returning an error value. A simple NULL check is sufficient. >>> >>> This follows the spirit of commit 445df7ff3fd1a0a9 ("serial: mctrl-gpio: >>> drop usages of IS_ERR_OR_NULL") in the mctrl-gpio core. >>> >>> Signed-off-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx> >>> --- >>> drivers/tty/serial/atmel_serial.c | 12 ++++-------- >>> 1 file changed, 4 insertions(+), 8 deletions(-) >>> >>> diff --git a/drivers/tty/serial/atmel_serial.c b/drivers/tty/serial/atmel_serial.c >>> index 19a85d6fe3d20541..e9620a81166b7dc1 100644 >>> --- a/drivers/tty/serial/atmel_serial.c >>> +++ b/drivers/tty/serial/atmel_serial.c >>> @@ -303,32 +303,28 @@ static unsigned int atmel_get_lines_status(struct uart_port *port) >>> >>> mctrl_gpio_get(atmel_port->gpios, &ret); >>> >>> - if (!IS_ERR_OR_NULL(mctrl_gpio_to_gpiod(atmel_port->gpios, >>> - UART_GPIO_CTS))) { >>> + if (mctrl_gpio_to_gpiod(atmel_port->gpios, UART_GPIO_CTS)) { >>> if (ret & TIOCM_CTS) >>> status &= ~ATMEL_US_CTS; >>> else >>> status |= ATMEL_US_CTS; >>> } >> >> The change is fine, but it seems the atmel driver doesn't use mctrl_gpio >> as expected (at least as expected by me). IMHO driving the hardware >> function of the CTS pin shouldn't be conditional on the presence of a >> cts-gpio. Is there a reason not to just drop the if completely? > > The above code returns the hardware status if CTS is not a GPIO, and > returns (overrides with) the GPIO status if CTS is a GPIO. > Isn't that correct, or am I missing something? Yes, that's correct.