From 054c0d4e31932abeee6d92904642ebb9fd186638 Mon Sep 17 00:00:00 2001 From: Jonas Gorski Date: Wed, 6 Dec 2017 14:12:06 +0100 Subject: brcm63xx: backport mdio-bus reset gpio support Backport the mdio-bus reset gpio support from 4.12 and use it instead of toggling the reset ourself. Signed-off-by: Jonas Gorski --- ...3-03-mdio_bus-use-devm_gpiod_get_optional.patch | 39 ++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 target/linux/brcm63xx/patches-4.4/001-4.13-03-mdio_bus-use-devm_gpiod_get_optional.patch (limited to 'target/linux/brcm63xx/patches-4.4/001-4.13-03-mdio_bus-use-devm_gpiod_get_optional.patch') diff --git a/target/linux/brcm63xx/patches-4.4/001-4.13-03-mdio_bus-use-devm_gpiod_get_optional.patch b/target/linux/brcm63xx/patches-4.4/001-4.13-03-mdio_bus-use-devm_gpiod_get_optional.patch new file mode 100644 index 0000000000..d7ac6234cf --- /dev/null +++ b/target/linux/brcm63xx/patches-4.4/001-4.13-03-mdio_bus-use-devm_gpiod_get_optional.patch @@ -0,0 +1,39 @@ +From fe0e4052fb11d5c713961ab7e136520be40052a3 Mon Sep 17 00:00:00 2001 +From: Sergei Shtylyov +Date: Mon, 12 Jun 2017 23:55:39 +0300 +Subject: [PATCH] mdio_bus: use devm_gpiod_get_optional() + +The MDIO reset GPIO is really a classical optional GPIO property case, +so devm_gpiod_get_optional() should have been used, not devm_gpiod_get(). +Doing this saves several LoCs... + +Signed-off-by: Sergei Shtylyov +Signed-off-by: David S. Miller +--- + drivers/net/phy/mdio_bus.c | 14 +++++--------- + 1 file changed, 5 insertions(+), 9 deletions(-) + +--- a/drivers/net/phy/mdio_bus.c ++++ b/drivers/net/phy/mdio_bus.c +@@ -280,16 +280,12 @@ int __mdiobus_register(struct mii_bus *b + mutex_init(&bus->mdio_lock); + + /* de-assert bus level PHY GPIO reset */ +- gpiod = devm_gpiod_get(&bus->dev, "reset", GPIOD_OUT_LOW); ++ gpiod = devm_gpiod_get_optional(&bus->dev, "reset", GPIOD_OUT_LOW); + if (IS_ERR(gpiod)) { +- err = PTR_ERR(gpiod); +- if (err != -ENOENT) { +- dev_err(&bus->dev, +- "mii_bus %s couldn't get reset GPIO\n", +- bus->id); +- return err; +- } +- } else { ++ dev_err(&bus->dev, "mii_bus %s couldn't get reset GPIO\n", ++ bus->id); ++ return PTR_ERR(gpiod); ++ } else if (gpiod) { + bus->reset_gpiod = gpiod; + + gpiod_set_value_cansleep(gpiod, 1); -- cgit v1.2.3