summaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/rdc/r6040.c
diff options
context:
space:
mode:
authorFlorian Fainelli <florian@openwrt.org>2012-04-11 09:18:40 +0200
committerDavid S. Miller <davem@davemloft.net>2012-04-12 22:06:24 +0200
commit8dd87a26c7db72ce3124eb20bdbe7394723043fe (patch)
tree554fce574d421839146da20fb73c3fcb32df7536 /drivers/net/ethernet/rdc/r6040.c
parentr6040: fix typo on stats update in tx path (diff)
downloadlinux-8dd87a26c7db72ce3124eb20bdbe7394723043fe.tar.xz
linux-8dd87a26c7db72ce3124eb20bdbe7394723043fe.zip
r6040: define and use MLSR register bits
Define the MLSR (MAC Last Status Register bits) for: - tx fifo under-run - tx exceed collision - tx late collision Signed-off-by: Florian Fainelli <florian@openwrt.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/rdc/r6040.c')
-rw-r--r--drivers/net/ethernet/rdc/r6040.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/net/ethernet/rdc/r6040.c b/drivers/net/ethernet/rdc/r6040.c
index db33573efcf6..1a365ae598d6 100644
--- a/drivers/net/ethernet/rdc/r6040.c
+++ b/drivers/net/ethernet/rdc/r6040.c
@@ -77,6 +77,9 @@
#define MR_BSR 0x18 /* RX buffer size */
#define MR_DCR 0x1A /* RX descriptor control */
#define MLSR 0x1C /* Last status */
+#define TX_FIFO_UNDR 0x0200 /* TX FIFO under-run */
+#define TX_EXCEEDC 0x2000 /* Transmit exceed collision */
+#define TX_LATEC 0x4000 /* Transmit late collision */
#define MMDIO 0x20 /* MDIO control register */
#define MDIO_WRITE 0x4000 /* MDIO write */
#define MDIO_READ 0x2000 /* MDIO read */
@@ -604,9 +607,9 @@ static void r6040_tx(struct net_device *dev)
/* Check for errors */
err = ioread16(ioaddr + MLSR);
- if (err & 0x0200)
+ if (err & TX_FIFO_UNDR)
dev->stats.tx_fifo_errors++;
- if (err & (0x2000 | 0x4000))
+ if (err & (TX_EXCEEDC | TX_LATEC))
dev->stats.tx_carrier_errors++;
if (descptr->status & DSC_OWNER_MAC)