|
@@ -9516,6 +9516,30 @@ static void lim_abort_channel_change(struct mac_context *mac_ctx,
|
|
|
lim_sys_process_mmh_msg_api(mac_ctx, &sch_msg);
|
|
|
}
|
|
|
|
|
|
+#ifdef WLAN_FEATURE_11AX
|
|
|
+static inline void
|
|
|
+lim_update_he_capable(struct pe_session *session, uint8_t dot11mode)
|
|
|
+{
|
|
|
+ session->he_capable = IS_DOT11_MODE_HE(dot11mode);
|
|
|
+}
|
|
|
+#else
|
|
|
+static inline void
|
|
|
+lim_update_he_capable(struct pe_session *session, uint8_t dot11mode)
|
|
|
+{}
|
|
|
+#endif
|
|
|
+#ifdef WLAN_FEATURE_11BE
|
|
|
+static inline void
|
|
|
+lim_update_eht_capable(struct pe_session *session, uint8_t dot11mode)
|
|
|
+{
|
|
|
+ session->eht_capable = IS_DOT11_MODE_EHT(dot11mode);
|
|
|
+}
|
|
|
+#else
|
|
|
+static inline void
|
|
|
+lim_update_eht_capable(struct pe_session *session, uint8_t dot11mode)
|
|
|
+{}
|
|
|
+#endif
|
|
|
+
|
|
|
+
|
|
|
/**
|
|
|
* lim_process_sme_channel_change_request() - process sme ch change req
|
|
|
*
|
|
@@ -9597,10 +9621,20 @@ static void lim_process_sme_channel_change_request(struct mac_context *mac_ctx,
|
|
|
session_entry->channelChangeReasonCode =
|
|
|
LIM_SWITCH_CHANNEL_MONITOR;
|
|
|
|
|
|
- pe_nofl_debug("SAP CSA: %d ---> %d, ch_bw %d, nw_type %d, dot11mode %d",
|
|
|
+ pe_nofl_debug("SAP CSA: %d ---> %d, ch_bw %d, nw_type %d, dot11mode %d, old dot11mode %d",
|
|
|
session_entry->curr_op_freq, target_freq,
|
|
|
ch_change_req->ch_width, ch_change_req->nw_type,
|
|
|
- ch_change_req->dot11mode);
|
|
|
+ ch_change_req->dot11mode, session_entry->dot11mode);
|
|
|
+
|
|
|
+ /* Update ht/vht/he/eht capability as per the new dot11mode */
|
|
|
+ if (ch_change_req->dot11mode != session_entry->dot11mode) {
|
|
|
+ session_entry->htCapability =
|
|
|
+ IS_DOT11_MODE_HT(ch_change_req->dot11mode);
|
|
|
+ session_entry->vhtCapability =
|
|
|
+ IS_DOT11_MODE_VHT(ch_change_req->dot11mode);
|
|
|
+ lim_update_he_capable(session_entry, ch_change_req->dot11mode);
|
|
|
+ lim_update_eht_capable(session_entry, ch_change_req->dot11mode);
|
|
|
+ }
|
|
|
|
|
|
if (IS_DOT11_MODE_HE(ch_change_req->dot11mode) &&
|
|
|
((QDF_MONITOR_MODE == session_entry->opmode) ||
|