ath10k: Extended the HTT stats support to retrieve Mu-MIMO related stats
authorMaharaja Kennadyrajan <mkenna@codeaurora.org>
Wed, 27 Feb 2019 11:24:41 +0000 (16:54 +0530)
committerKalle Valo <kvalo@codeaurora.org>
Tue, 7 May 2019 13:37:15 +0000 (16:37 +0300)
Extended the bit mask value of the HTT stats to get the Mu-MIMO
related stats via tracing.

Signed-off-by: Maharaja Kennadyrajan <mkenna@codeaurora.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/ath/ath10k/debug.c
drivers/net/wireless/ath/ath10k/htt.h
drivers/net/wireless/ath/ath10k/htt_tx.c

index 32d967a31c654c9a69e8ef2bd9ca4bc63963963c..2da8611778a265a7979e4dbaf82c0e4e8a7555d0 100644 (file)
@@ -922,8 +922,8 @@ static ssize_t ath10k_write_htt_stats_mask(struct file *file,
        if (ret)
                return ret;
 
-       /* max 8 bit masks (for now) */
-       if (mask > 0xff)
+       /* max 17 bit masks (for now) */
+       if (mask > HTT_STATS_BIT_MASK)
                return -E2BIG;
 
        mutex_lock(&ar->conf_mutex);
index b28c167cb5b4e1d8a1a11429319bfafefeafa15d..10c13c2974c817d3d6802bd1f8d191c9ef1ce128 100644 (file)
@@ -315,6 +315,7 @@ struct htt_stats_req {
 } __packed;
 
 #define HTT_STATS_REQ_CFG_STAT_TYPE_INVALID 0xff
+#define HTT_STATS_BIT_MASK GENMASK(16, 0)
 
 /*
  * htt_oob_sync_req - request out-of-band sync
@@ -2243,7 +2244,7 @@ void ath10k_htt_htc_tx_complete(struct ath10k *ar, struct sk_buff *skb);
 void ath10k_htt_htc_t2h_msg_handler(struct ath10k *ar, struct sk_buff *skb);
 bool ath10k_htt_t2h_msg_handler(struct ath10k *ar, struct sk_buff *skb);
 int ath10k_htt_h2t_ver_req_msg(struct ath10k_htt *htt);
-int ath10k_htt_h2t_stats_req(struct ath10k_htt *htt, u8 mask, u64 cookie);
+int ath10k_htt_h2t_stats_req(struct ath10k_htt *htt, u32 mask, u64 cookie);
 int ath10k_htt_h2t_aggr_cfg_msg(struct ath10k_htt *htt,
                                u8 max_subfrms_ampdu,
                                u8 max_subfrms_amsdu);
index 78f07b7a3b21da1fa5567de865f44a6419ff605d..1f07bed5e6eb5452ee9f0742ba153d3155cf4a17 100644 (file)
@@ -580,7 +580,7 @@ int ath10k_htt_h2t_ver_req_msg(struct ath10k_htt *htt)
        return 0;
 }
 
-int ath10k_htt_h2t_stats_req(struct ath10k_htt *htt, u8 mask, u64 cookie)
+int ath10k_htt_h2t_stats_req(struct ath10k_htt *htt, u32 mask, u64 cookie)
 {
        struct ath10k *ar = htt->ar;
        struct htt_stats_req *req;
@@ -603,11 +603,11 @@ int ath10k_htt_h2t_stats_req(struct ath10k_htt *htt, u8 mask, u64 cookie)
 
        memset(req, 0, sizeof(*req));
 
-       /* currently we support only max 8 bit masks so no need to worry
+       /* currently we support only max 24 bit masks so no need to worry
         * about endian support
         */
-       req->upload_types[0] = mask;
-       req->reset_types[0] = mask;
+       memcpy(req->upload_types, &mask, 3);
+       memcpy(req->reset_types, &mask, 3);
        req->stat_type = HTT_STATS_REQ_CFG_STAT_TYPE_INVALID;
        req->cookie_lsb = cpu_to_le32(cookie & 0xffffffff);
        req->cookie_msb = cpu_to_le32((cookie & 0xffffffff00000000ULL) >> 32);