浏览代码

qcacmn: Add support to get single/multi soc info

Add support to get single/multi soc info for
a mld vdev list

Change-Id: I082e1172bdfad0188944a79da9652b9ffd09290b
CRs-Fixed: 3141416
Surya Prakash Raajen 3 年之前
父节点
当前提交
e1ddefa5f2
共有 2 个文件被更改,包括 32 次插入0 次删除
  1. 11 0
      umac/mlo_mgr/inc/wlan_mlo_mgr_setup.h
  2. 21 0
      umac/mlo_mgr/src/wlan_mlo_mgr_setup.c

+ 11 - 0
umac/mlo_mgr/inc/wlan_mlo_mgr_setup.h

@@ -112,4 +112,15 @@ void mlo_setup_update_soc_down(struct wlan_objmgr_psoc *psoc);
  */
 QDF_STATUS mlo_link_teardown_link(struct wlan_objmgr_psoc *psoc,
 				  uint32_t reason);
+
+/**
+ * mlo_vdevs_check_single_soc() - API to check all the vaps in vdev list
+ *                                belong to single soc or not
+ * @wlan_vdev_list: List of all vdevs to check
+ * @vdev_count: Number of vdevs in the list
+ *
+ * Return: bool: True if belongs to single soc else false
+ */
+bool mlo_vdevs_check_single_soc(struct wlan_objmgr_vdev **wlan_vdev_list,
+				uint8_t vdev_count);
 #endif

+ 21 - 0
umac/mlo_mgr/src/wlan_mlo_mgr_setup.c

@@ -125,6 +125,27 @@ static QDF_STATUS mlo_find_pdev_idx(struct wlan_objmgr_pdev *pdev,
 	return QDF_STATUS_E_FAILURE;
 }
 
+#define WLAN_SOC_ID_NOT_INITIALIZED -1
+bool mlo_vdevs_check_single_soc(struct wlan_objmgr_vdev **wlan_vdev_list,
+				uint8_t vdev_count)
+{
+	int i;
+	uint8_t soc_id = WLAN_SOC_ID_NOT_INITIALIZED;
+
+	for (i = 0; i < vdev_count; i++) {
+		uint8_t vdev_soc_id = wlan_vdev_get_psoc_id(wlan_vdev_list[i]);
+
+		if (i == 0)
+			soc_id = vdev_soc_id;
+		else if (soc_id != vdev_soc_id)
+			return false;
+	}
+
+	return true;
+}
+
+qdf_export_symbol(mlo_vdevs_check_single_soc);
+
 void mlo_setup_update_num_links(struct wlan_objmgr_psoc *psoc,
 				uint8_t num_links)
 {