Message ID | 20200903142719.13010-5-prabhakar.mahadev-lad.rj@bp.renesas.com (mailing list archive) |
---|---|
State | Rejected |
Headers | show |
Series | serial mctrl_gpio/sh-sci Fixes | expand |
Hi! > 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. Quick git log shows that "serial: mctrl_gpio: Avoid probe failures" is not mentioned in 4.4 commit history. That very probably means that this patch is not safe for 4.4 (situation similar to previous patch). NAK. Best regards, Pavel > +++ b/drivers/tty/serial/sh-sci.c > @@ -1871,12 +1871,12 @@ static unsigned int sci_get_mctrl(struct uart_port *port) > if (s->autorts) { > if (sci_get_cts(port)) > mctrl |= TIOCM_CTS; > - } else if (IS_ERR_OR_NULL(mctrl_gpio_to_gpiod(gpios, UART_GPIO_CTS))) { > + } else if (!mctrl_gpio_to_gpiod(gpios, UART_GPIO_CTS)) { > mctrl |= TIOCM_CTS; > } > - if (IS_ERR_OR_NULL(mctrl_gpio_to_gpiod(gpios, UART_GPIO_DSR))) > + if (!mctrl_gpio_to_gpiod(gpios, UART_GPIO_DSR)) > mctrl |= TIOCM_DSR; > - if (IS_ERR_OR_NULL(mctrl_gpio_to_gpiod(gpios, UART_GPIO_DCD))) > + if (!mctrl_gpio_to_gpiod(gpios, UART_GPIO_DCD)) > mctrl |= TIOCM_CAR; > > return mctrl; > @@ -2782,10 +2782,8 @@ static int sci_probe_single(struct platform_device *dev, > return PTR_ERR(sciport->gpios); > > if (p->capabilities & SCIx_HAVE_RTSCTS) { > - if (!IS_ERR_OR_NULL(mctrl_gpio_to_gpiod(sciport->gpios, > - UART_GPIO_CTS)) || > - !IS_ERR_OR_NULL(mctrl_gpio_to_gpiod(sciport->gpios, > - UART_GPIO_RTS))) { > + if (mctrl_gpio_to_gpiod(sciport->gpios, UART_GPIO_CTS) || > + mctrl_gpio_to_gpiod(sciport->gpios, UART_GPIO_RTS)) { > dev_err(&dev->dev, "Conflicting RTS/CTS config\n"); > return -EINVAL; > } > -- > 2.17.1 >
diff --git a/drivers/tty/serial/sh-sci.c b/drivers/tty/serial/sh-sci.c index 7d7008e4dc75..c40cf1cb45d2 100644 --- a/drivers/tty/serial/sh-sci.c +++ b/drivers/tty/serial/sh-sci.c @@ -1871,12 +1871,12 @@ static unsigned int sci_get_mctrl(struct uart_port *port) if (s->autorts) { if (sci_get_cts(port)) mctrl |= TIOCM_CTS; - } else if (IS_ERR_OR_NULL(mctrl_gpio_to_gpiod(gpios, UART_GPIO_CTS))) { + } else if (!mctrl_gpio_to_gpiod(gpios, UART_GPIO_CTS)) { mctrl |= TIOCM_CTS; } - if (IS_ERR_OR_NULL(mctrl_gpio_to_gpiod(gpios, UART_GPIO_DSR))) + if (!mctrl_gpio_to_gpiod(gpios, UART_GPIO_DSR)) mctrl |= TIOCM_DSR; - if (IS_ERR_OR_NULL(mctrl_gpio_to_gpiod(gpios, UART_GPIO_DCD))) + if (!mctrl_gpio_to_gpiod(gpios, UART_GPIO_DCD)) mctrl |= TIOCM_CAR; return mctrl; @@ -2782,10 +2782,8 @@ static int sci_probe_single(struct platform_device *dev, return PTR_ERR(sciport->gpios); if (p->capabilities & SCIx_HAVE_RTSCTS) { - if (!IS_ERR_OR_NULL(mctrl_gpio_to_gpiod(sciport->gpios, - UART_GPIO_CTS)) || - !IS_ERR_OR_NULL(mctrl_gpio_to_gpiod(sciport->gpios, - UART_GPIO_RTS))) { + if (mctrl_gpio_to_gpiod(sciport->gpios, UART_GPIO_CTS) || + mctrl_gpio_to_gpiod(sciport->gpios, UART_GPIO_RTS)) { dev_err(&dev->dev, "Conflicting RTS/CTS config\n"); return -EINVAL; }