diff --git a/core/mac/inc/sir_api.h b/core/mac/inc/sir_api.h index c4f89ca469..71286b7cfd 100644 --- a/core/mac/inc/sir_api.h +++ b/core/mac/inc/sir_api.h @@ -2582,6 +2582,7 @@ typedef struct sSirUpdateChan { uint8_t ht_en; uint8_t vht_en; uint8_t vht_24_en; + bool he_en; tSirUpdateChanParam chanParam[1]; } tSirUpdateChanList, *tpSirUpdateChanList; diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c index 8011675110..05bc42c2d2 100644 --- a/core/sme/src/csr/csr_api_roam.c +++ b/core/sme/src/csr/csr_api_roam.c @@ -1158,6 +1158,12 @@ QDF_STATUS csr_update_channel_list(struct mac_context *mac) eCSR_CFG_DOT11_MODE_11N_ONLY)) { pChanList->ht_en = true; } + if ((mac->roam.configParam.uCfgDot11Mode == eCSR_CFG_DOT11_MODE_AUTO) || + (mac->roam.configParam.uCfgDot11Mode == eCSR_CFG_DOT11_MODE_11AX) || + (mac->roam.configParam.uCfgDot11Mode == + eCSR_CFG_DOT11_MODE_11AX_ONLY)) + pChanList->he_en = true; + msg.type = WMA_UPDATE_CHAN_LIST_REQ; msg.reserved = 0; msg.bodyptr = pChanList; diff --git a/core/wma/src/wma_scan_roam.c b/core/wma/src/wma_scan_roam.c index cdad463287..e01159eabd 100644 --- a/core/wma/src/wma_scan_roam.c +++ b/core/wma/src/wma_scan_roam.c @@ -152,6 +152,9 @@ QDF_STATUS wma_update_channel_list(WMA_HANDLE handle, if (chan_list->ht_en) chan_p->allow_ht = 1; + if (chan_list->he_en) + chan_p->allow_he = 1; + if (chan_list->chanParam[i].half_rate) chan_p->half_rate = 1; else if (chan_list->chanParam[i].quarter_rate)