qcacld-3.0: Handle HE capable flags during 6ghz ap chanswitch
Set he_6ghz_band flag when SAP is switching to 6Ghz band. And clear the flag when switching to non-6ghz band. The Driver will add the 6ghz op info in HE operation IE in beacon frame if he_6ghz_band is set. Change-Id: I281a9bb239c5fea693e640a8ecddf4ffc14ba7d8 CRs-Fixed: 2602152
Esse commit está contido em:
@@ -4964,6 +4964,17 @@ static void lim_process_sme_channel_change_request(struct mac_context *mac_ctx,
|
||||
ch_change_req->nw_type,
|
||||
ch_change_req->dot11mode);
|
||||
|
||||
if (IS_DOT11_MODE_HE(ch_change_req->dot11mode) &&
|
||||
lim_is_session_he_capable(session_entry)) {
|
||||
lim_update_session_he_capable_chan_switch
|
||||
(mac_ctx, session_entry, target_freq);
|
||||
} else if (wlan_reg_is_6ghz_chan_freq(target_freq)) {
|
||||
pe_debug("Invalid target_freq %d for dot11mode %d cur HE %d",
|
||||
target_freq, ch_change_req->dot11mode,
|
||||
lim_is_session_he_capable(session_entry));
|
||||
return;
|
||||
}
|
||||
|
||||
/* Store the New Channel Params in session_entry */
|
||||
session_entry->ch_width = ch_change_req->ch_width;
|
||||
session_entry->ch_center_freq_seg0 =
|
||||
|
@@ -7195,6 +7195,28 @@ void lim_update_session_he_capable(struct mac_context *mac, struct pe_session *s
|
||||
pe_debug("he_capable: %d", session->he_capable);
|
||||
}
|
||||
|
||||
void lim_update_session_he_capable_chan_switch(struct mac_context *mac,
|
||||
struct pe_session *session,
|
||||
uint32_t new_chan_freq)
|
||||
{
|
||||
session->he_capable = true;
|
||||
if (wlan_reg_is_6ghz_chan_freq(session->curr_op_freq) &&
|
||||
!wlan_reg_is_6ghz_chan_freq(new_chan_freq)) {
|
||||
session->htCapability = 1;
|
||||
session->vhtCapability = 1;
|
||||
session->he_6ghz_band = 0;
|
||||
} else if (!wlan_reg_is_6ghz_chan_freq(session->curr_op_freq) &&
|
||||
wlan_reg_is_6ghz_chan_freq(new_chan_freq)) {
|
||||
session->htCapability = 0;
|
||||
session->vhtCapability = 0;
|
||||
session->he_6ghz_band = 1;
|
||||
}
|
||||
|
||||
pe_debug("he_capable: %d ht %d vht %d 6ghz_band %d new freq %d",
|
||||
session->he_capable, session->htCapability,
|
||||
session->vhtCapability, session->he_6ghz_band, new_chan_freq);
|
||||
}
|
||||
|
||||
void lim_set_he_caps(struct mac_context *mac, struct pe_session *session, uint8_t *ie_start,
|
||||
uint32_t num_bytes)
|
||||
{
|
||||
|
@@ -1279,6 +1279,20 @@ void lim_update_stads_he_capable(tpDphHashNode sta_ds, tpSirAssocReq assoc_req);
|
||||
*/
|
||||
void lim_update_session_he_capable(struct mac_context *mac, struct pe_session *session);
|
||||
|
||||
/**
|
||||
* lim_update_session_he_capable_chan_switch(): Update he_capable in PE session
|
||||
* @mac: pointer to MAC context
|
||||
* @session: pointer to PE session
|
||||
* @new_chan_freq: new channel frequency Mhz
|
||||
*
|
||||
* Update session he capable during AP channel switching
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
void lim_update_session_he_capable_chan_switch(struct mac_context *mac,
|
||||
struct pe_session *session,
|
||||
uint32_t new_chan_freq);
|
||||
|
||||
/**
|
||||
* lim_set_he_caps() - update HE caps to be sent to FW as part of scan IE
|
||||
* @mac: pointer to MAC
|
||||
@@ -1474,6 +1488,13 @@ static inline void lim_update_session_he_capable(struct mac_context *mac,
|
||||
{
|
||||
}
|
||||
|
||||
static inline
|
||||
void lim_update_session_he_capable_chan_switch(struct mac_context *mac,
|
||||
struct pe_session *session,
|
||||
uint32_t new_chan_freq)
|
||||
{
|
||||
}
|
||||
|
||||
static inline void lim_set_he_caps(struct mac_context *mac, struct pe_session *session,
|
||||
uint8_t *ie_start, uint32_t num_bytes)
|
||||
{
|
||||
|
Referência em uma nova issue
Block a user