via-rhine: fix full-duplex with autoneg disable
authorFrançois Cachereul <f.cachereul@alphalink.fr>
Thu, 12 Jun 2014 10:11:25 +0000 (12:11 +0200)
committerDavid S. Miller <davem@davemloft.net>
Thu, 12 Jun 2014 17:31:10 +0000 (10:31 -0700)
With some specific configuration (VT6105M on Soekris 5510 and depending
on the device at the other end), fragmented packets were not transmitted
when forcing 100 full-duplex with autoneg disable.

This fix now write full-duplex chips register when forcing full or
half-duplex not only when autoneg is enable.

Signed-off-by: François Cachereul <f.cachereul@alphalink.fr>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/via/via-rhine.c

index 981be0154be393931d958f8310bd2e0572184d04..2d72f96a9e2cf93d4f1dca3aad98e780bcfc5bca 100644 (file)
@@ -1349,8 +1349,9 @@ static void rhine_set_carrier(struct mii_if_info *mii)
                /* autoneg is off: Link is always assumed to be up */
                if (!netif_carrier_ok(dev))
                        netif_carrier_on(dev);
-       } else  /* Let MMI library update carrier status */
-               rhine_check_media(dev, 0);
+       }
+
+       rhine_check_media(dev, 0);
 
        netif_info(rp, link, dev, "force_media %d, carrier %d\n",
                   mii->force_media, netif_carrier_ok(dev));