summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CORE/SYS/legacy/src/utils/src/parserApi.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/CORE/SYS/legacy/src/utils/src/parserApi.c b/CORE/SYS/legacy/src/utils/src/parserApi.c
index 9006771635ee..0da9a22ae37e 100644
--- a/CORE/SYS/legacy/src/utils/src/parserApi.c
+++ b/CORE/SYS/legacy/src/utils/src/parserApi.c
@@ -376,15 +376,27 @@ populate_dot11f_sub_20_channel_width_ie(
tDot11fIEQComVendorIE *dot11f_ptr,
tpPESession pe_session)
{
- if (mac_ctx_ptr->sub20_dynamic_channelwidth == 0)
+ uint8_t sub20_static_channelwidth;
+ uint8_t sub20_dynamic_channelwidth;
+ uint8_t sub20_capability;
+
+ sub20_static_channelwidth = mac_ctx_ptr->sub20_channelwidth;
+ sub20_dynamic_channelwidth = mac_ctx_ptr->sub20_dynamic_channelwidth;
+
+ if (sub20_static_channelwidth == 0 &&
+ sub20_dynamic_channelwidth == 0)
return;
+ if (sub20_dynamic_channelwidth != 0)
+ sub20_capability = sub20_dynamic_channelwidth;
+ else
+ sub20_capability = sub20_static_channelwidth;
+
if (LIM_IS_AP_ROLE(pe_session) ||
LIM_IS_STA_ROLE(pe_session)) {
dot11f_ptr->present = true;
dot11f_ptr->Sub20Info.present = true;
- dot11f_ptr->Sub20Info.capability =
- mac_ctx_ptr->sub20_dynamic_channelwidth;
+ dot11f_ptr->Sub20Info.capability = sub20_capability;
}
if (LIM_IS_AP_ROLE(pe_session) &&