netdev: octeon_mgmt: Correct tx IFG workaround.
authorDavid Daney <david.daney@cavium.com>
Thu, 20 Jun 2013 00:40:19 +0000 (17:40 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 20 Jun 2013 05:12:48 +0000 (22:12 -0700)
The previous fix was still too agressive to meet ieee specs.  Increase
to (14, 10).

Signed-off-by: David Daney <david.daney@cavium.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/octeon/octeon_mgmt.c

index 921729f9c85c53baa17cd334f4a7b8f35f590561..a603faf64a9fe9e18e98e0ba8ab3865fe7c9be7d 100644 (file)
@@ -1141,10 +1141,13 @@ static int octeon_mgmt_open(struct net_device *netdev)
                /* For compensation state to lock. */
                ndelay(1040 * NS_PER_PHY_CLK);
 
-               /* Some Ethernet switches cannot handle standard
-                * Interframe Gap, increase to 16 bytes.
+               /* Default Interframe Gaps are too small.  Recommended
+                * workaround is.
+                *
+                * AGL_GMX_TX_IFG[IFG1]=14
+                * AGL_GMX_TX_IFG[IFG2]=10
                 */
-               cvmx_write_csr(CVMX_AGL_GMX_TX_IFG, 0x88);
+               cvmx_write_csr(CVMX_AGL_GMX_TX_IFG, 0xae);
        }
 
        octeon_mgmt_rx_fill_ring(netdev);