net: stmmac: fix reset gpio free missing
authorJisheng Zhang <Jisheng.Zhang@synaptics.com>
Wed, 22 May 2019 10:05:09 +0000 (10:05 +0000)
committerBen Hutchings <ben@decadent.org.uk>
Sat, 5 Oct 2019 15:19:42 +0000 (16:19 +0100)
commit 49ce881c0d4c4a7a35358d9dccd5f26d0e56fc61 upstream.

Commit 984203ceff27 ("net: stmmac: mdio: remove reset gpio free")
removed the reset gpio free, when the driver is unbinded or rmmod,
we miss the gpio free.

This patch uses managed API to request the reset gpio, so that the
gpio could be freed properly.

Fixes: 984203ceff27 ("net: stmmac: mdio: remove reset gpio free")
Signed-off-by: Jisheng Zhang <Jisheng.Zhang@synaptics.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
[bwh: Backported to 3.16: adjust context]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c

index a5b1e1b776fe3313c5c9852062ed66ea1547c285..45dcffb88773c9b35d8d563aecc50fe6e67158b2 100644 (file)
@@ -159,7 +159,8 @@ int stmmac_mdio_reset(struct mii_bus *bus)
                reset_gpio = data->reset_gpio;
                active_low = data->active_low;
 
-               if (!gpio_request(reset_gpio, "mdio-reset")) {
+               if (!devm_gpio_request(priv->device, reset_gpio,
+                                     "mdio-reset")) {
                        gpio_direction_output(reset_gpio, active_low ? 1 : 0);
                        udelay(data->delays[0]);
                        gpio_set_value(reset_gpio, active_low ? 0 : 1);