diff options
author | Shahed Shaikh <shahed.shaikh@qlogic.com> | 2013-04-24 08:42:41 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-04-24 19:34:05 -0400 |
commit | 522907403b202dea8528c308ffc21e79d0636ee6 (patch) | |
tree | be3351acf4612b292a10a16520a2fd0f5f1baf77 /drivers/net/ethernet/qlogic/qlcnic | |
parent | c0d79cd0684454a64af5926f38680d7124289c2a (diff) |
qlcnic: Add eSwitch statistics support
o Read eSwitch statistics from adapter and display them as part
of ethtool statistics.
Signed-off-by: Shahed Shaikh <shahed.shaikh@qlogic.com>
Signed-off-by: Jitendra Kalsaria <jitendra.kalsaria@qlogic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/qlogic/qlcnic')
-rw-r--r-- | drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c | 3 | ||||
-rw-r--r-- | drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.h | 2 | ||||
-rw-r--r-- | drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c | 7 |
3 files changed, 11 insertions, 1 deletions
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c index fd0829c2839d..c40b077d43da 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c | |||
@@ -2922,6 +2922,9 @@ static u64 *qlcnic_83xx_fill_stats(struct qlcnic_adapter *adapter, | |||
2922 | /* fill in MAC rx frame stats */ | 2922 | /* fill in MAC rx frame stats */ |
2923 | for (k += 6; k < 80; k += 2) | 2923 | for (k += 6; k < 80; k += 2) |
2924 | data = qlcnic_83xx_copy_stats(cmd, data, k); | 2924 | data = qlcnic_83xx_copy_stats(cmd, data, k); |
2925 | /* fill in eSwitch stats */ | ||
2926 | for (; k < total_regs; k += 2) | ||
2927 | data = qlcnic_83xx_copy_stats(cmd, data, k); | ||
2925 | break; | 2928 | break; |
2926 | case QLC_83XX_STAT_RX: | 2929 | case QLC_83XX_STAT_RX: |
2927 | for (k = 2; k < 8; k += 2) | 2930 | for (k = 2; k < 8; k += 2) |
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.h b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.h index 4be411c2628a..1f1d85e6f2af 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.h +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.h | |||
@@ -381,7 +381,7 @@ enum qlcnic_83xx_states { | |||
381 | #define QLC_83XX_STAT_MAC 1 | 381 | #define QLC_83XX_STAT_MAC 1 |
382 | #define QLC_83XX_TX_STAT_REGS 14 | 382 | #define QLC_83XX_TX_STAT_REGS 14 |
383 | #define QLC_83XX_RX_STAT_REGS 40 | 383 | #define QLC_83XX_RX_STAT_REGS 40 |
384 | #define QLC_83XX_MAC_STAT_REGS 80 | 384 | #define QLC_83XX_MAC_STAT_REGS 94 |
385 | 385 | ||
386 | #define QLC_83XX_GET_FUNC_PRIVILEGE(VAL, FN) (0x3 & ((VAL) >> (FN * 2))) | 386 | #define QLC_83XX_GET_FUNC_PRIVILEGE(VAL, FN) (0x3 & ((VAL) >> (FN * 2))) |
387 | #define QLC_83XX_SET_FUNC_OPMODE(VAL, FN) ((VAL) << (FN * 2)) | 387 | #define QLC_83XX_SET_FUNC_OPMODE(VAL, FN) ((VAL) << (FN * 2)) |
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c index 59350c287f63..629d901637e1 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c | |||
@@ -115,6 +115,13 @@ static const char qlcnic_83xx_mac_stats_strings[][ETH_GSTRING_LEN] = { | |||
115 | "mac_rx_dropped", | 115 | "mac_rx_dropped", |
116 | "mac_crc_error", | 116 | "mac_crc_error", |
117 | "mac_align_error", | 117 | "mac_align_error", |
118 | "eswitch_frames", | ||
119 | "eswitch_bytes", | ||
120 | "eswitch_multicast_frames", | ||
121 | "eswitch_broadcast_frames", | ||
122 | "eswitch_unicast_frames", | ||
123 | "eswitch_error_free_frames", | ||
124 | "eswitch_error_free_bytes", | ||
118 | }; | 125 | }; |
119 | 126 | ||
120 | #define QLCNIC_STATS_LEN ARRAY_SIZE(qlcnic_gstrings_stats) | 127 | #define QLCNIC_STATS_LEN ARRAY_SIZE(qlcnic_gstrings_stats) |