1 From 14d65775687cb3a6f76a52f48f4be27a522bb396 Mon Sep 17 00:00:00 2001
2 From: Balaji Pothunoori <bpothuno@qti.qualcomm.com>
3 Date: Thu, 21 Dec 2017 20:00:42 +0530
4 Subject: [PATCH] ath10k: advertise TDLS wider bandwidth support for 5GHz
6 Enable TDLS wider bandwidth support for 5GHz based on firmware wmi capabilities.
8 This patch is required for chipset QCA9888. Tested with firmware version
11 Signed-off-by: Balaji Pothunoori <bpothuno@qti.qualcomm.com>
12 Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
14 drivers/net/wireless/ath/ath10k/mac.c | 3 ++-
15 drivers/net/wireless/ath/ath10k/wmi.h | 5 +++++
16 2 files changed, 7 insertions(+), 1 deletion(-)
18 --- a/drivers/net/wireless/ath/ath10k/mac.c
19 +++ b/drivers/net/wireless/ath/ath10k/mac.c
20 @@ -8236,7 +8236,8 @@ int ath10k_mac_register(struct ath10k *a
21 if (test_bit(WMI_SERVICE_TDLS, ar->wmi.svc_map) ||
22 test_bit(WMI_SERVICE_TDLS_EXPLICIT_MODE_ONLY, ar->wmi.svc_map)) {
23 ar->hw->wiphy->flags |= WIPHY_FLAG_SUPPORTS_TDLS;
24 - ieee80211_hw_set(ar->hw, TDLS_WIDER_BW);
25 + if (test_bit(WMI_SERVICE_TDLS_WIDER_BANDWIDTH, ar->wmi.svc_map))
26 + ieee80211_hw_set(ar->hw, TDLS_WIDER_BW);
29 ar->hw->wiphy->flags |= WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL;
30 --- a/drivers/net/wireless/ath/ath10k/wmi.h
31 +++ b/drivers/net/wireless/ath/ath10k/wmi.h
32 @@ -196,6 +196,7 @@ enum wmi_service {
33 WMI_SERVICE_TDLS_CONN_TRACKER_IN_HOST_MODE,
34 WMI_SERVICE_TDLS_EXPLICIT_MODE_ONLY,
35 WMI_SERVICE_MGMT_TX_WMI,
36 + WMI_SERVICE_TDLS_WIDER_BANDWIDTH,
40 @@ -337,6 +338,7 @@ enum wmi_10_4_service {
41 WMI_10_4_SERVICE_TDLS_UAPSD_SLEEP_STA,
42 WMI_10_4_SERVICE_TDLS_CONN_TRACKER_IN_HOST_MODE,
43 WMI_10_4_SERVICE_TDLS_EXPLICIT_MODE_ONLY,
44 + WMI_10_4_SERVICE_TDLS_WIDER_BANDWIDTH,
47 static inline char *wmi_service_name(int service_id)
48 @@ -445,6 +447,7 @@ static inline char *wmi_service_name(int
49 SVCSTR(WMI_SERVICE_SMART_LOGGING_SUPPORT);
50 SVCSTR(WMI_SERVICE_TDLS_CONN_TRACKER_IN_HOST_MODE);
51 SVCSTR(WMI_SERVICE_TDLS_EXPLICIT_MODE_ONLY);
52 + SVCSTR(WMI_SERVICE_TDLS_WIDER_BANDWIDTH);
56 @@ -741,6 +744,8 @@ static inline void wmi_10_4_svc_map(cons
57 WMI_SERVICE_TDLS_CONN_TRACKER_IN_HOST_MODE, len);
58 SVCMAP(WMI_10_4_SERVICE_TDLS_EXPLICIT_MODE_ONLY,
59 WMI_SERVICE_TDLS_EXPLICIT_MODE_ONLY, len);
60 + SVCMAP(WMI_10_4_SERVICE_TDLS_WIDER_BANDWIDTH,
61 + WMI_SERVICE_TDLS_WIDER_BANDWIDTH, len);