aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/gianfar.h
diff options
context:
space:
mode:
authorAnton Vorontsov <avorontsov@mvista.com>2010-06-30 02:39:15 -0400
committerDavid S. Miller <davem@davemloft.net>2010-06-30 14:35:43 -0400
commit511d934f4496076898e45aaa09e0c85376eb16ee (patch)
treea50a7b366c340a66b7a1f10f59b737f23c370ebc /drivers/net/gianfar.h
parentdeb90eacd084d9edfeda2f714d99c29a86360077 (diff)
gianfar: Implement workaround for eTSEC-A002 erratum
MPC8313ECE says: "If the controller receives a 1- or 2-byte frame (such as an illegal runt packet or a packet with RX_ER asserted) before GRS is asserted and does not receive any other frames, the controller may fail to set GRSC even when the receive logic is completely idle. Any subsequent receive frame that is larger than two bytes will reset the state so the graceful stop can complete. A MAC receiver (Rx) reset will also reset the state." This patch implements the proposed workaround: "If IEVENT[GRSC] is still not set after the timeout, read the eTSEC register at offset 0xD1C. If bits 7-14 are the same as bits 23-30, the eTSEC Rx is assumed to be idle and the Rx can be safely reset. If the register fields are not equal, wait for another timeout period and check again." Signed-off-by: Anton Vorontsov <avorontsov@mvista.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/gianfar.h')
-rw-r--r--drivers/net/gianfar.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/gianfar.h b/drivers/net/gianfar.h
index c414374f407f..710810e2adb4 100644
--- a/drivers/net/gianfar.h
+++ b/drivers/net/gianfar.h
@@ -1028,6 +1028,7 @@ struct gfar_priv_grp {
1028enum gfar_errata { 1028enum gfar_errata {
1029 GFAR_ERRATA_74 = 0x01, 1029 GFAR_ERRATA_74 = 0x01,
1030 GFAR_ERRATA_76 = 0x02, 1030 GFAR_ERRATA_76 = 0x02,
1031 GFAR_ERRATA_A002 = 0x04,
1031}; 1032};
1032 1033
1033/* Struct stolen almost completely (and shamelessly) from the FCC enet source 1034/* Struct stolen almost completely (and shamelessly) from the FCC enet source