Re: [PATCH 2/2] net: davinci_mdio: allow to create phys from dt
On Wednesday 09 July 2014 06:40 PM, Grygorii Strashko wrote: This patch allows to create PHYs from DT in case if they are explicitly defined. The of_mdiobus_register() is used for such purposes. For backward compatibility, call of_mdiobus_register() only in case if at least one PHY's child is defined in DT, otherwise rollback to mdiobus_register(). Signed-off-by: Grygorii Strashko grygorii.stras...@ti.com Except Santhosh comment patch looks good to me. Acked-by: Mugunthan V N mugunthan...@ti.com Regards Mugunthan V N ___ Davinci-linux-open-source mailing list Davinci-linux-open-source@linux.davincidsp.com http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source
[PATCH 2/2] net: davinci_mdio: allow to create phys from dt
This patch allows to create PHYs from DT in case if they are explicitly defined. The of_mdiobus_register() is used for such purposes. For backward compatibility, call of_mdiobus_register() only in case if at least one PHY's child is defined in DT, otherwise rollback to mdiobus_register(). Signed-off-by: Grygorii Strashko grygorii.stras...@ti.com --- drivers/net/ethernet/ti/davinci_mdio.c | 18 -- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/ti/davinci_mdio.c b/drivers/net/ethernet/ti/davinci_mdio.c index 735dc53..22d3dab 100644 --- a/drivers/net/ethernet/ti/davinci_mdio.c +++ b/drivers/net/ethernet/ti/davinci_mdio.c @@ -38,6 +38,7 @@ #include linux/davinci_emac.h #include linux/of.h #include linux/of_device.h +#include linux/of_mdio.h #include linux/pinctrl/consumer.h /* @@ -95,6 +96,7 @@ struct davinci_mdio_data { struct mii_bus *bus; boolsuspended; unsigned long access_time; /* jiffies */ + boolskip_scan; }; static void __davinci_mdio_reset(struct davinci_mdio_data *data) @@ -144,6 +146,9 @@ static int davinci_mdio_reset(struct mii_bus *bus) dev_info(data-dev, davinci mdio revision %d.%d\n, (ver 8) 0xff, ver 0xff); + if (data-skip_scan) + return 0; + /* get phy mask from the alive register */ phy_mask = __raw_readl(data-regs-alive); if (phy_mask) { @@ -369,8 +374,17 @@ static int davinci_mdio_probe(struct platform_device *pdev) goto bail_out; } - /* register the mii bus */ - ret = mdiobus_register(data-bus); + /* register the mii bus +* Create PHYs from DT only in case if PHY child nodes are explicitly +* defined to support backward compatibility with DTs which assume that +* Davinci MDIO will always scan the bus for PHYs detection. +*/ + if (dev-of_node of_get_child_count(dev-of_node)) { + data-skip_scan = true; + ret = of_mdiobus_register(data-bus, dev-of_node); + } else { + ret = mdiobus_register(data-bus); + } if (ret) goto bail_out; -- 1.7.9.5 ___ Davinci-linux-open-source mailing list Davinci-linux-open-source@linux.davincidsp.com http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source
Re: [PATCH 2/2] net: davinci_mdio: allow to create phys from dt
On Wednesday 09 July 2014 09:10 AM, Grygorii Strashko wrote: This patch allows to create PHYs from DT in case if they are explicitly defined. The of_mdiobus_register() is used for such purposes. For backward compatibility, call of_mdiobus_register() only in case if at least one PHY's child is defined in DT, otherwise rollback to mdiobus_register(). Signed-off-by: Grygorii Strashko grygorii.stras...@ti.com --- drivers/net/ethernet/ti/davinci_mdio.c | 18 -- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/ti/davinci_mdio.c b/drivers/net/ethernet/ti/davinci_mdio.c index 735dc53..22d3dab 100644 --- a/drivers/net/ethernet/ti/davinci_mdio.c +++ b/drivers/net/ethernet/ti/davinci_mdio.c @@ -38,6 +38,7 @@ #include linux/davinci_emac.h #include linux/of.h #include linux/of_device.h +#include linux/of_mdio.h #include linux/pinctrl/consumer.h /* @@ -95,6 +96,7 @@ struct davinci_mdio_data { struct mii_bus *bus; boolsuspended; unsigned long access_time; /* jiffies */ + boolskip_scan; The vairiable name is not too intutive so probably add a little bit description on what are you skipping with it. }; static void __davinci_mdio_reset(struct davinci_mdio_data *data) @@ -144,6 +146,9 @@ static int davinci_mdio_reset(struct mii_bus *bus) dev_info(data-dev, davinci mdio revision %d.%d\n, (ver 8) 0xff, ver 0xff); + if (data-skip_scan) + return 0; + /* get phy mask from the alive register */ phy_mask = __raw_readl(data-regs-alive); if (phy_mask) { @@ -369,8 +374,17 @@ static int davinci_mdio_probe(struct platform_device *pdev) goto bail_out; } - /* register the mii bus */ - ret = mdiobus_register(data-bus); + /* register the mii bus + * Create PHYs from DT only in case if PHY child nodes are explicitly + * defined to support backward compatibility with DTs which assume that + * Davinci MDIO will always scan the bus for PHYs detection. + */ multi line comment is not as per coding style. Please fix that. Patch as such looks good to me so with those minor fixes, feel free to append my review tag. Reviewed-by: Santosh Shilimkar santosh.shilim...@ti.com + if (dev-of_node of_get_child_count(dev-of_node)) { + data-skip_scan = true; + ret = of_mdiobus_register(data-bus, dev-of_node); + } else { + ret = mdiobus_register(data-bus); + } if (ret) goto bail_out; ___ Davinci-linux-open-source mailing list Davinci-linux-open-source@linux.davincidsp.com http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source