ath10k: enable firmware peer stats info for wmi tlv
authorWen Gong <wgong@codeaurora.org>
Mon, 27 Apr 2020 08:04:13 +0000 (16:04 +0800)
committerKalle Valo <kvalo@codeaurora.org>
Tue, 28 Apr 2020 09:12:29 +0000 (12:12 +0300)
For wmi tlv type, firmware disable peer stats info by default, after
enable it, firmware will report WMI_TLV_PEER_STATS_INFO_EVENTID if
ath10k send WMI_TLV_REQUEST_PEER_STATS_INFO_CMDID to firmware.

Enable it will only set a flag in firmware, firmware will not report
it without receive request WMI command.

Tested with QCA6174 SDIO with firmware WLAN.RMH.4.4.1-00042.

Signed-off-by: Wen Gong <wgong@codeaurora.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/20200427080416.8265-2-wgong@codeaurora.org
drivers/net/wireless/ath/ath10k/mac.c
drivers/net/wireless/ath/ath10k/wmi-tlv.c
drivers/net/wireless/ath/ath10k/wmi-tlv.h
drivers/net/wireless/ath/ath10k/wmi.h

index a1147cc..0fb082c 100644 (file)
@@ -2959,6 +2959,11 @@ static void ath10k_bss_assoc(struct ieee80211_hw *hw,
        arvif->aid = bss_conf->aid;
        ether_addr_copy(arvif->bssid, bss_conf->bssid);
 
+       ret = ath10k_wmi_pdev_set_param(ar,
+                                       ar->wmi.pdev_param->peer_stats_info_enable, 1);
+       if (ret)
+               ath10k_warn(ar, "failed to enable peer stats info: %d\n", ret);
+
        ret = ath10k_wmi_vdev_up(ar, arvif->vdev_id, arvif->aid, arvif->bssid);
        if (ret) {
                ath10k_warn(ar, "failed to set vdev %d up: %d\n",
index e1ab900..27aaa48 100644 (file)
@@ -4269,6 +4269,7 @@ static struct wmi_pdev_param_map wmi_tlv_pdev_param_map = {
        .arp_dstaddr = WMI_PDEV_PARAM_UNSUPPORTED,
        .rfkill_config = WMI_TLV_PDEV_PARAM_HW_RFKILL_CONFIG,
        .rfkill_enable = WMI_TLV_PDEV_PARAM_RFKILL_ENABLE,
+       .peer_stats_info_enable = WMI_TLV_PDEV_PARAM_PEER_STATS_INFO_ENABLE,
 };
 
 static struct wmi_peer_param_map wmi_tlv_peer_param_map = {
index 4972dc1..cd400b1 100644 (file)
@@ -451,6 +451,7 @@ enum wmi_tlv_pdev_param {
        WMI_TLV_PDEV_PARAM_VDEV_RATE_STATS_UPDATE_PERIOD,
        WMI_TLV_PDEV_PARAM_TXPOWER_REASON_NONE,
        WMI_TLV_PDEV_PARAM_TXPOWER_REASON_SAR,
+       WMI_TLV_PDEV_PARAM_PEER_STATS_INFO_ENABLE = 0x8b,
        WMI_TLV_PDEV_PARAM_TXPOWER_REASON_MAX,
 };
 
index 2090707..46740e1 100644 (file)
@@ -3798,6 +3798,7 @@ struct wmi_pdev_param_map {
        u32 enable_btcoex;
        u32 rfkill_config;
        u32 rfkill_enable;
+       u32 peer_stats_info_enable;
 };
 
 #define WMI_PDEV_PARAM_UNSUPPORTED 0