]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
net: fec: remove workaround to restart phylib state machine on MDIO timeout
authorHeiner Kallweit <hkallweit1@gmail.com>
Sun, 16 Dec 2018 14:00:40 +0000 (15:00 +0100)
committerDavid S. Miller <davem@davemloft.net>
Tue, 18 Dec 2018 23:01:55 +0000 (15:01 -0800)
There's a workaround to restart the phylib state machine in case of a
MDIO access timeout. Seems it was introduced to deal with the
consequences of a too small MDIO timeout. See also commit message of
c3b084c24c8a ("net: fec: Adjust ENET MDIO timeouts") which increased
the timeout value later. Due to the later timeout value fix it seems
to be safe to remove the workaround.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/freescale/fec.h
drivers/net/ethernet/freescale/fec_main.c

index bf80855dd0dd4337e7a9c577744d4202fb00c4d3..f79e57f735b3976fe212201c226968a72c073e8e 100644 (file)
@@ -531,7 +531,6 @@ struct fec_enet_private {
 
        /* Phylib and MDIO interface */
        struct  mii_bus *mii_bus;
-       int     mii_timeout;
        uint    phy_speed;
        phy_interface_t phy_interface;
        struct device_node *phy_node;
index 6db69ba30dcdfcd53f9333b1fadb4ac38bae1d3a..ae0f88bce9aa6edca13e5cba73b5aba8814097ff 100644 (file)
@@ -1714,12 +1714,6 @@ static void fec_enet_adjust_link(struct net_device *ndev)
        struct phy_device *phy_dev = ndev->phydev;
        int status_change = 0;
 
-       /* Prevent a state halted on mii error */
-       if (fep->mii_timeout && phy_dev->state == PHY_HALTED) {
-               phy_dev->state = PHY_RESUMING;
-               return;
-       }
-
        /*
         * If the netdev is down, or is going down, we're not interested
         * in link state events, so just mark our idea of the link as down
@@ -1779,7 +1773,6 @@ static int fec_enet_mdio_read(struct mii_bus *bus, int mii_id, int regnum)
        if (ret < 0)
                return ret;
 
-       fep->mii_timeout = 0;
        reinit_completion(&fep->mdio_done);
 
        /* start a read op */
@@ -1791,7 +1784,6 @@ static int fec_enet_mdio_read(struct mii_bus *bus, int mii_id, int regnum)
        time_left = wait_for_completion_timeout(&fep->mdio_done,
                        usecs_to_jiffies(FEC_MII_TIMEOUT));
        if (time_left == 0) {
-               fep->mii_timeout = 1;
                netdev_err(fep->netdev, "MDIO read timeout\n");
                ret = -ETIMEDOUT;
                goto out;
@@ -1820,7 +1812,6 @@ static int fec_enet_mdio_write(struct mii_bus *bus, int mii_id, int regnum,
        else
                ret = 0;
 
-       fep->mii_timeout = 0;
        reinit_completion(&fep->mdio_done);
 
        /* start a write op */
@@ -1833,7 +1824,6 @@ static int fec_enet_mdio_write(struct mii_bus *bus, int mii_id, int regnum,
        time_left = wait_for_completion_timeout(&fep->mdio_done,
                        usecs_to_jiffies(FEC_MII_TIMEOUT));
        if (time_left == 0) {
-               fep->mii_timeout = 1;
                netdev_err(fep->netdev, "MDIO write timeout\n");
                ret  = -ETIMEDOUT;
        }
@@ -2001,8 +1991,6 @@ static int fec_enet_mii_init(struct platform_device *pdev)
                return -ENOENT;
        }
 
-       fep->mii_timeout = 0;
-
        /*
         * Set MII speed to 2.5 MHz (= clk_get_rate() / 2 * phy_speed)
         *