浏览代码

qcacmn: Extend wmi_service for n-link MLO connection

Extend wmi_service for n-link MLO connection.

Change-Id: I269d1730eb59dcf492aca675b0fbfc3e56a0fbb7
CRs-Fixed: 3512375
Deeksha Gupta 2 年之前
父节点
当前提交
589214a617
共有 3 个文件被更改,包括 55 次插入0 次删除
  1. 32 0
      target_if/core/inc/target_if.h
  2. 2 0
      target_if/init_deinit/inc/service_ready_param.h
  3. 21 0
      wmi/src/wmi_unified_tlv.c

+ 32 - 0
target_if/core/inc/target_if.h

@@ -2513,6 +2513,38 @@ static inline int32_t target_psoc_get_num_hw_modes
 	return tgt_hdl->info.service_ext_param.num_hw_modes;
 }
 
+#ifdef WLAN_FEATURE_11BE_MLO
+static inline
+uint32_t target_psoc_get_num_max_mlo_link(struct target_psoc_info *tgt_hdl)
+{
+	if (!tgt_hdl)
+		return 0;
+
+	return tgt_hdl->info.service_ext2_param.num_max_mlo_link_per_ml_bss_supp;
+}
+
+static inline
+uint16_t target_if_res_cfg_get_num_max_mlo_link(struct target_psoc_info *tgt_hdl)
+{
+	if (!tgt_hdl)
+		return 0;
+
+	return tgt_hdl->info.wlan_res_cfg.num_max_mlo_link_per_ml_bss;
+}
+#else
+static inline
+uint32_t target_psoc_get_num_max_mlo_link(struct target_psoc_info *tgt_hdl)
+{
+	return 0;
+}
+
+static inline
+uint16_t target_if_res_cfg_get_num_max_mlo_link(struct target_psoc_info *tgt_hdl)
+{
+	return 0;
+}
+#endif
+
 #ifdef WLAN_SUPPORT_TWT
 #ifdef WLAN_TWT_AP_PDEV_COUNT_NUM_PHY
 static inline void target_if_set_twt_ap_pdev_count

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

@@ -481,6 +481,7 @@ struct wlan_psoc_host_service_ext_param {
  * @num_msdu_idx_qtype_map: Number of HTT_MSDUQ_INDEX to HTT_MSDU_QTYPE
  *                          mapping
  * @is_multipass_sap: Multipass sap flag
+ * @num_max_mlo_link_per_ml_bss_supp: max link number per MLD FW supports.
  */
 struct wlan_psoc_host_service_ext2_param {
 	uint8_t reg_db_version_major;
@@ -514,6 +515,7 @@ struct wlan_psoc_host_service_ext2_param {
 #ifdef QCA_MULTIPASS_SUPPORT
 	bool is_multipass_sap;
 #endif
+	uint32_t num_max_mlo_link_per_ml_bss_supp;
 };
 
 #endif /* _SERVICE_READY_PARAM_H_*/

+ 21 - 0
wmi/src/wmi_unified_tlv.c

@@ -14349,6 +14349,25 @@ extract_multipass_sap_cap(struct wlan_psoc_host_service_ext2_param *param,
 }
 #endif
 
+#if defined(WLAN_FEATURE_11BE_MLO_ADV_FEATURE)
+static inline void
+extract_num_max_mlo_link(wmi_service_ready_ext2_event_fixed_param *ev,
+			 struct wlan_psoc_host_service_ext2_param *param)
+{
+	param->num_max_mlo_link_per_ml_bss_supp =
+				ev->num_max_mlo_link_per_ml_bss_supp;
+
+	wmi_debug("Firmware Max MLO link support: %d",
+		  param->num_max_mlo_link_per_ml_bss_supp);
+}
+#else
+static inline void
+extract_num_max_mlo_link(wmi_service_ready_ext2_event_fixed_param *ev,
+			 struct wlan_psoc_host_service_ext2_param *param)
+{
+}
+#endif
+
 /**
  * extract_service_ready_ext2_tlv() - extract service ready ext2 params from
  * event
@@ -14427,6 +14446,8 @@ extract_service_ready_ext2_tlv(wmi_unified_t wmi_handle, uint8_t *event,
 
 	extract_hw_bdf_status(ev);
 
+	extract_num_max_mlo_link(ev, param);
+
 	return QDF_STATUS_SUCCESS;
 }