ravb: remove undocumented counter processing
authorSimon Horman <horms+renesas@verge.net.au>
Thu, 5 Sep 2019 15:10:57 +0000 (17:10 +0200)
committerDavid S. Miller <davem@davemloft.net>
Fri, 6 Sep 2019 14:46:09 +0000 (16:46 +0200)
This patch removes the use of the undocumented counter registers
CDCR, LCCR, CERCR, CEECR.

Offsets used for undocumented registers are considered reserved and
should not be written to. After some internal investigation with Renesas
it remains unclear why this driver accesses these fields but regardless of
what the historical reasons are the current code is considered incorrect.

Based on work by Kazuya Mizuguchi <kazuya.mizuguchi.ks@renesas.com>

Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/renesas/ravb.h
drivers/net/ethernet/renesas/ravb_main.c

index 2596a95a4300fbdd0a4813cad50d8489aca26c8e..70eeceb7f8aef13e8de2adbafa396ec769e0e78a 100644 (file)
@@ -194,15 +194,11 @@ enum ravb_reg {
        MAHR    = 0x05c0,
        MALR    = 0x05c8,
        TROCR   = 0x0700,       /* Undocumented? */
-       CDCR    = 0x0708,       /* Undocumented? */
-       LCCR    = 0x0710,       /* Undocumented? */
        CEFCR   = 0x0740,
        FRECR   = 0x0748,
        TSFRCR  = 0x0750,
        TLFRCR  = 0x0758,
        RFCR    = 0x0760,
-       CERCR   = 0x0768,       /* Undocumented? */
-       CEECR   = 0x0770,       /* Undocumented? */
        MAFCR   = 0x0778,
 };
 
index 6cacd5e893acacfd5da3bc16444de50acd89e764..4d1f274cded03b0e3a76270de044a39c522ed708 100644 (file)
@@ -1629,15 +1629,6 @@ static struct net_device_stats *ravb_get_stats(struct net_device *ndev)
 
        nstats->tx_dropped += ravb_read(ndev, TROCR);
        ravb_write(ndev, 0, TROCR);     /* (write clear) */
-       nstats->collisions += ravb_read(ndev, CDCR);
-       ravb_write(ndev, 0, CDCR);      /* (write clear) */
-       nstats->tx_carrier_errors += ravb_read(ndev, LCCR);
-       ravb_write(ndev, 0, LCCR);      /* (write clear) */
-
-       nstats->tx_carrier_errors += ravb_read(ndev, CERCR);
-       ravb_write(ndev, 0, CERCR);     /* (write clear) */
-       nstats->tx_carrier_errors += ravb_read(ndev, CEECR);
-       ravb_write(ndev, 0, CEECR);     /* (write clear) */
 
        nstats->rx_packets = stats0->rx_packets + stats1->rx_packets;
        nstats->tx_packets = stats0->tx_packets + stats1->tx_packets;