]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
ENGR00161871: ENET: Changing MDIO read and write timeout
authorRogerio Pimentel <rogerio.pimentel@freescale.com>
Mon, 26 Dec 2011 18:23:48 +0000 (10:23 -0800)
committerLothar Waßmann <LW@KARO-electronics.de>
Fri, 24 May 2013 06:33:43 +0000 (08:33 +0200)
The original FEC_MII_TIMEOUT was set to 1ms, which is too low when
passed to the usecs_to_jiffies macro.

On ARM one jiffy is 10ms, so use msecs_to_jiffies instead and use
a timeout of 30ms, which corresponds to 3 jiffies.

After running 3 hours NFS boots, the MDIO timeout do not occur
anymore.

Signed-off-by: Rogerio Pimentel <rogerio.pimentel@freescale.com>
drivers/net/fec.c

index c3cb63799c73b4f7296ed98542dcbea28d6af179..18d356e0a8eb364741babb41663f81753d8c0878 100755 (executable)
@@ -246,7 +246,7 @@ static void fec_stop(struct net_device *dev);
 #define FEC_MMFR_TA            (2 << 16)
 #define FEC_MMFR_DATA(v)       (v & 0xffff)
 
-#define FEC_MII_TIMEOUT                2000 /* us */
+#define FEC_MII_TIMEOUT                30 /* ms */
 
 /* Transmitter timeout */
 #define TX_TIMEOUT (2 * HZ)
@@ -753,7 +753,7 @@ static int fec_enet_mdio_read(struct mii_bus *bus, int mii_id, int regnum)
 
        /* wait for end of transfer */
        time_left = wait_for_completion_timeout(&fep->mdio_done,
-                       usecs_to_jiffies(FEC_MII_TIMEOUT));
+                       msecs_to_jiffies(FEC_MII_TIMEOUT));
        if (time_left == 0) {
                fep->mii_timeout = 1;
                printk(KERN_ERR "FEC: MDIO read timeout, mii_id=%d\n", mii_id);
@@ -781,7 +781,7 @@ static int fec_enet_mdio_write(struct mii_bus *bus, int mii_id, int regnum,
 
        /* wait for end of transfer */
        time_left = wait_for_completion_timeout(&fep->mdio_done,
-                       usecs_to_jiffies(FEC_MII_TIMEOUT));
+                       msecs_to_jiffies(FEC_MII_TIMEOUT));
        if (time_left == 0) {
                fep->mii_timeout = 1;
                printk(KERN_ERR "FEC: MDIO write timeout, mii_id=%d\n", mii_id);