wlan-ap-Telecominfraproject/feeds/wifi-ax/hostapd/patches/e00-001-send-6ghz-cap-to-kernel-and-fix-6ghz-op-class.patch
John Crispin 6b7f1b9009 hostapd-ax: update to ath11k-ed2 release
Signed-off-by: John Crispin <john@phrozen.org>
2020-12-02 09:48:18 +01:00

73 lines
1.9 KiB
Diff

--- a/src/drivers/driver_nl80211.c
+++ b/src/drivers/driver_nl80211.c
@@ -4960,6 +4960,14 @@ static int wpa_driver_nl80211_sta_add(vo
goto fail;
}
+ if (params->he_6ghz_capab) {
+ wpa_hexdump(MSG_DEBUG, " * he_6ghz_capab",
+ (u8 *) params->he_6ghz_capab, sizeof(*params->he_6ghz_capab));
+ if (nla_put(msg, NL80211_ATTR_HE_6GHZ_CAPABILITY,
+ sizeof(*params->he_6ghz_capab), params->he_6ghz_capab))
+ goto fail;
+ }
+
if (params->ext_capab) {
wpa_hexdump(MSG_DEBUG, " * ext_capab",
params->ext_capab, params->ext_capab_len);
--- a/src/common/ieee802_11_common.c
+++ b/src/common/ieee802_11_common.c
@@ -884,6 +884,7 @@ enum hostapd_hw_mode ieee80211_freq_to_c
u8 *op_class, u8 *channel)
{
u8 vht_opclass;
+ u8 he_6ghz_opclass;
/* TODO: more operating classes */
@@ -931,15 +932,19 @@ enum hostapd_hw_mode ieee80211_freq_to_c
switch (chanwidth) {
case CHANWIDTH_80MHZ:
vht_opclass = 128;
+ he_6ghz_opclass = 133;
break;
case CHANWIDTH_160MHZ:
vht_opclass = 129;
+ he_6ghz_opclass = 134;
break;
case CHANWIDTH_80P80MHZ:
vht_opclass = 130;
+ he_6ghz_opclass = 135;
break;
default:
vht_opclass = 0;
+ he_6ghz_opclass = 0;
break;
}
@@ -1030,15 +1035,17 @@ enum hostapd_hw_mode ieee80211_freq_to_c
}
if (freq > 5950 && freq <= 7115) {
- int bw;
- u8 idx = (freq - 5950) / 5;
-
- bw = center_idx_to_bw_6ghz(idx);
- if (bw < 0)
+ if ((freq - 5950) % 5)
return NUM_HOSTAPD_MODES;
- *channel = idx;
- *op_class = 131 + bw;
+ if (he_6ghz_opclass)
+ *op_class = he_6ghz_opclass;
+ else if (sec_channel == 1 || sec_channel == -1)
+ *op_class = 132;
+ else
+ *op_class = 131;
+
+ *channel = (freq - 5950) / 5;
return HOSTAPD_MODE_IEEE80211A;
}