mirror of https://gitee.com/openkylin/linux.git
serial: atmel: fix error handling when mctrl_gpio_init fails
mctrl_gpio_init at present doesn't return NULL. (It might be used in the future when no gpios are to be used indicating success.) Properly pass error returned and also make driver probing fail on error. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
c89b73703e
commit
722ccf416a
|
@ -2542,8 +2542,8 @@ static int atmel_init_gpios(struct atmel_uart_port *p, struct device *dev)
|
||||||
struct gpio_desc *gpiod;
|
struct gpio_desc *gpiod;
|
||||||
|
|
||||||
p->gpios = mctrl_gpio_init(dev, 0);
|
p->gpios = mctrl_gpio_init(dev, 0);
|
||||||
if (IS_ERR_OR_NULL(p->gpios))
|
if (IS_ERR(p->gpios))
|
||||||
return -1;
|
return PTR_ERR(p->gpios);
|
||||||
|
|
||||||
for (i = 0; i < UART_GPIO_MAX; i++) {
|
for (i = 0; i < UART_GPIO_MAX; i++) {
|
||||||
gpiod = mctrl_gpio_to_gpiod(p->gpios, i);
|
gpiod = mctrl_gpio_to_gpiod(p->gpios, i);
|
||||||
|
@ -2594,9 +2594,10 @@ static int atmel_serial_probe(struct platform_device *pdev)
|
||||||
port->uart.line = ret;
|
port->uart.line = ret;
|
||||||
|
|
||||||
ret = atmel_init_gpios(port, &pdev->dev);
|
ret = atmel_init_gpios(port, &pdev->dev);
|
||||||
if (ret < 0)
|
if (ret < 0) {
|
||||||
dev_err(&pdev->dev, "%s",
|
dev_err(&pdev->dev, "Failed to initialize GPIOs.");
|
||||||
"Failed to initialize GPIOs. The serial port may not work as expected");
|
goto err;
|
||||||
|
}
|
||||||
|
|
||||||
ret = atmel_init_port(port, pdev);
|
ret = atmel_init_port(port, pdev);
|
||||||
if (ret)
|
if (ret)
|
||||||
|
|
Loading…
Reference in New Issue