ath10k: enable TDLS peer buffer STA feature
authorYingying Tang <yintang@qti.qualcomm.com>
Wed, 28 Mar 2018 09:12:52 +0000 (12:12 +0300)
committerKalle Valo <kvalo@codeaurora.org>
Thu, 29 Mar 2018 08:59:58 +0000 (11:59 +0300)
Enable TDLS peer buffer STA feature.
QCA6174 firmware(version: WLAN.RM.4.4) support TDLS peer buffer STA,
it reports this capability through wmi service map in wmi service ready
event. Set related parameter in TDLS WMI command to enable this feature.

Signed-off-by: Yingying Tang <yintang@qti.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/ath/ath10k/mac.c
drivers/net/wireless/ath/ath10k/wmi-tlv.c

index 1cc87cb..c684d6f 100644 (file)
@@ -8325,6 +8325,9 @@ int ath10k_mac_register(struct ath10k *ar)
                        ieee80211_hw_set(ar->hw, TDLS_WIDER_BW);
        }
 
+       if (test_bit(WMI_SERVICE_TDLS_UAPSD_BUFFER_STA, ar->wmi.svc_map))
+               ieee80211_hw_set(ar->hw, SUPPORTS_TDLS_BUFFER_STA);
+
        ar->hw->wiphy->flags |= WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL;
        ar->hw->wiphy->flags |= WIPHY_FLAG_HAS_CHANNEL_SWITCH;
        ar->hw->wiphy->max_remain_on_channel_duration = 5000;
index 57bd8a7..cb723a7 100644 (file)
@@ -2886,6 +2886,9 @@ ath10k_wmi_tlv_op_gen_update_fw_tdls_state(struct ath10k *ar, u32 vdev_id,
         */
        u32 options = 0;
 
+       if (test_bit(WMI_SERVICE_TDLS_UAPSD_BUFFER_STA, ar->wmi.svc_map))
+               options |=  WMI_TLV_TDLS_BUFFER_STA_EN;
+
        len = sizeof(*tlv) + sizeof(*cmd);
        skb = ath10k_wmi_alloc_skb(ar, len);
        if (!skb)