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

qcacmn: Add Api to flush all scan and non scan commands for vdev

Add Api to flush all scan and non scan commands for vdev

Change-Id: I17b90b8db782639897d7d32d36f562e25ae459e3
CRs-Fixed: 2664640
Abhishek Singh 5 жил өмнө
parent
commit
f50b491842

+ 11 - 0
umac/cmn_services/serialization/inc/wlan_serialization_api.h

@@ -676,6 +676,17 @@ void wlan_serialization_purge_all_pending_cmd_by_vdev_id(
 					struct wlan_objmgr_pdev *pdev,
 					uint8_t vdev_id);
 
+/**
+ * wlan_serialization_purge_all_cmd_by_vdev_id() - Purge all scan and non scan
+ * commands for vdev id
+ * @pdev: pointer to pdev
+ * @vdev_id: vdev_id variable
+ *
+ * Return: none
+ */
+void wlan_serialization_purge_all_cmd_by_vdev_id(struct wlan_objmgr_pdev *pdev,
+						 uint8_t vdev_id);
+
 /**
  * wlan_serialization_purge_all_scan_cmd_by_vdev_id() - Purge all pending/active
  * scan commands for vdev id

+ 38 - 0
umac/cmn_services/serialization/src/wlan_serialization_api.c

@@ -892,6 +892,44 @@ void wlan_serialization_purge_all_pending_cmd_by_vdev_id(
 	wlan_objmgr_vdev_release_ref(vdev, WLAN_SERIALIZATION_ID);
 }
 
+void wlan_serialization_purge_all_cmd_by_vdev_id(struct wlan_objmgr_pdev *pdev,
+						 uint8_t vdev_id)
+{
+	struct wlan_objmgr_vdev *vdev;
+	struct wlan_ser_pdev_obj *ser_pdev_obj;
+
+	if (!pdev) {
+		ser_err("Invalid pdev");
+		return;
+	}
+
+	ser_pdev_obj = wlan_serialization_get_pdev_obj(pdev);
+	if (!ser_pdev_obj) {
+		ser_err("invalid ser_pdev_obj");
+		return;
+	}
+
+	vdev = wlan_objmgr_get_vdev_by_id_from_pdev(pdev, vdev_id,
+						    WLAN_SERIALIZATION_ID);
+	if (!vdev) {
+		ser_err("Invalid vdev");
+		return;
+	}
+
+	wlan_ser_cancel_scan_cmd(ser_pdev_obj, pdev, vdev, NULL,
+				 WLAN_SER_CMD_SCAN, false);
+	wlan_ser_cancel_scan_cmd(ser_pdev_obj, pdev, vdev, NULL,
+				 WLAN_SER_CMD_SCAN, true);
+	wlan_ser_cancel_non_scan_cmd(ser_pdev_obj, pdev, vdev, NULL,
+				     WLAN_SER_CMD_NONSCAN, false,
+				     WLAN_SER_CMD_ATTR_NONE);
+	wlan_ser_cancel_non_scan_cmd(ser_pdev_obj, pdev, vdev, NULL,
+				     WLAN_SER_CMD_NONSCAN, true,
+				     WLAN_SER_CMD_ATTR_NONE);
+
+	wlan_objmgr_vdev_release_ref(vdev, WLAN_SERIALIZATION_ID);
+}
+
 void wlan_serialization_purge_all_scan_cmd_by_vdev_id(
 					struct wlan_objmgr_pdev *pdev,
 					uint8_t vdev_id)