Re: [PATCH v2] net: mdio: switch to using gpiod_get_optional()

From: Dmitry Torokhov
Date: Sun Sep 15 2019 - 02:05:43 EST


On Sat, Sep 14, 2019 at 08:09:33PM +0300, Andy Shevchenko wrote:
> On Fri, Sep 13, 2019 at 03:55:47PM -0700, Dmitry Torokhov wrote:
> > The MDIO device reset line is optional and now that gpiod_get_optional()
> > returns proper value when GPIO support is compiled out, there is no
> > reason to use fwnode_get_named_gpiod() that I plan to hide away.
> >
> > Let's switch to using more standard gpiod_get_optional() and
> > gpiod_set_consumer_name() to keep the nice "PHY reset" label.
> >
> > Also there is no reason to only try to fetch the reset GPIO when we have
> > OF node, gpiolib can fetch GPIO data from firmwares as well.
> >
>
> Reviewed-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>

Thanks Andy.

>
> But see comment below.
>

> > + mdiodev->reset_gpio = gpiod_get_optional(&mdiodev->dev,
> > + "reset", GPIOD_OUT_LOW);
> > + error = PTR_ERR_OR_ZERO(mdiodev->reset_gpio);
> > + if (error)
> > + return error;
> > +
>
> > + if (mdiodev->reset_gpio)
>
> This is redundant check.

I see that gpiod_* API handle NULL desc and usually return immediately,
but frankly I am not that comfortable with it. I'm OK with functions
that free/destroy objects that recognize NULL resources, but it is
unusual for other types of APIs.

Thanks.

--
Dmitry