aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLi Yang <leoli@freescale.com>2009-01-06 17:08:10 -0500
committerDavid S. Miller <davem@davemloft.net>2009-01-06 17:08:10 -0500
commitf430e49e9e0cf821c090abedb399b80ebf0cb4c6 (patch)
tree50b0d36acc55dbe17cce4157c1ef2ddeb2c81b4c
parent1fa17d4ba43d7e5aab5e90777b07da06524f6748 (diff)
gianfar: ensure ECNTRL[R100] is cleared on link state change
When changing the link between 100Mbps and 1Gbps in SGMII mode it was found out that the link would stop working. The issue is that ECNTRL[R100] needs to be cleared when in 1Gbps mode. Older reference manuals didn't require the explicitly clearing but has since been found it that it is needed. Signed-off-by: Li Yang <leoli@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org> Acked-by: Andy Fleming <afleming@freescale.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/gianfar.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/gianfar.c b/drivers/net/gianfar.c
index c672ecfc9595..7fcc3af3f86b 100644
--- a/drivers/net/gianfar.c
+++ b/drivers/net/gianfar.c
@@ -1973,6 +1973,8 @@ static void adjust_link(struct net_device *dev)
1973 case 1000: 1973 case 1000:
1974 tempval = 1974 tempval =
1975 ((tempval & ~(MACCFG2_IF)) | MACCFG2_GMII); 1975 ((tempval & ~(MACCFG2_IF)) | MACCFG2_GMII);
1976
1977 ecntrl &= ~(ECNTRL_R100);
1976 break; 1978 break;
1977 case 100: 1979 case 100:
1978 case 10: 1980 case 10: