From: Harish Patil <harish.pa...@qlogic.com> Under certain scenarios, MFW periodically polls the driver for LAN statistics. This patch implements the osal hook to fill in the stats.
Fixes: ffa002d318d36 ("qede: add base driver") Signed-off-by: Harish Patil <harish.patil at qlogic.com> --- drivers/net/qede/base/bcm_osal.c | 21 +++++++++++++++++++++ drivers/net/qede/base/bcm_osal.h | 9 ++++++++- 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/drivers/net/qede/base/bcm_osal.c b/drivers/net/qede/base/bcm_osal.c index 9540c4b..8a62056 100644 --- a/drivers/net/qede/base/bcm_osal.c +++ b/drivers/net/qede/base/bcm_osal.c @@ -15,6 +15,9 @@ #include "ecore.h" #include "ecore_hw.h" #include "ecore_iov_api.h" +#include "ecore_mcp_api.h" +#include "ecore_l2_api.h" + unsigned long qede_log2_align(unsigned long n) { @@ -179,3 +182,21 @@ u32 qede_unzip_data(struct ecore_hwfn *p_hwfn, u32 input_len, return p_hwfn->stream->total_out / 4; } + +void +qede_get_mcp_proto_stats(struct ecore_dev *edev, + enum ecore_mcp_protocol_type type, + union ecore_mcp_protocol_stats *stats) +{ + struct ecore_eth_stats lan_stats; + + if (type == ECORE_MCP_LAN_STATS) { + ecore_get_vport_stats(edev, &lan_stats); + stats->lan_stats.ucast_rx_pkts = lan_stats.rx_ucast_pkts; + stats->lan_stats.ucast_tx_pkts = lan_stats.tx_ucast_pkts; + stats->lan_stats.fcs_err = -1; + } else { + DP_INFO(edev, "Statistics request type %d not supported\n", + type); + } +} diff --git a/drivers/net/qede/base/bcm_osal.h b/drivers/net/qede/base/bcm_osal.h index 47d056e..3e2aeb0 100644 --- a/drivers/net/qede/base/bcm_osal.h +++ b/drivers/net/qede/base/bcm_osal.h @@ -24,6 +24,9 @@ struct ecore_dev; struct ecore_hwfn; struct ecore_vf_acquire_sw_info; struct vf_pf_resc_request; +enum ecore_mcp_protocol_type; +union ecore_mcp_protocol_stats; + void qed_link_update(struct ecore_hwfn *hwfn); #if RTE_BYTE_ORDER == RTE_LITTLE_ENDIAN @@ -390,7 +393,11 @@ u32 qede_osal_log2(u32); #define OSAL_MAX_T(type, __max1, __max2) \ ((type)(__max1) > (type)(__max2) ? (type)(__max1) : (type)(__max2)) -#define OSAL_GET_PROTOCOL_STATS(p_hwfn, type, stats) (0) +void qede_get_mcp_proto_stats(struct ecore_dev *, enum ecore_mcp_protocol_type, + union ecore_mcp_protocol_stats *); +#define OSAL_GET_PROTOCOL_STATS(dev, type, stats) \ + qede_get_mcp_proto_stats(dev, type, stats) + #define OSAL_SLOWPATH_IRQ_REQ(p_hwfn) (0) #endif /* __BCM_OSAL_H */ -- 1.7.10.3