Hi, 2017-11-11 7:20 GMT+09:00 Marek Vasut <marek.va...@gmail.com>: > Fix handling of the reset GPIO. Drop the _nodev() suffix from the > gpio_request_by_name() call as there is now a proper DM capable > GPIO driver. Also check if the GPIO is valid before freeing it in > remove path, otherwise U-Boot will crash.
Thanks for this patch. I was just struggling with this problem. > > Signed-off-by: Marek Vasut <marek.vasut+rene...@gmail.com> > Cc: Joe Hershberger <joe.hershber...@ni.com> > Cc: Nobuhiro Iwamatsu <iwama...@nigauri.org> Acked-by: Nobuhiro Iwamatsu <iwama...@nigauri.org> Best regards, Nobuhiro > --- > drivers/net/ravb.c | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > > diff --git a/drivers/net/ravb.c b/drivers/net/ravb.c > index dc7a52534e..26d95f178f 100644 > --- a/drivers/net/ravb.c > +++ b/drivers/net/ravb.c > @@ -492,8 +492,8 @@ static int ravb_probe(struct udevice *dev) > if (ret < 0) > goto err_mdio_alloc; > > - gpio_request_by_name_nodev(dev_ofnode(dev), "reset-gpios", 0, > - ð->reset_gpio, GPIOD_IS_OUT); > + gpio_request_by_name(dev, "reset-gpios", 0, ð->reset_gpio, > + GPIOD_IS_OUT); > > mdiodev = mdio_alloc(); > if (!mdiodev) { > @@ -528,7 +528,8 @@ static int ravb_remove(struct udevice *dev) > free(eth->phydev); > mdio_unregister(eth->bus); > mdio_free(eth->bus); > - dm_gpio_free(dev, ð->reset_gpio); > + if (dm_gpio_is_valid(ð->reset_gpio)) > + dm_gpio_free(dev, ð->reset_gpio); > unmap_physmem(eth->iobase, MAP_NOCACHE); > > return 0; > -- > 2.11.0 > -- Nobuhiro Iwamatsu iwamatsu at {nigauri.org / debian.org} GPG ID: 40AD1FA6 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot