AP: Check driver support while auto-selecting bandwidth for AP/P2P GO am: 44b08ecc8d

Original change: https://googleplex-android-review.googlesource.com/c/platform/external/wpa_supplicant_8/+/13115217

Change-Id: I576eacfe6688c3252dfba4e813812d1c234872c8
This commit is contained in:
Hsis-Chang Chen
2020-11-26 05:50:09 +00:00
committed by Automerger Merge Worker

View File

@@ -44,6 +44,27 @@ static void wpas_wps_ap_pin_timeout(void *eloop_data, void *user_ctx);
#endif /* CONFIG_WPS */
static bool is_chanwidth160_supported(struct hostapd_hw_modes *mode,
struct hostapd_config *conf)
{
#ifdef CONFIG_IEEE80211AX
if (conf->ieee80211ax) {
struct he_capabilities *he_cap;
he_cap = &mode->he_capab[IEEE80211_MODE_AP];
if (he_cap->phy_cap[HE_PHYCAP_CHANNEL_WIDTH_SET_IDX] &
(HE_PHYCAP_CHANNEL_WIDTH_SET_80PLUS80MHZ_IN_5G |
HE_PHYCAP_CHANNEL_WIDTH_SET_160MHZ_IN_5G))
return true;
}
#endif /* CONFIG_IEEE80211AX */
if (mode->vht_capab & (VHT_CAP_SUPP_CHAN_WIDTH_160MHZ |
VHT_CAP_SUPP_CHAN_WIDTH_160_80PLUS80MHZ))
return true;
return false;
}
static void wpas_conf_ap_vht(struct wpa_supplicant *wpa_s,
struct wpa_ssid *ssid,
struct hostapd_config *conf,
@@ -98,7 +119,7 @@ static void wpas_conf_ap_vht(struct wpa_supplicant *wpa_s,
*/
conf->vht_oper_chwidth = CHANWIDTH_160MHZ;
center_chan = wpas_p2p_get_vht160_center(wpa_s, mode, channel);
if (center_chan) {
if (center_chan && is_chanwidth160_supported(mode, conf)) {
wpa_printf(MSG_DEBUG,
"VHT center channel %u for auto-selected 160 MHz bandwidth",
center_chan);