Commit c20cd5d7 authored by Yuval Mintz's avatar Yuval Mintz Committed by David S. Miller

bnx2x: Correct EEE statistics gathering

In boards with 4-ports, Tx LPI statistics were gathered incorrectly.
This patch guarantees that each pmf will only query its own port for
these statistics.
Signed-off-by: default avatarYuval Mintz <yuvalmin@broadcom.com>
Signed-off-by: default avatarEilon Greenstein <eilong@broadcom.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 3c4cfade
...@@ -1603,6 +1603,10 @@ ...@@ -1603,6 +1603,10 @@
* of counts that the SM entered the EEE LPI state. Clock 25MHz. Read only * of counts that the SM entered the EEE LPI state. Clock 25MHz. Read only
* register. Reset on hard reset. */ * register. Reset on hard reset. */
#define MISC_REG_CPMU_LP_SM_ENT_CNT_P0 0xa8b8 #define MISC_REG_CPMU_LP_SM_ENT_CNT_P0 0xa8b8
/* [RW 16] EEE LPI Entry Events Counter. A statistic counter with the number
* of counts that the SM entered the EEE LPI state. Clock 25MHz. Read only
* register. Reset on hard reset. */
#define MISC_REG_CPMU_LP_SM_ENT_CNT_P1 0xa8bc
/* [RW 32] The following driver registers(1...16) represent 16 drivers and /* [RW 32] The following driver registers(1...16) represent 16 drivers and
32 clients. Each client can be controlled by one driver only. One in each 32 clients. Each client can be controlled by one driver only. One in each
bit represent that this driver control the appropriate client (Ex: bit 5 bit represent that this driver control the appropriate client (Ex: bit 5
......
...@@ -785,9 +785,11 @@ static int bnx2x_hw_stats_update(struct bnx2x *bp) ...@@ -785,9 +785,11 @@ static int bnx2x_hw_stats_update(struct bnx2x *bp)
pstats->host_port_stats_counter++; pstats->host_port_stats_counter++;
if (CHIP_IS_E3(bp)) if (CHIP_IS_E3(bp)) {
estats->eee_tx_lpi += REG_RD(bp, u32 lpi_reg = BP_PORT(bp) ? MISC_REG_CPMU_LP_SM_ENT_CNT_P1
MISC_REG_CPMU_LP_SM_ENT_CNT_P0); : MISC_REG_CPMU_LP_SM_ENT_CNT_P0;
estats->eee_tx_lpi += REG_RD(bp, lpi_reg);
}
if (!BP_NOMCP(bp)) { if (!BP_NOMCP(bp)) {
u32 nig_timer_max = u32 nig_timer_max =
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment