aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCharles Keepax <ckeepax@opensource.wolfsonmicro.com>2016-03-28 08:47:42 -0400
committerDavid S. Miller <davem@davemloft.net>2016-03-28 11:39:16 -0400
commit0e3e7999703e7df93a9deee8ba89b604c5fd662d (patch)
tree654f202dc57e4b8a4af2e7016bf7de5781666bea
parent9832ce4c0bb90e4dcedf4280947341b1eb6728e6 (diff)
net: macb: Only call GPIO functions if there is a valid GPIO
GPIOlib will print warning messages if we call GPIO functions without a valid GPIO. Change the code to avoid doing so. Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/ethernet/cadence/macb.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/net/ethernet/cadence/macb.c b/drivers/net/ethernet/cadence/macb.c
index 6c3dc27cb100..48a7d7dee846 100644
--- a/drivers/net/ethernet/cadence/macb.c
+++ b/drivers/net/ethernet/cadence/macb.c
@@ -2996,9 +2996,10 @@ static int macb_probe(struct platform_device *pdev)
2996 phy_node = of_get_next_available_child(np, NULL); 2996 phy_node = of_get_next_available_child(np, NULL);
2997 if (phy_node) { 2997 if (phy_node) {
2998 int gpio = of_get_named_gpio(phy_node, "reset-gpios", 0); 2998 int gpio = of_get_named_gpio(phy_node, "reset-gpios", 0);
2999 if (gpio_is_valid(gpio)) 2999 if (gpio_is_valid(gpio)) {
3000 bp->reset_gpio = gpio_to_desc(gpio); 3000 bp->reset_gpio = gpio_to_desc(gpio);
3001 gpiod_direction_output(bp->reset_gpio, 1); 3001 gpiod_direction_output(bp->reset_gpio, 1);
3002 }
3002 } 3003 }
3003 of_node_put(phy_node); 3004 of_node_put(phy_node);
3004 3005
@@ -3068,7 +3069,8 @@ static int macb_remove(struct platform_device *pdev)
3068 mdiobus_free(bp->mii_bus); 3069 mdiobus_free(bp->mii_bus);
3069 3070
3070 /* Shutdown the PHY if there is a GPIO reset */ 3071 /* Shutdown the PHY if there is a GPIO reset */
3071 gpiod_set_value(bp->reset_gpio, 0); 3072 if (bp->reset_gpio)
3073 gpiod_set_value(bp->reset_gpio, 0);
3072 3074
3073 unregister_netdev(dev); 3075 unregister_netdev(dev);
3074 clk_disable_unprepare(bp->tx_clk); 3076 clk_disable_unprepare(bp->tx_clk);