summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYang Li <leoli@freescale.com>2010-11-25 23:29:58 +0000
committerDavid S. Miller <davem@davemloft.net>2010-11-28 18:36:57 -0800
commitd830418e4085d65b3f8bad3216a37bc986ecd17d (patch)
treeddb6dd429e12651e1416f477ca10d7d8dc0c77fc
parentb4ff3c90e6066bacc8a92111752fe9e4f4c45cca (diff)
downloadop-kernel-dev-d830418e4085d65b3f8bad3216a37bc986ecd17d.zip
op-kernel-dev-d830418e4085d65b3f8bad3216a37bc986ecd17d.tar.gz
ucc_geth: fix ucc halt problem in half duplex mode
In commit 58933c64(ucc_geth: Fix the wrong the Rx/Tx FIFO size), the UCC_GETH_UTFTT_INIT is set to 512 based on the recommendation of the QE Reference Manual. But that will sometimes cause tx halt while working in half duplex mode. According to errata draft QE_GENERAL-A003(High Tx Virtual FIFO threshold size can cause UCC to halt), setting UTFTT less than [(UTFS x (M - 8)/M) - 128] will prevent this from happening (M is the minimum buffer size). The patch changes UTFTT back to 256. Signed-off-by: Li Yang <leoli@freescale.com> Cc: Jean-Denis Boyer <jdboyer@media5corp.com> Cc: Andreas Schmitz <Andreas.Schmitz@riedel.net> Cc: Anton Vorontsov <avorontsov@ru.mvista.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/ucc_geth.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/ucc_geth.h b/drivers/net/ucc_geth.h
index 05a9558..055b87a 100644
--- a/drivers/net/ucc_geth.h
+++ b/drivers/net/ucc_geth.h
@@ -899,7 +899,8 @@ struct ucc_geth_hardware_statistics {
#define UCC_GETH_UTFS_INIT 512 /* Tx virtual FIFO size
*/
#define UCC_GETH_UTFET_INIT 256 /* 1/2 utfs */
-#define UCC_GETH_UTFTT_INIT 512
+#define UCC_GETH_UTFTT_INIT 256 /* 1/2 utfs
+ due to errata */
/* Gigabit Ethernet (1000 Mbps) */
#define UCC_GETH_URFS_GIGA_INIT 4096/*2048*/ /* Rx virtual
FIFO size */
OpenPOWER on IntegriCloud