qcacld-3.0: Extract aux device capability

Extract aux device capability and store it in wma/hdd/mlme.

current only 1 aux supported so only save info
for aux0.

Change-Id: Ib19bad6cf3c0bda5a31ea4993a2f7e587b2043e2
CRs-Fixed: 3549751
This commit is contained in:
jingxiang ge
2023-07-03 16:17:33 +08:00
committed by Rahul Choudhary
parent 16acdd350d
commit 1c1828f5d8
5 changed files with 245 additions and 0 deletions

View File

@@ -87,6 +87,19 @@ void
wlan_mlme_update_cfg_with_tgt_caps(struct wlan_objmgr_psoc *psoc,
struct mlme_tgt_caps *tgt_caps);
/**
* wlan_mlme_update_aux_dev_caps() - Update mlme aux capability
* @psoc: pointer to psoc object
* @wlan_mlme_aux_dev_caps: array for aux dev capability
*
* Return: None
*/
void
wlan_mlme_update_aux_dev_caps(struct wlan_objmgr_psoc *psoc,
struct wlan_mlme_aux_dev_caps
wlan_mlme_aux_dev_caps[]);
/*
* mlme_get_wep_key() - get the wep key to process during auth frame
* @vdev: VDEV object for which the wep key is being requested
@@ -1002,6 +1015,23 @@ QDF_STATUS wlan_mlme_get_oce_sap_enabled_info(struct wlan_objmgr_psoc *psoc,
*/
void wlan_mlme_update_oce_flags(struct wlan_objmgr_pdev *pdev);
/**
* wlan_mlme_cfg_get_aux_supported_modes() - get supported mode of aux.
* definition of bitmap refer WMI_AUX_DEV_CAPS_SUPPORTED_MODE.
*
* @psoc: pointer to psoc object
* @aux_index: aux index, current only support aux0.
* @hw_mode_id: hw mode id
* @supported_modes_bitmap: output for value
*
* Return: true for getting value. false for failure check.
*/
bool wlan_mlme_cfg_get_aux_supported_modes(
struct wlan_objmgr_psoc *psoc,
uint32_t aux_index,
enum wlan_mlme_hw_mode_config_type hw_mode_id,
uint32_t *supported_modes_bitmap);
#ifdef WLAN_FEATURE_11AX
/**
* wlan_mlme_cfg_get_he_ul_mumimo() - Get the HE Ul Mumio

View File

@@ -1337,6 +1337,71 @@ struct wlan_user_mcc_quota {
uint8_t vdev_id;
};
/**
* enum wlan_mlme_hw_mode_config_type - HW mode config type replicated from
* wmi_hw_mode_config_type in FW header.
* similar as wmi_host_hw_mode_config_type.
* @WLAN_MLME_HW_MODE_SINGLE: Only one PHY is active.
* @WLAN_MLME_HW_MODE_DBS: Both PHYs are active in different bands,
* one in 2G and another in 5G.
* @WLAN_MLME_HW_MODE_SBS_PASSIVE: Both PHYs are in passive mode (only rx) in
* same band; no tx allowed.
* @WLAN_MLME_HW_MODE_SBS: Both PHYs are active in the same band.
* Support for both PHYs within one band is planned
* for 5G only(as indicated in WMI_MAC_PHY_CAPABILITIES),
* but could be extended to other bands in the future.
* The separation of the band between the two PHYs needs
* to be communicated separately.
* @WLAN_MLME_HW_MODE_DBS_SBS: 3 PHYs, with 2 on the same band doing SBS
* as in WMI_HW_MODE_SBS, and 3rd on the other band
* @WLAN_MLME_HW_MODE_DBS_OR_SBS: Two PHY with one PHY capabale of both 2G and
* 5G. It can support SBS (5G + 5G) OR DBS (5G + 2G).
* @WLAN_MLME_HW_MODE_DBS_2G_5G: Both PHYs are active in different bands.
* PhyA 2G and PhyB 5G
* @WLAN_MLME_HW_MODE_2G_PHYB: Only one phy is active. 2G mode on PhyB.
* @WLAN_MLME_HW_MODE_EMLSR: Both PHYs are active in listen mode in 1x1
* and Tx/Rx trigger on any PHY will switch
* from 1x1 to 2x2 on that Phy
* @WLAN_MLME_HW_MODE_AUX_EMLSR_SINGLE: PHYA0 and AUX are active in listen mode
* in 1x1 and Tx/Rx trigger on any.
* PHY will switch from 1x1 to 2x2
* on that Phy.
* @WLAN_MLME_HW_MODE_AUX_EMLSR_SPLIT: PHYA1 and AUX are active in listen mode
* in 1x1 and Tx/Rx trigger on any.
* PHY will switch from 1x1 to 2x2
* on that Phy.
* @WLAN_MLME_HW_MODE_MAX: Max hw_mode_id.
*/
enum wlan_mlme_hw_mode_config_type {
WLAN_MLME_HW_MODE_SINGLE = 0,
WLAN_MLME_HW_MODE_DBS = 1,
WLAN_MLME_HW_MODE_SBS_PASSIVE = 2,
WLAN_MLME_HW_MODE_SBS = 3,
WLAN_MLME_HW_MODE_DBS_SBS = 4,
WLAN_MLME_HW_MODE_DBS_OR_SBS = 5,
WLAN_MLME_HW_MODE_DBS_2G_5G = 6,
WLAN_MLME_HW_MODE_2G_PHYB = 7,
WLAN_MLME_HW_MODE_EMLSR = 8,
WLAN_MLME_HW_MODE_AUX_EMLSR_SINGLE = 9,
WLAN_MLME_HW_MODE_AUX_EMLSR_SPLIT = 10,
WLAN_MLME_HW_MODE_MAX,
};
/* struct wlan_mlme_aux_dev_caps - wlan mlme aux dev capability
*
* @supported_modes_bitmap: indicate which mode this AUX supports for the
* HW mode defined in hw_mode_id
* @listen_pdev_id_map: indicate which AUX MAC can listen/scan for the HW mode
* described in hw_mode_id
* @emlsr_pdev_id_map: indicate which AUX MAC can perform eMLSR for the HW mode
* described in hw_mode_id.
*/
struct wlan_mlme_aux_dev_caps {
uint32_t supported_modes_bitmap;
uint32_t listen_pdev_id_map;
uint32_t emlsr_pdev_id_map;
};
/* struct wlan_mlme_generic - Generic CFG config items
*
* @band_capability: HW Band Capability - Both or 2.4G only or 5G only
@@ -1396,6 +1461,7 @@ struct wlan_user_mcc_quota {
* @safe_mode_enable: safe mode to bypass some strict 6 GHz checks for
* connection, bypass strict power levels
* @sr_enable_modes: modes for which SR(Spatial Reuse) is enabled
* @wlan_mlme_aux0_dev_caps: capability for aux0
*/
struct wlan_mlme_generic {
uint32_t band_capability;
@@ -1460,6 +1526,8 @@ struct wlan_mlme_generic {
#if defined(WLAN_FEATURE_SR)
uint32_t sr_enable_modes;
#endif
struct wlan_mlme_aux_dev_caps
wlan_mlme_aux0_dev_caps[WLAN_MLME_HW_MODE_MAX];
};
/**