[PATCH] gianfar: ensure ECNTRL[R100] is cleared on link state change

Kumar Gala galak at kernel.crashing.org
Wed Jan 7 07:52:51 EST 2009


From: Leo Li <leo at rock.ap.freescale.net>

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 at freescale.com>
Signed-off-by: Kumar Gala <galak at kernel.crashing.org>
---

Dave,

Please apply for 2.6.29 as it addresses a "HW" bug in real systems.

thanks

- k

 drivers/net/gianfar.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/drivers/net/gianfar.c b/drivers/net/gianfar.c
index c672ecf..7fcc3af 100644
--- a/drivers/net/gianfar.c
+++ b/drivers/net/gianfar.c
@@ -1973,6 +1973,8 @@ static void adjust_link(struct net_device *dev)
 			case 1000:
 				tempval =
 				    ((tempval & ~(MACCFG2_IF)) | MACCFG2_GMII);
+
+				ecntrl &= ~(ECNTRL_R100);
 				break;
 			case 100:
 			case 10:
-- 
1.5.6.5




More information about the Linuxppc-dev mailing list