Эх сурвалжийг харах

qcacmn: Get UL-MUMIMO support from Target

Read UL-MUMIMO from target cap flag

CRs-Fixed: 3255924
Change-Id: I02d7644b3dc43c757d8363d8de0f66c856c041ce
Shreedhar Parande 3 жил өмнө
parent
commit
4854e732d7

+ 12 - 0
target_if/init_deinit/inc/service_ready_param.h

@@ -451,6 +451,12 @@ struct wlan_psoc_host_service_ext_param {
  * @max_users_ul_mumimo: Max number of users per-PPDU for Uplink MU-MIMO
  * @twt_ack_support_cap: TWT ack capability support
  * @target_cap_flags: Rx peer metadata version number used by target
+ * @ul_mumimo_tx_2g: UL MUMIMO Tx support for 2GHz
+ * @ul_mumimo_tx_5g: UL MUMIMO Tx support for 5GHz
+ * @ul_mumimo_tx_5g: UL MUMIMO Tx support for 6GHz
+ * @ul_mumimo_rx_2g: UL MUMIMO Rx support for 2GHz
+ * @ul_mumimo_rx_5g: UL MUMIMO Rx support for 5GHz
+ * @ul_mumimo_rx_6g: UL MUMIMO Rx support for 6GHz
  * @afc_dev_type: AFC deployment type
  */
 struct wlan_psoc_host_service_ext2_param {
@@ -469,6 +475,12 @@ struct wlan_psoc_host_service_ext2_param {
 	uint16_t max_users_ul_mumimo;
 	uint32_t twt_ack_support_cap:1;
 	uint32_t target_cap_flags;
+	uint8_t ul_mumimo_tx_2g:1,
+		ul_mumimo_tx_5g:1,
+		ul_mumimo_tx_6g:1,
+		ul_mumimo_rx_2g:1,
+		ul_mumimo_rx_5g:1,
+		ul_mumimo_rx_6g:1;
 #if defined(CONFIG_AFC_SUPPORT)
 	enum reg_afc_dev_deploy_type afc_dev_type;
 #endif

+ 20 - 0
wmi/src/wmi_unified_tlv.c

@@ -13298,6 +13298,25 @@ extract_svc_rdy_ext2_afc_tlv(wmi_service_ready_ext2_event_fixed_param *ev,
 }
 #endif
 
+/**
+ * extract_ul_mumimo_support) - extract UL-MUMIMO capability from target cap
+ * @param: Pointer to hold the params
+ *
+ * Return: Void
+ */
+static void
+extract_ul_mumimo_support(struct wlan_psoc_host_service_ext2_param *param)
+{
+	uint32_t tgt_cap = param->target_cap_flags;
+
+	param->ul_mumimo_rx_2g = WMI_TARGET_CAP_UL_MU_MIMO_RX_SUPPORT_2GHZ_GET(tgt_cap);
+	param->ul_mumimo_rx_5g = WMI_TARGET_CAP_UL_MU_MIMO_RX_SUPPORT_5GHZ_GET(tgt_cap);
+	param->ul_mumimo_rx_6g = WMI_TARGET_CAP_UL_MU_MIMO_RX_SUPPORT_6GHZ_GET(tgt_cap);
+	param->ul_mumimo_tx_2g = WMI_TARGET_CAP_UL_MU_MIMO_TX_SUPPORT_2GHZ_GET(tgt_cap);
+	param->ul_mumimo_tx_5g = WMI_TARGET_CAP_UL_MU_MIMO_TX_SUPPORT_5GHZ_GET(tgt_cap);
+	param->ul_mumimo_tx_6g = WMI_TARGET_CAP_UL_MU_MIMO_TX_SUPPORT_6GHZ_GET(tgt_cap);
+}
+
 /**
  * extract_service_ready_ext2_tlv() - extract service ready ext2 params from
  * event
@@ -13355,6 +13374,7 @@ extract_service_ready_ext2_tlv(wmi_unified_t wmi_handle, uint8_t *event,
 	param->max_users_ul_mumimo = WMI_MAX_USER_PER_PPDU_UL_MUMIMO_GET(
 						ev->max_user_per_ppdu_mumimo);
 	param->target_cap_flags = ev->target_cap_flags;
+	extract_ul_mumimo_support(param);
 	wmi_debug("htt peer data :%d", ev->target_cap_flags);
 
 	extract_svc_rdy_ext2_afc_tlv(ev, param);