Skip to content

Commit

Permalink
serial: atmel: fix error handling when mctrl_gpio_init fails
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Uwe Kleine-König authored and gregkh committed Mar 7, 2015
1 parent c89b737 commit 722ccf4
Showing 1 changed file with 6 additions and 5 deletions.
11 changes: 6 additions & 5 deletions drivers/tty/serial/atmel_serial.c
Original file line number Diff line number Diff line change
Expand Up @@ -2542,8 +2542,8 @@ static int atmel_init_gpios(struct atmel_uart_port *p, struct device *dev)
struct gpio_desc *gpiod;

p->gpios = mctrl_gpio_init(dev, 0);
if (IS_ERR_OR_NULL(p->gpios))
return -1;
if (IS_ERR(p->gpios))
return PTR_ERR(p->gpios);

for (i = 0; i < UART_GPIO_MAX; i++) {
gpiod = mctrl_gpio_to_gpiod(p->gpios, i);
Expand Down Expand Up @@ -2594,9 +2594,10 @@ static int atmel_serial_probe(struct platform_device *pdev)
port->uart.line = ret;

ret = atmel_init_gpios(port, &pdev->dev);
if (ret < 0)
dev_err(&pdev->dev, "%s",
"Failed to initialize GPIOs. The serial port may not work as expected");
if (ret < 0) {
dev_err(&pdev->dev, "Failed to initialize GPIOs.");
goto err;
}

ret = atmel_init_port(port, pdev);
if (ret)
Expand Down

0 comments on commit 722ccf4

Please sign in to comment.