diff --git a/umac/cmn_services/obj_mgr/inc/wlan_objmgr_psoc_service_ready_api.h b/umac/cmn_services/obj_mgr/inc/wlan_objmgr_psoc_service_ready_api.h index 52ec569055..890a8bac67 100644 --- a/umac/cmn_services/obj_mgr/inc/wlan_objmgr_psoc_service_ready_api.h +++ b/umac/cmn_services/obj_mgr/inc/wlan_objmgr_psoc_service_ready_api.h @@ -79,6 +79,8 @@ struct wlan_psoc_hal_reg_capability { * @txrx_chainmask: TXRX chain mask * @default_dbs_hw_mode_index: DBS hw mode index * @num_msdu_desc: number of msdu desc + * @fw_version: FW build version + * @fw_version_1: Second dword of FW version (Valid for non-tlv FW) */ struct wlan_psoc_target_capability_info { uint32_t phy_capability; @@ -98,6 +100,8 @@ struct wlan_psoc_target_capability_info { uint32_t txrx_chainmask; uint32_t default_dbs_hw_mode_index; uint32_t num_msdu_desc; + uint32_t fw_version; + uint32_t fw_version_1; }; /** @@ -299,6 +303,9 @@ struct wlan_psoc_host_chainmask_table { * @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. + * @fw_build_vers_ext: Extended FW build version info. + * bits 27:0 rsvd + * bits 31:28 CRM sub ID * @num_hw_modes: Number of HW modes in event * @num_phy: Number of Phy mode. * @num_chainmask_tables: Number of chain mask tables. @@ -311,6 +318,7 @@ struct wlan_psoc_host_service_ext_param { uint32_t he_cap_info; uint32_t mpdu_density; uint32_t max_bssid_rx_filters; + uint32_t fw_build_vers_ext; uint32_t num_hw_modes; uint32_t num_phy; uint32_t num_chainmask_tables; diff --git a/wmi/src/wmi_unified_non_tlv.c b/wmi/src/wmi_unified_non_tlv.c index ad9257ecd3..16755e3c09 100644 --- a/wmi/src/wmi_unified_non_tlv.c +++ b/wmi/src/wmi_unified_non_tlv.c @@ -5589,6 +5589,8 @@ static QDF_STATUS extract_service_ready_non_tlv(wmi_unified_t wmi_handle, cap->sys_cap_info = ev->sys_cap_info; cap->min_pkt_size_enable = ev->min_pkt_size_enable; cap->max_bcn_ie_size = ev->max_bcn_ie_size; + cap->fw_version = ev->sw_version; + cap->fw_version_1 = ev->sw_version_1; /* Following caps not recieved in older fw/hw * Initialize it as zero(default). */ cap->max_num_scan_channels = 0; diff --git a/wmi/src/wmi_unified_tlv.c b/wmi/src/wmi_unified_tlv.c index 406569994c..4507bf45f1 100644 --- a/wmi/src/wmi_unified_tlv.c +++ b/wmi/src/wmi_unified_tlv.c @@ -16231,6 +16231,9 @@ static QDF_STATUS extract_service_ready_tlv(wmi_unified_t wmi_handle, cap->txrx_chainmask = ev->txrx_chainmask; cap->default_dbs_hw_mode_index = ev->default_dbs_hw_mode_index; cap->num_msdu_desc = ev->num_msdu_desc; + cap->fw_version = ev->fw_build_vers; + /* fw_version_1 is not available in TLV. */ + cap->fw_version_1 = 0; return QDF_STATUS_SUCCESS; } @@ -17864,6 +17867,7 @@ static QDF_STATUS extract_service_ready_ext_tlv(wmi_unified_t wmi_handle, param->he_cap_info = ev->he_cap_info; param->mpdu_density = ev->mpdu_density; param->max_bssid_rx_filters = ev->max_bssid_rx_filters; + param->fw_build_vers_ext = ev->fw_build_vers_ext; qdf_mem_copy(¶m->ppet, &ev->ppet, sizeof(param->ppet)); hw_caps = param_buf->soc_hw_mode_caps;