[PATCH] serial/imx: propagate error from of_alias_get_id instead of using -ENODEV

Uwe Kleine-König u.kleine-koenig at pengutronix.de
Wed Dec 14 15:31:53 EST 2011


Hello,

On Wed, Dec 14, 2011 at 09:26:51PM +0100, Uwe Kleine-König wrote:
> A quick look at of_alias_get_id shows that in the error case it returns
> -ENODEV, too, but still it's better style to propagate the value as is.
> 
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig at pengutronix.de>
> Cc: Shawn Guo <shawn.guo at linaro.org>
> Cc: Alan Cox <alan at linux.intel.com>
> Cc: Grant Likely <grant.likely at secretlab.ca>
> Cc: Jeremy Kerr <jeremy.kerr at canonical.com>
> Cc: Jason Liu <jason.hui at linaro.org>
> Cc: Sascha Hauer <s.hauer at pengutronix.de>
> ---
>  drivers/tty/serial/imx.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/drivers/tty/serial/imx.c b/drivers/tty/serial/imx.c
> index 163fc90..75c159a 100644
> --- a/drivers/tty/serial/imx.c
> +++ b/drivers/tty/serial/imx.c
> @@ -1301,7 +1301,7 @@ static int serial_imx_probe_dt(struct imx_port *sport,
>  	ret = of_alias_get_id(np, "serial");
>  	if (ret < 0) {
>  		dev_err(&pdev->dev, "failed to get alias id, errno %d\n", ret);
> -		return -ENODEV;
> +		return ret;
>  	}
>  	sport->port.line = ret;
>  
One more comment on serial_imx_probe_dt:

It is used as follows:

        ret = serial_imx_probe_dt(sport, pdev);
	if (ret == -ENODEV)
		serial_imx_probe_pdata(sport, pdev);

IMHO you should distinguish here more carefully between the different
-ENODEV cases. It's OK to call serial_imx_probe_pdata() if

	!pdev->dev.of_node

but if

	of_alias_get_id(np, "serial")

returns an error isn't that something that should make the probing of
the device fail instead of relying on platform data and the device id
that are non-existant and more or less random respectively if the device
is instantiated by dt?

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |



More information about the linux-arm-kernel mailing list