Ver Fonte

qcacmn: Add support for target_if timer restart

Add support for target_if timer restart when
vdev mgmt ops request is queued though the intended
response corresponding to request is not yet received.

Change-Id: I08e474ac66a0c399a93ffbc4a24aab78084072d2
CRs-Fixed: 2463180
Naga há 5 anos atrás
pai
commit
f69b80a563

+ 24 - 0
target_if/mlme/vdev_mgr/inc/target_if_vdev_mgr_tx_ops.h

@@ -62,6 +62,30 @@ target_if_vdev_mgr_get_tx_ops(struct wlan_objmgr_psoc *psoc)
 QDF_STATUS
 target_if_vdev_mgr_register_tx_ops(struct wlan_lmac_if_tx_ops *tx_ops);
 
+/**
+ * target_if_vdev_mgr_assert_mgmt() - vdev assert mgmt api
+ * @vdev: pointer to objmgr vdev
+ * @vdev_rsp: pointer to vdev mlme response timer
+ * @set_bit: bit to be set
+ *
+ * Return: NA
+ */
+#ifdef VDEV_ASSERT_MANAGEMENT
+static void target_if_vdev_mgr_assert_mgmt(
+					struct wlan_objmgr_vdev *vdev,
+					struct vdev_response_timer *vdev_rsp,
+					uint8_t set_bit)
+{
+}
+#else
+static void target_if_vdev_mgr_assert_mgmt(
+					struct wlan_objmgr_vdev *vdev,
+					struct vdev_response_timer *vdev_rsp,
+					uint8_t set_bit)
+{
+	QDF_ASSERT(0);
+}
+#endif
 #else
 
 static inline QDF_STATUS

+ 9 - 23
target_if/mlme/vdev_mgr/src/target_if_vdev_mgr_tx_ops.c

@@ -87,25 +87,6 @@ static QDF_STATUS target_if_vdev_mgr_rsp_timer_stop(
 	return QDF_STATUS_E_FAILURE;
 }
 
-#ifdef VDEV_ASSERT_MANAGEMENT
-static void target_if_vdev_mgr_assert_mgmt(
-					struct wlan_objmgr_vdev *vdev,
-					struct vdev_response_timer *vdev_rsp,
-					uint8_t set_bit)
-{
-	target_if_vdev_mgr_rsp_timer_stop(vdev, vdev_rsp,
-					  set_bit);
-}
-#else
-static void target_if_vdev_mgr_assert_mgmt(
-					struct wlan_objmgr_vdev *vdev,
-					struct vdev_response_timer *vdev_rsp,
-					uint8_t set_bit)
-{
-	QDF_ASSERT(0);
-}
-#endif
-
 static QDF_STATUS target_if_vdev_mgr_rsp_timer_start(
 					struct wlan_objmgr_vdev *vdev,
 					struct vdev_response_timer *vdev_rsp,
@@ -128,21 +109,26 @@ static QDF_STATUS target_if_vdev_mgr_rsp_timer_start(
 		if (rsp_pos != set_bit) {
 			if (qdf_atomic_test_bit(rsp_pos,
 						&vdev_rsp->rsp_status)) {
-				mlme_err("PSOC_%d VDEV_%d: Response bit is set %d",
+				mlme_err("PSOC_%d VDEV_%d: Request bit %d, response bit %d",
 					 wlan_psoc_get_id(psoc),
-					 vdev_id, vdev_rsp->rsp_status);
+					 vdev_id, set_bit,
+					 vdev_rsp->rsp_status);
 				target_if_vdev_mgr_assert_mgmt(vdev, vdev_rsp,
 							       rsp_pos);
+				target_if_vdev_mgr_rsp_timer_stop(vdev,
+								  vdev_rsp,
+								  set_bit);
 			}
 		}
 	}
 
 	if (qdf_atomic_test_and_set_bit(set_bit, &vdev_rsp->rsp_status)) {
-		mlme_err("PSOC_%d VDEV_%d: Response bit is set %d",
+		mlme_err("PSOC_%d VDEV_%d: Request bit: %d, response bit %d",
 			 wlan_psoc_get_id(psoc),
-			 vdev_id, vdev_rsp->rsp_status);
+			 vdev_id, set_bit, vdev_rsp->rsp_status);
 		target_if_vdev_mgr_assert_mgmt(vdev, vdev_rsp,
 					       set_bit);
+		target_if_vdev_mgr_rsp_timer_stop(vdev, vdev_rsp, set_bit);
 	}
 
 	/* reference taken for timer start, will be released with stop */

+ 1 - 2
umac/mlme/vdev_mgr/dispatcher/inc/wlan_vdev_mgr_tgt_if_rx_defs.h

@@ -32,8 +32,7 @@
 #define RESTART_RESPONSE_BIT  0x2
 #define STOP_RESPONSE_BIT   0x3
 #define DELETE_RESPONSE_BIT 0x4
-#define RESPONSE_BIT_MAX (START_RESPONSE_BIT | RESTART_RESPONSE_BIT |\
-			  STOP_RESPONSE_BIT | DELETE_RESPONSE_BIT)
+#define RESPONSE_BIT_MAX DELETE_RESPONSE_BIT
 
 #define START_RESPONSE_TIMER 6000 /* 6 seconds */
 #define STOP_RESPONSE_TIMER  3000 /* 3 seconds */