qcacmn: Add extract routines for WMI ext service ready event
Add helper routines to extract TLV params in WMI EXT service ready event. These helper routines abstracts all TLV related information providing APIs to extract ext serivce ready params. Change-Id: Ic989331856ed2f9376965bdec4b658328f9e470b CRs-Fixed: 1079237
This commit is contained in:

committed by
qcabuildsw

parent
b4ddf9c925
commit
9c71b366e9
@@ -6685,5 +6685,156 @@ struct encrypt_decrypt_req_params {
|
||||
uint8_t *data;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct wmi_host_ppe_threshold -PPE threshold
|
||||
* @numss_m1: NSS - 1
|
||||
* @ru_count: Max RU count
|
||||
* @ppet16_ppet8_ru3_ru0: ppet8 and ppet16 for max num ss
|
||||
*/
|
||||
#define WMI_HOST_MAX_NUM_SS 8
|
||||
struct wmi_host_ppe_threshold {
|
||||
uint32_t numss_m1;
|
||||
uint32_t ru_count;
|
||||
uint32_t ppet16_ppet8_ru3_ru0[WMI_HOST_MAX_NUM_SS];
|
||||
};
|
||||
|
||||
/**
|
||||
* struct wmi_host_service_ext_param - EXT service base params in event
|
||||
* @default_conc_scan_config_bits: Default concurrenct scan config
|
||||
* @default_fw_config_bits: Default HW config bits
|
||||
* @wmi_host_ppe_threshold ppet: Host PPE threshold struct
|
||||
* @he_cap_info: HE capabality info
|
||||
* @mpdu_density: units are microseconds
|
||||
* @max_bssid_rx_filters: Maximum no of BSSID based RX filters host can program
|
||||
* Value 0 means FW hasn't given any limit to host.
|
||||
* @num_hw_modes: Number of HW modes in event
|
||||
* @num_phy: Number of Phy mode.
|
||||
*/
|
||||
struct wmi_host_service_ext_param {
|
||||
uint32_t default_conc_scan_config_bits;
|
||||
uint32_t default_fw_config_bits;
|
||||
struct wmi_host_ppe_threshold ppet;
|
||||
uint32_t he_cap_info;
|
||||
uint32_t mpdu_density;
|
||||
uint32_t max_bssid_rx_filters;
|
||||
uint32_t num_hw_modes;
|
||||
uint32_t num_phy;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct wmi_host_hw_mode_caps - HW mode capabilities in EXT event
|
||||
* @hw_mode_id: identify a particular set of HW characteristics,
|
||||
* as specified by the subsequent fields
|
||||
* @phy_id_map: BIT0 represents phy_id 0, BIT1 represent phy_id 1 and so on
|
||||
*/
|
||||
struct wmi_host_hw_mode_caps {
|
||||
uint32_t hw_mode_id;
|
||||
uint32_t phy_id_map;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct wmi_host_mac_phy_caps - Phy caps recvd in EXT service
|
||||
* @hw_mode_id: identify a particular set of HW characteristics,
|
||||
* as specified by the subsequent fields. WMI_MAC_PHY_CAPABILITIES
|
||||
* element must be mapped to its parent WMI_HW_MODE_CAPABILITIES
|
||||
* element using hw_mode_id. No particular ordering of
|
||||
* WMI_MAC_PHY_CAPABILITIES elements should be
|
||||
* assumed, though in practice the elements may always be ordered
|
||||
* by hw_mode_id.
|
||||
* @pdev_id: pdev_id starts with 1. pdev_id 1 => phy_id 0, pdev_id 2 => phy_id 1
|
||||
* @phy_id: Starts with 0
|
||||
* @union of supported modulations
|
||||
* @supported_bands: supported bands, enum WLAN_BAND_CAPABILITY
|
||||
* @ampdu_density: ampdu density 0 for no restriction, 1 for 1/4 us,
|
||||
* 2 for 1/2 us, 3 for 1 us,4 for 2 us, 5 for 4 us,
|
||||
* 6 for 8 us,7 for 16 us
|
||||
* @max_bw_supported_2G: max bw supported 2G, enum wmi_channel_width
|
||||
* @ht_cap_info_2G: WMI HT Capability, WMI_HT_CAP defines
|
||||
* @vht_cap_info_2G: VHT capability info field of 802.11ac, WMI_VHT_CAP defines
|
||||
* @vht_supp_mcs_2G: VHT Supported MCS Set field Rx/Tx same
|
||||
* The max VHT-MCS for n SS subfield (where n = 1,...,8) is encoded as
|
||||
* follows
|
||||
* - 0 indicates support for VHT-MCS 0-7 for n spatial streams
|
||||
* - 1 indicates support for VHT-MCS 0-8 for n spatial streams
|
||||
* - 2 indicates support for VHT-MCS 0-9 for n spatial streams
|
||||
* - 3 indicates that n spatial streams is not supported
|
||||
* @he_cap_info_2G: HE capability info field of 802.11ax, WMI_HE_CAP defines
|
||||
* @he_supp_mcs_2G: HE Supported MCS Set field Rx/Tx same
|
||||
* @tx_chain_mask_2G: Valid Transmit chain mask
|
||||
* @rx_chain_mask_2G: Valid Receive chain mask
|
||||
* @max_bw_supported_5G: max bw supported 5G, enum wmi_channel_width
|
||||
* @ht_cap_info_5G: WMI HT Capability, WMI_HT_CAP defines
|
||||
* @vht_cap_info_5G: VHT capability info field of 802.11ac, WMI_VHT_CAP defines
|
||||
* @vht_supp_mcs_5G: VHT Supported MCS Set field Rx/Tx same
|
||||
* The max VHT-MCS for n SS subfield (where n = 1,...,8) is encoded as
|
||||
* follows
|
||||
* - 0 indicates support for VHT-MCS 0-7 for n spatial streams
|
||||
* - 1 indicates support for VHT-MCS 0-8 for n spatial streams
|
||||
* - 2 indicates support for VHT-MCS 0-9 for n spatial streams
|
||||
* - 3 indicates that n spatial streams is not supported
|
||||
* @he_cap_info_5G: HE capability info field of 802.11ax, WMI_HE_CAP defines
|
||||
* @he_supp_mcs_5G: HE Supported MCS Set field Rx/Tx same
|
||||
* @tx_chain_mask_5G: Valid Transmit chain mask
|
||||
* @rx_chain_mask_5G: Valid Receive chain mask
|
||||
*/
|
||||
struct wmi_host_mac_phy_caps {
|
||||
uint32_t hw_mode_id;
|
||||
uint32_t pdev_id;
|
||||
uint32_t phy_id;
|
||||
union {
|
||||
uint32_t supports_11b:1,
|
||||
supports_11g:1,
|
||||
supports_11a:1,
|
||||
supports_11n:1,
|
||||
supports_11ac:1,
|
||||
supports_11ax:1;
|
||||
uint32_t supported_flags;
|
||||
};
|
||||
uint32_t supported_bands;
|
||||
uint32_t ampdu_density;
|
||||
uint32_t max_bw_supported_2G;
|
||||
uint32_t ht_cap_info_2G;
|
||||
uint32_t vht_cap_info_2G;
|
||||
uint32_t vht_supp_mcs_2G;
|
||||
uint32_t he_cap_info_2G;
|
||||
uint32_t he_supp_mcs_2G;
|
||||
uint32_t tx_chain_mask_2G;
|
||||
uint32_t rx_chain_mask_2G;
|
||||
uint32_t max_bw_supported_5G;
|
||||
uint32_t ht_cap_info_5G;
|
||||
uint32_t vht_cap_info_5G;
|
||||
uint32_t vht_supp_mcs_5G;
|
||||
uint32_t he_cap_info_5G;
|
||||
uint32_t he_supp_mcs_5G;
|
||||
uint32_t tx_chain_mask_5G;
|
||||
uint32_t rx_chain_mask_5G;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct WMI_HOST_HAL_REG_CAPABILITIES_EXT: Below are Reg caps per PHY.
|
||||
* Please note PHY ID starts with 0.
|
||||
* @phy_id: phy id starts with 0.
|
||||
* @eeprom_reg_domain: regdomain value specified in EEPROM
|
||||
* @eeprom_reg_domain_ext: regdomain
|
||||
* @regcap1: CAP1 capabilities bit map, see REGDMN_CAP1_ defines
|
||||
* @regcap2: REGDMN EEPROM CAP, see REGDMN_EEPROM_EEREGCAP_ defines
|
||||
* @wireless_modes: REGDMN MODE, see REGDMN_MODE_ enum
|
||||
* @low_2ghz_chan: 2G channel low
|
||||
* @high_2ghz_chan: 2G channel High
|
||||
* @low_5ghz_chan: 5G channel low
|
||||
* @high_5ghz_chan: 5G channel High
|
||||
*/
|
||||
struct WMI_HOST_HAL_REG_CAPABILITIES_EXT {
|
||||
uint32_t phy_id;
|
||||
uint32_t eeprom_reg_domain;
|
||||
uint32_t eeprom_reg_domain_ext;
|
||||
uint32_t regcap1;
|
||||
uint32_t regcap2;
|
||||
uint32_t wireless_modes;
|
||||
uint32_t low_2ghz_chan;
|
||||
uint32_t high_2ghz_chan;
|
||||
uint32_t low_5ghz_chan;
|
||||
uint32_t high_5ghz_chan;
|
||||
};
|
||||
#endif /* _WMI_UNIFIED_PARAM_H_ */
|
||||
|
||||
|
Reference in New Issue
Block a user