diff options
-rw-r--r-- | drivers/net/phy/mdio-mvebu.c | 8 | ||||
-rw-r--r-- | drivers/net/phy/phy.c | 4 | ||||
-rw-r--r-- | drivers/of/of_net.c | 1 | ||||
-rw-r--r-- | include/linux/phy.h | 1 |
4 files changed, 10 insertions, 4 deletions
diff --git a/drivers/net/phy/mdio-mvebu.c b/drivers/net/phy/mdio-mvebu.c index 3dcf644ec2..b90e28102c 100644 --- a/drivers/net/phy/mdio-mvebu.c +++ b/drivers/net/phy/mdio-mvebu.c @@ -117,8 +117,9 @@ static int mvebu_mdio_probe(struct device_d *dev) return -ENOMEM; priv->clk = clk_get(dev, NULL); - if (!IS_ERR(priv->clk)) - clk_enable(priv->clk); + if (IS_ERR(priv->clk)) + return PTR_ERR(priv->clk); + clk_enable(priv->clk); priv->miibus.dev.device_node = dev->device_node; priv->miibus.priv = priv; @@ -135,8 +136,7 @@ static void mvebu_mdio_remove(struct device_d *dev) mdiobus_unregister(&priv->miibus); - if (!IS_ERR(priv->clk)) - clk_disable(priv->clk); + clk_disable(priv->clk); } static struct of_device_id mvebu_mdio_dt_ids[] = { diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c index 1a2fdf1d94..cad4cf5475 100644 --- a/drivers/net/phy/phy.c +++ b/drivers/net/phy/phy.c @@ -275,6 +275,10 @@ static struct phy_device *of_mdio_find_phy(struct eth_device *edev) phy_node = of_parse_phandle(edev->parent->device_node, "phy-handle", 0); if (!phy_node) + phy_node = of_parse_phandle(edev->parent->device_node, "phy", 0); + if (!phy_node) + phy_node = of_parse_phandle(edev->parent->device_node, "phy-device", 0); + if (!phy_node) return NULL; bus_for_each_device(&mdio_bus_type, dev) { diff --git a/drivers/of/of_net.c b/drivers/of/of_net.c index 0320c1d4f5..086573fc1a 100644 --- a/drivers/of/of_net.c +++ b/drivers/of/of_net.c @@ -28,6 +28,7 @@ static const char *phy_modes[] = { [PHY_INTERFACE_MODE_RGMII_TXID] = "rgmii-txid", [PHY_INTERFACE_MODE_RTBI] = "rtbi", [PHY_INTERFACE_MODE_SMII] = "smii", + [PHY_INTERFACE_MODE_QSGMII] = "qsgmii", }; /** diff --git a/include/linux/phy.h b/include/linux/phy.h index 3229aa6300..7c5d754a12 100644 --- a/include/linux/phy.h +++ b/include/linux/phy.h @@ -54,6 +54,7 @@ typedef enum { PHY_INTERFACE_MODE_RGMII_TXID, PHY_INTERFACE_MODE_RTBI, PHY_INTERFACE_MODE_SMII, + PHY_INTERFACE_MODE_QSGMII, } phy_interface_t; #define PHY_INIT_TIMEOUT 100000 |