summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Vasut <marex@denx.de>2021-01-06 15:16:01 +0100
committerTom Rini <trini@konsulko.com>2021-01-19 09:15:02 -0500
commitdd70ff481526a87f69bec732fcc402c60441560c (patch)
tree717ffba117baec63191daa1c875b4ba185ea7e1f
parentea707dc0aaafad34bba436b206af340c410dfb1b (diff)
downloadu-boot-dd70ff481526a87f69bec732fcc402c60441560c.tar.gz
net: ks8851: Reset internal RXFC count on bad packet
A sporadic condition occurs when the "bad packet" error is triggered repeatedly, which results in "bad packet" messages scrolling on the console during transfer. To avoid triggering this, reset the internal RXFC count on the first occurance of the "bad packet", which forces the code to re-read the RX packet count from the MAC, and prevents any additional "bad packet" messages if there are no more packets in the MAC. Also print better debug information if this condition occurs. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Eugen Hristev <eugen.hristev@microchip.com> Cc: Joe Hershberger <joe.hershberger@ni.com> Cc: Tom Rini <trini@konsulko.com>
-rw-r--r--drivers/net/ks8851_mll.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/ks8851_mll.c b/drivers/net/ks8851_mll.c
index 91c2d10ffc..9dd9b33955 100644
--- a/drivers/net/ks8851_mll.c
+++ b/drivers/net/ks8851_mll.c
@@ -251,7 +251,8 @@ static int ks_rcv(struct ks_net *ks, uchar *data)
}
ks_wrreg16(ks, KS_RXQCR, RXQCR_CMD_CNTL | RXQCR_RRXEF);
- printf(DRIVERNAME ": bad packet\n");
+ printf(DRIVERNAME ": bad packet (sts=0x%04x len=0x%04x)\n", sts, len);
+ ks->rxfc = 0;
return 0;
}