net: netcp: Fixes hw statistics module base setting error
authorWingMan Kwok <w-kwok2@ti.com>
Thu, 23 Jul 2015 19:57:20 +0000 (15:57 -0400)
committerDavid S. Miller <davem@davemloft.net>
Mon, 27 Jul 2015 07:18:39 +0000 (00:18 -0700)
This patch fixes error in the setting of the hw statistics
module base for K2HK platform.  In K2HK although there are
4 hw statistics modules, but only 2 are visible at a time.
Thus when setting up the pointers to the base of the
corresponding hw statistics modules, modules 0 and 2 should
point to one base, while modules 1 and 3 should point to the
other.

Signed-off-by: WingMan Kwok <w-kwok2@ti.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/ti/netcp_ethss.c

index cabf97728b2dc2348f6db4822374f54d0829962c..b954856f11981cbf05cf147cbc9659543990127d 100644 (file)
@@ -2675,10 +2675,14 @@ static int set_gbe_ethss14_priv(struct gbe_priv *gbe_dev,
        gbe_dev->sgmii_port_regs = gbe_dev->ss_regs + GBE13_SGMII_MODULE_OFFSET;
        gbe_dev->host_port_regs = gbe_dev->switch_regs + GBE13_HOST_PORT_OFFSET;
 
+       /* K2HK has only 2 hw stats modules visible at a time, so
+        * module 0 & 2 points to one base and
+        * module 1 & 3 points to the other base
+        */
        for (i = 0; i < gbe_dev->max_num_slaves; i++) {
                gbe_dev->hw_stats_regs[i] =
                        gbe_dev->switch_regs + GBE13_HW_STATS_OFFSET +
-                       (GBE_HW_STATS_REG_MAP_SZ * i);
+                       (GBE_HW_STATS_REG_MAP_SZ * (i & 0x1));
        }
 
        gbe_dev->ale_reg = gbe_dev->switch_regs + GBE13_ALE_OFFSET;