diff options
Diffstat (limited to 'target/linux/mvebu/patches-3.10/0081-net-phy-call-mdiobus_scan-after-adding-a-fixed-PHY.patch')
-rw-r--r-- | target/linux/mvebu/patches-3.10/0081-net-phy-call-mdiobus_scan-after-adding-a-fixed-PHY.patch | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/target/linux/mvebu/patches-3.10/0081-net-phy-call-mdiobus_scan-after-adding-a-fixed-PHY.patch b/target/linux/mvebu/patches-3.10/0081-net-phy-call-mdiobus_scan-after-adding-a-fixed-PHY.patch new file mode 100644 index 0000000000..c052068138 --- /dev/null +++ b/target/linux/mvebu/patches-3.10/0081-net-phy-call-mdiobus_scan-after-adding-a-fixed-PHY.patch @@ -0,0 +1,42 @@ +From dce33dc5a6ba5f7fcbab4d7e92cc68c756a1f714 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> +Date: Mon, 15 Jul 2013 17:34:09 +0200 +Subject: [PATCH 081/203] net: phy: call mdiobus_scan() after adding a fixed + PHY + +The fixed_phy_add() function allows to register a fixed PHY. However, +when this function gets called *after* fixed_mdio_bus_init() (which +gets called at the module_init stage), then the fixed PHY is not +registered into the phylib. + +In order to address this, we add a call to mdiobus_scan() in +fixed_phy_add() to ensure that the PHY indeed gets registered into the +phylib, even if the fixed_phy_add() is called after +fixed_mdio_bus_init(). + +This is needed because until now, the only code that was calling the +fixed_add_phy() function was PowerPC-specific platform code, which +could ensure that such fixed PHYs get registered before +fixed_mdio_bus_init() is called. + +However, with the new of_phy_register_fixed_link() function, device +drivers can parse their 'fixed-link' property and register a fixed PHY +at ->probe() time, which may happen after fixed_mdio_bus_init() is +called. + +Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> +--- + drivers/net/phy/fixed.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/drivers/net/phy/fixed.c ++++ b/drivers/net/phy/fixed.c +@@ -195,6 +195,8 @@ int fixed_phy_add(unsigned int irq, int + + list_add_tail(&fp->node, &fmb->phys); + ++ mdiobus_scan(fmb->mii_bus, phy_id); ++ + return 0; + + err_regs: |