mirror of https://github.com/hak5/openwrt.git
65 lines
2.4 KiB
Diff
65 lines
2.4 KiB
Diff
From 14d65775687cb3a6f76a52f48f4be27a522bb396 Mon Sep 17 00:00:00 2001
|
|
From: Balaji Pothunoori <bpothuno@qti.qualcomm.com>
|
|
Date: Thu, 21 Dec 2017 20:00:42 +0530
|
|
Subject: [PATCH] ath10k: advertise TDLS wider bandwidth support for 5GHz
|
|
|
|
Enable TDLS wider bandwidth support for 5GHz based on firmware wmi capabilities.
|
|
|
|
This patch is required for chipset QCA9888. Tested with firmware version
|
|
10.4-3.5.1-00018.
|
|
|
|
Signed-off-by: Balaji Pothunoori <bpothuno@qti.qualcomm.com>
|
|
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
|
|
---
|
|
drivers/net/wireless/ath/ath10k/mac.c | 3 ++-
|
|
drivers/net/wireless/ath/ath10k/wmi.h | 5 +++++
|
|
2 files changed, 7 insertions(+), 1 deletion(-)
|
|
|
|
--- a/drivers/net/wireless/ath/ath10k/mac.c
|
|
+++ b/drivers/net/wireless/ath/ath10k/mac.c
|
|
@@ -8236,7 +8236,8 @@ int ath10k_mac_register(struct ath10k *a
|
|
if (test_bit(WMI_SERVICE_TDLS, ar->wmi.svc_map) ||
|
|
test_bit(WMI_SERVICE_TDLS_EXPLICIT_MODE_ONLY, ar->wmi.svc_map)) {
|
|
ar->hw->wiphy->flags |= WIPHY_FLAG_SUPPORTS_TDLS;
|
|
- ieee80211_hw_set(ar->hw, TDLS_WIDER_BW);
|
|
+ if (test_bit(WMI_SERVICE_TDLS_WIDER_BANDWIDTH, ar->wmi.svc_map))
|
|
+ ieee80211_hw_set(ar->hw, TDLS_WIDER_BW);
|
|
}
|
|
|
|
ar->hw->wiphy->flags |= WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL;
|
|
--- a/drivers/net/wireless/ath/ath10k/wmi.h
|
|
+++ b/drivers/net/wireless/ath/ath10k/wmi.h
|
|
@@ -196,6 +196,7 @@ enum wmi_service {
|
|
WMI_SERVICE_TDLS_CONN_TRACKER_IN_HOST_MODE,
|
|
WMI_SERVICE_TDLS_EXPLICIT_MODE_ONLY,
|
|
WMI_SERVICE_MGMT_TX_WMI,
|
|
+ WMI_SERVICE_TDLS_WIDER_BANDWIDTH,
|
|
|
|
/* keep last */
|
|
WMI_SERVICE_MAX,
|
|
@@ -337,6 +338,7 @@ enum wmi_10_4_service {
|
|
WMI_10_4_SERVICE_TDLS_UAPSD_SLEEP_STA,
|
|
WMI_10_4_SERVICE_TDLS_CONN_TRACKER_IN_HOST_MODE,
|
|
WMI_10_4_SERVICE_TDLS_EXPLICIT_MODE_ONLY,
|
|
+ WMI_10_4_SERVICE_TDLS_WIDER_BANDWIDTH,
|
|
};
|
|
|
|
static inline char *wmi_service_name(int service_id)
|
|
@@ -445,6 +447,7 @@ static inline char *wmi_service_name(int
|
|
SVCSTR(WMI_SERVICE_SMART_LOGGING_SUPPORT);
|
|
SVCSTR(WMI_SERVICE_TDLS_CONN_TRACKER_IN_HOST_MODE);
|
|
SVCSTR(WMI_SERVICE_TDLS_EXPLICIT_MODE_ONLY);
|
|
+ SVCSTR(WMI_SERVICE_TDLS_WIDER_BANDWIDTH);
|
|
default:
|
|
return NULL;
|
|
}
|
|
@@ -741,6 +744,8 @@ static inline void wmi_10_4_svc_map(cons
|
|
WMI_SERVICE_TDLS_CONN_TRACKER_IN_HOST_MODE, len);
|
|
SVCMAP(WMI_10_4_SERVICE_TDLS_EXPLICIT_MODE_ONLY,
|
|
WMI_SERVICE_TDLS_EXPLICIT_MODE_ONLY, len);
|
|
+ SVCMAP(WMI_10_4_SERVICE_TDLS_WIDER_BANDWIDTH,
|
|
+ WMI_SERVICE_TDLS_WIDER_BANDWIDTH, len);
|
|
}
|
|
|
|
#undef SVCMAP
|