Forráskód Böngészése

qcacmn: Add new API to reset AP link info from mlo_mgr

Add new API to reset AP link info from mlo_mgr.

Change-Id: I806859456a435ba09b0def26ca58fe04759d04f5
CRs-Fixed: 3530707
Deeksha Gupta 2 éve
szülő
commit
a886fa16eb

+ 9 - 0
umac/mlo_mgr/inc/wlan_mlo_mgr_link_switch.h

@@ -182,6 +182,15 @@ void mlo_mgr_update_link_info_reset(struct wlan_mlo_dev_context *ml_dev);
 void mlo_mgr_update_ap_link_info(struct wlan_objmgr_vdev *vdev, uint8_t link_id,
 				 uint8_t *ap_link_addr,
 				 struct wlan_channel channel);
+
+/**
+ * mlo_mgr_reset_ap_link_info() - Reset AP links information
+ * @vdev: Object Manager vdev
+ *
+ * Reset AP links information in MLD
+ */
+void mlo_mgr_reset_ap_link_info(struct wlan_objmgr_vdev *vdev);
+
 /**
  * mlo_mgr_update_ap_channel_info() - Update AP channel information
  * @vdev: Object Manager vdev

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

@@ -120,12 +120,33 @@ void mlo_mgr_update_link_info_reset(struct wlan_mlo_dev_context *ml_dev)
 	     link_info_iter++) {
 		qdf_mem_zero(&link_info->link_addr, QDF_MAC_ADDR_SIZE);
 		qdf_mem_zero(&link_info->ap_link_addr, QDF_MAC_ADDR_SIZE);
+		qdf_mem_zero(link_info->link_chan_info,
+			     sizeof(*link_info->link_chan_info));
 		link_info->vdev_id = WLAN_INVALID_VDEV_ID;
 		link_info->link_id = WLAN_INVALID_LINK_ID;
 		link_info++;
 	}
 }
 
+void mlo_mgr_reset_ap_link_info(struct wlan_objmgr_vdev *vdev)
+{
+	struct mlo_link_info *link_info;
+	uint8_t link_info_iter;
+
+	if (!vdev || !vdev->mlo_dev_ctx)
+		return;
+
+	link_info = &vdev->mlo_dev_ctx->link_ctx->links_info[0];
+
+	for (link_info_iter = 0; link_info_iter < 3; link_info_iter++) {
+		qdf_mem_zero(&link_info->ap_link_addr, QDF_MAC_ADDR_SIZE);
+		qdf_mem_zero(link_info->link_chan_info,
+			     sizeof(*link_info->link_chan_info));
+		link_info->link_id = WLAN_INVALID_LINK_ID;
+		link_info++;
+	}
+}
+
 struct mlo_link_info
 *mlo_mgr_get_ap_link_by_link_id(struct wlan_objmgr_vdev *vdev, int link_id)
 {