qcacld-3.0: Add eht_op and eht_cap of 11be for sme layer
Two new IE eht_op and eht_cap will be added for 11be. Implement eht_op and eht_cap changes for sme layer. Change-Id: If6d11e2cad2ff87ac82b07c7ecb9dd05ac53f0ee CRs-Fixed: 2908058
Этот коммит содержится в:
@@ -883,6 +883,9 @@ struct csr_roam_info {
|
||||
struct assoc_ind *owe_pending_assoc_ind;
|
||||
uint16_t roam_reason;
|
||||
struct element_info *disconnect_ies;
|
||||
#ifdef WLAN_FEATURE_11BE
|
||||
tDot11fIEeht_op eht_operation;
|
||||
#endif
|
||||
};
|
||||
|
||||
typedef struct sSirSmeAssocIndToUpperLayerCnf {
|
||||
|
@@ -3168,6 +3168,42 @@ int sme_set_auto_rate_ldpc(mac_handle_t mac_handle, uint8_t session_id,
|
||||
int sme_set_auto_rate_he_ltf(mac_handle_t mac_handle, uint8_t session_id,
|
||||
uint8_t cfg_val);
|
||||
|
||||
#ifdef WLAN_FEATURE_11BE
|
||||
/**
|
||||
* sme_update_tgt_eht_cap() - sets the EHT caps to pmac
|
||||
* @mac_handle: Pointer to MAC handle
|
||||
* @cfg: Pointer to WMA target CFG
|
||||
* @eht_cap_ini: Pointer to EHT CAP configured by INI
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
void sme_update_tgt_eht_cap(mac_handle_t mac_handle,
|
||||
struct wma_tgt_cfg *cfg,
|
||||
tDot11fIEeht_cap *eht_cap_ini);
|
||||
|
||||
/**
|
||||
* sme_update_eht_cap_nss() - sets the nss based on user request
|
||||
* @mac_handle: Opaque handle to the global MAC context
|
||||
* @session_id: SME session id
|
||||
* @nss: no.of spatial streams value
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
void sme_update_eht_cap_nss(mac_handle_t mac_handle, uint8_t session_id,
|
||||
uint8_t nss);
|
||||
|
||||
#else
|
||||
static inline void sme_update_tgt_eht_cap(mac_handle_t mac_handle,
|
||||
struct wma_tgt_cfg *cfg,
|
||||
tDot11fIEeht_cap *eht_cap_ini)
|
||||
{}
|
||||
|
||||
static inline void sme_update_eht_cap_nss(mac_handle_t mac_handle,
|
||||
uint8_t session_id,
|
||||
uint8_t nss)
|
||||
{}
|
||||
#endif
|
||||
|
||||
#ifdef WLAN_FEATURE_11AX
|
||||
/**
|
||||
* sme_update_tgt_he_cap() - sets the HE caps to pmac
|
||||
@@ -3673,6 +3709,36 @@ static inline void sme_set_ru_242_tone_tx_cfg(mac_handle_t mac_handle,
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef WLAN_FEATURE_11BE
|
||||
|
||||
/**
|
||||
* sme_set_eht_testbed_def() - set eht testbed default
|
||||
* @mac_handle: Opaque handle to the global MAC context
|
||||
* @vdev_id: VDEV id
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
void sme_set_eht_testbed_def(mac_handle_t mac_handle, uint8_t vdev_id);
|
||||
|
||||
/**
|
||||
* sme_reset_eht_caps() - reset eht capabilities
|
||||
* @mac_handle: Opaque handle to the global MAC context
|
||||
* @vdev_id: VDEV id
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
void sme_reset_eht_caps(mac_handle_t mac_handle, uint8_t vdev_id);
|
||||
#else
|
||||
static inline void sme_set_eht_testbed_def(mac_handle_t mac_handle,
|
||||
uint8_t vdev_id)
|
||||
{
|
||||
}
|
||||
|
||||
static inline void sme_reset_eht_caps(mac_handle_t mac_handle, uint8_t vdev_id)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* sme_get_mcs_idx() - gets mcs index
|
||||
* @raw_rate: raw rate from fw
|
||||
|
@@ -10774,6 +10774,20 @@ int sme_update_tx_bfee_nsts(mac_handle_t mac_handle, uint8_t session_id,
|
||||
|
||||
return sme_update_he_tx_bfee_nsts(mac_handle, session_id, nsts_set_val);
|
||||
}
|
||||
|
||||
#ifdef WLAN_FEATURE_11BE
|
||||
void sme_update_tgt_eht_cap(mac_handle_t mac_handle,
|
||||
struct wma_tgt_cfg *cfg,
|
||||
tDot11fIEeht_cap *eht_cap_ini)
|
||||
{
|
||||
}
|
||||
|
||||
void sme_update_eht_cap_nss(mac_handle_t mac_handle, uint8_t session_id,
|
||||
uint8_t nss)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef WLAN_FEATURE_11AX
|
||||
void sme_update_tgt_he_cap(mac_handle_t mac_handle,
|
||||
struct wma_tgt_cfg *cfg,
|
||||
@@ -15069,6 +15083,44 @@ void sme_reset_he_caps(mac_handle_t mac_handle, uint8_t vdev_id)
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef WLAN_FEATURE_11BE
|
||||
void sme_set_eht_testbed_def(mac_handle_t mac_handle, uint8_t vdev_id)
|
||||
{
|
||||
}
|
||||
|
||||
void sme_reset_eht_caps(mac_handle_t mac_handle, uint8_t vdev_id)
|
||||
{
|
||||
struct mac_context *mac_ctx = MAC_CONTEXT(mac_handle);
|
||||
struct csr_roam_session *session;
|
||||
QDF_STATUS status;
|
||||
|
||||
session = CSR_GET_SESSION(mac_ctx, vdev_id);
|
||||
|
||||
if (!session) {
|
||||
sme_err("No session for id %d", vdev_id);
|
||||
return;
|
||||
}
|
||||
sme_debug("reset EHT caps");
|
||||
mac_ctx->mlme_cfg->eht_caps.dot11_eht_cap =
|
||||
mac_ctx->mlme_cfg->eht_caps.eht_cap_orig;
|
||||
csr_update_session_eht_cap(mac_ctx, session);
|
||||
|
||||
wlan_cm_reset_check_6ghz_security(mac_ctx->psoc);
|
||||
status = ucfg_mlme_set_enable_bcast_probe_rsp(mac_ctx->psoc, true);
|
||||
if (QDF_IS_STATUS_ERROR(status))
|
||||
sme_err("Failed not set enable bcast probe resp info, %d",
|
||||
status);
|
||||
|
||||
status = wma_cli_set_command(vdev_id,
|
||||
WMI_VDEV_PARAM_ENABLE_BCAST_PROBE_RESPONSE,
|
||||
1, VDEV_CMD);
|
||||
if (QDF_IS_STATUS_ERROR(status))
|
||||
sme_err("Failed to set enable bcast probe resp in FW, %d",
|
||||
status);
|
||||
mac_ctx->is_usr_cfg_pmf_wep = PMF_CORRECT_KEY;
|
||||
}
|
||||
#endif
|
||||
|
||||
uint8_t sme_get_mcs_idx(uint16_t raw_rate, enum tx_rate_info rate_flags,
|
||||
bool is_he_mcs_12_13_supported,
|
||||
uint8_t *nss, uint8_t *dcm,
|
||||
|
@@ -1796,6 +1796,13 @@ uint32_t csr_convert_phy_cb_state_to_ini_value(ePhyChanBondState phyCbState)
|
||||
return cbIniValue;
|
||||
}
|
||||
|
||||
#ifdef WLAN_FEATURE_11BE
|
||||
void csr_update_session_eht_cap(struct mac_context *mac_ctx,
|
||||
struct csr_roam_session *session)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef WLAN_FEATURE_11AX
|
||||
void csr_update_session_he_cap(struct mac_context *mac_ctx,
|
||||
struct csr_roam_session *session)
|
||||
@@ -5404,6 +5411,19 @@ static inline void csr_process_fils_join_rsp(struct mac_context *mac_ctx,
|
||||
{}
|
||||
#endif
|
||||
|
||||
#ifdef WLAN_FEATURE_11BE
|
||||
static void csr_roam_process_eht_info(struct join_rsp *sme_join_rsp,
|
||||
struct csr_roam_info *roam_info)
|
||||
{
|
||||
roam_info->eht_operation = sme_join_rsp->eht_operation;
|
||||
}
|
||||
#else
|
||||
static inline void csr_roam_process_eht_info(struct join_rsp *sme_join_rsp,
|
||||
struct csr_roam_info *roam_info)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef WLAN_FEATURE_11AX
|
||||
static void csr_roam_process_he_info(struct join_rsp *sme_join_rsp,
|
||||
struct csr_roam_info *roam_info)
|
||||
@@ -5727,6 +5747,7 @@ static void csr_roam_process_join_res(struct mac_context *mac_ctx,
|
||||
roam_info->ht_operation = join_rsp->ht_operation;
|
||||
roam_info->vht_operation = join_rsp->vht_operation;
|
||||
csr_roam_process_he_info(join_rsp, roam_info);
|
||||
csr_roam_process_eht_info(join_rsp, roam_info);
|
||||
} else {
|
||||
if (cmd->u.roamCmd.fReassoc) {
|
||||
roam_info->fReassocReq =
|
||||
@@ -14075,6 +14096,7 @@ QDF_STATUS csr_setup_vdev_session(struct vdev_mlme_obj *vdev_mlme)
|
||||
vht_cap_info->ampdu_len_exponent;
|
||||
vdev_mlme->proto.vht_info.caps = vht_config.caps;
|
||||
csr_update_session_he_cap(mac_ctx, session);
|
||||
csr_update_session_eht_cap(mac_ctx, session);
|
||||
|
||||
csr_send_set_ie(vdev_mlme->mgmt.generic.type,
|
||||
vdev_mlme->mgmt.generic.subtype,
|
||||
|
@@ -958,6 +958,24 @@ bool csr_is_pmkid_found_for_peer(struct mac_context *mac,
|
||||
struct csr_roam_session *session,
|
||||
tSirMacAddr peer_mac_addr,
|
||||
uint8_t *pmkid, uint16_t pmkid_count);
|
||||
#ifdef WLAN_FEATURE_11BE
|
||||
|
||||
/**
|
||||
* csr_update_session_eht_cap() - update sme session eht capabilities
|
||||
* @mac_ctx: pointer to mac
|
||||
* @session: sme session pointer
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
void csr_update_session_eht_cap(struct mac_context *mac_ctx,
|
||||
struct csr_roam_session *session);
|
||||
#else
|
||||
static inline void csr_update_session_eht_cap(struct mac_context *mac_ctx,
|
||||
struct csr_roam_session *session)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef WLAN_FEATURE_11AX
|
||||
void csr_update_session_he_cap(struct mac_context *mac_ctx,
|
||||
struct csr_roam_session *session);
|
||||
|
Ссылка в новой задаче
Block a user