提交 722ccf41 编写于 作者: U Uwe Kleine-König 提交者: Greg Kroah-Hartman

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: NUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
上级 c89b7370
...@@ -2542,8 +2542,8 @@ static int atmel_init_gpios(struct atmel_uart_port *p, struct device *dev) ...@@ -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) ...@@ -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)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册