| From bb1a619735b4660f21bce3e728b937640024b4ad Mon Sep 17 00:00:00 2001 |
| From: Yendapally Reddy Dhananjaya Reddy <yendapally.reddy@broadcom.com> |
| Date: Wed, 8 Feb 2017 17:14:26 -0500 |
| Subject: net: phy: Initialize mdio clock at probe function |
| |
| From: Yendapally Reddy Dhananjaya Reddy <yendapally.reddy@broadcom.com> |
| |
| commit bb1a619735b4660f21bce3e728b937640024b4ad upstream. |
| |
| USB PHYs need the MDIO clock divisor enabled earlier to work. |
| Initialize mdio clock divisor in probe function. The ext bus |
| bit available in the same register will be used by mdio mux |
| to enable external mdio. |
| |
| Signed-off-by: Yendapally Reddy Dhananjaya Reddy <yendapally.reddy@broadcom.com> |
| Fixes: ddc24ae1 ("net: phy: Broadcom iProc MDIO bus driver") |
| Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> |
| Signed-off-by: Jon Mason <jon.mason@broadcom.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Amit Pundir <amit.pundir@linaro.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/net/phy/mdio-bcm-iproc.c | 6 ++---- |
| 1 file changed, 2 insertions(+), 4 deletions(-) |
| |
| --- a/drivers/net/phy/mdio-bcm-iproc.c |
| +++ b/drivers/net/phy/mdio-bcm-iproc.c |
| @@ -81,8 +81,6 @@ static int iproc_mdio_read(struct mii_bu |
| if (rc) |
| return rc; |
| |
| - iproc_mdio_config_clk(priv->base); |
| - |
| /* Prepare the read operation */ |
| cmd = (MII_DATA_TA_VAL << MII_DATA_TA_SHIFT) | |
| (reg << MII_DATA_RA_SHIFT) | |
| @@ -112,8 +110,6 @@ static int iproc_mdio_write(struct mii_b |
| if (rc) |
| return rc; |
| |
| - iproc_mdio_config_clk(priv->base); |
| - |
| /* Prepare the write operation */ |
| cmd = (MII_DATA_TA_VAL << MII_DATA_TA_SHIFT) | |
| (reg << MII_DATA_RA_SHIFT) | |
| @@ -163,6 +159,8 @@ static int iproc_mdio_probe(struct platf |
| bus->read = iproc_mdio_read; |
| bus->write = iproc_mdio_write; |
| |
| + iproc_mdio_config_clk(priv->base); |
| + |
| rc = of_mdiobus_register(bus, pdev->dev.of_node); |
| if (rc) { |
| dev_err(&pdev->dev, "MDIO bus registration failed\n"); |