Bladeren bron

qcacld-3.0: Reset twt active command if ack fail

Reset twt active command if ack fails due to firmware internal
error.

Change-Id: Ic980314261ab4f6deb437b36e525ea59c286eee2
CRs-Fixed: 2997509
Jyoti Kumari 3 jaren geleden
bovenliggende
commit
bf9589ac92

+ 17 - 10
components/mlme/dispatcher/inc/wlan_mlme_twt_ucfg_api.h

@@ -239,19 +239,18 @@ QDF_STATUS
 ucfg_mlme_get_twt_res_service_cap(struct wlan_objmgr_psoc *psoc, bool *val);
 
 /**
- * ucfg_mlme_reset_twt_init_context() - Reset twt init if ack fail
- * This is to handle back to back command. If ack failed for previous
- * command and again new commad comes then init context should reset to
- * allow new command.
+ * ucfg_mlme_reset_twt_active_cmd() - Reset twt active cmd if ack fail
+ * This is to handle back to back command. If ack failed for active
+ * command then reset this command to allow new twt command.
  * @psoc: pointer to psoc object
  * @peer_mac: peer mac address
  * @dialog_id: dialog id
  *
  * Return: QDF Status
  */
-QDF_STATUS ucfg_mlme_reset_twt_init_context(struct wlan_objmgr_psoc *psoc,
-					    struct qdf_mac_addr *peer_mac,
-					    uint8_t dialog_id);
+QDF_STATUS ucfg_mlme_reset_twt_active_cmd(struct wlan_objmgr_psoc *psoc,
+					  struct qdf_mac_addr *peer_mac,
+					  uint8_t dialog_id);
 
 /**
  * ucfg_mlme_is_twt_setup_in_progress() - Get TWT setup in progress for
@@ -659,9 +658,9 @@ ucfg_mlme_set_twt_responder_flag(struct wlan_objmgr_psoc *psoc,
 }
 
 static inline QDF_STATUS
-ucfg_mlme_reset_twt_init_context(struct wlan_objmgr_psoc *psoc,
-				 struct qdf_mac_addr *peer_mac,
-				 uint8_t dialog_id)
+ucfg_mlme_reset_twt_reset_cmd(struct wlan_objmgr_psoc *psoc,
+			      struct qdf_mac_addr *peer_mac,
+			      uint8_t dialog_id)
 {
 	return QDF_STATUS_E_NOSUPPORT;
 }
@@ -760,5 +759,13 @@ ucfg_mlme_get_twt_res_service_cap(struct wlan_objmgr_psoc *psoc, bool *val)
 	return QDF_STATUS_E_NOSUPPORT;
 }
 
+static inline QDF_STATUS
+ucfg_mlme_reset_twt_active_cmd(struct wlan_objmgr_psoc *psoc,
+			       struct qdf_mac_addr *peer_mac,
+			       uint8_t dialog_id)
+{
+	return QDF_STATUS_E_NOSUPPORT;
+}
+
 #endif /* defined(WLAN_SUPPORT_TWT) && defined(WLAN_FEATURE_11AX) */
 #endif /* _WLAN_MLME_TWT_UCFG_API_H_ */

+ 3 - 4
components/mlme/dispatcher/src/wlan_mlme_twt_ucfg_api.c

@@ -118,13 +118,12 @@ ucfg_mlme_set_twt_responder_flag(struct wlan_objmgr_psoc *psoc, bool val)
 }
 
 QDF_STATUS
-ucfg_mlme_reset_twt_init_context(struct wlan_objmgr_psoc *psoc,
-				 struct qdf_mac_addr *peer_macaddr,
-				 uint8_t dialog_id)
+ucfg_mlme_reset_twt_active_cmd(struct wlan_objmgr_psoc *psoc,
+			       struct qdf_mac_addr *peer_macaddr,
+			       uint8_t dialog_id)
 {
 	mlme_set_twt_command_in_progress(psoc, peer_macaddr, dialog_id,
 					 WLAN_TWT_NONE);
-	mlme_init_twt_context(psoc, peer_macaddr, dialog_id);
 
 	return QDF_STATUS_SUCCESS;
 }

+ 9 - 5
core/hdd/src/wlan_hdd_twt.c

@@ -1714,7 +1714,11 @@ int hdd_send_twt_add_dialog_cmd(struct hdd_context *hdd_ctx,
 	ack_priv = osif_request_priv(request);
 	if (ack_priv->status) {
 		hdd_err("Received TWT ack error. Reset twt command");
-		ucfg_mlme_reset_twt_init_context(
+		ucfg_mlme_reset_twt_active_cmd(
+				hdd_ctx->psoc,
+				(struct qdf_mac_addr *)twt_params->peer_macaddr,
+				twt_params->dialog_id);
+		 ucfg_mlme_init_twt_context(
 				hdd_ctx->psoc,
 				(struct qdf_mac_addr *)twt_params->peer_macaddr,
 				twt_params->dialog_id);
@@ -2102,7 +2106,7 @@ int hdd_send_twt_del_dialog_cmd(struct hdd_context *hdd_ctx,
 	ack_priv = osif_request_priv(request);
 	if (ack_priv->status) {
 		hdd_err("Received TWT ack error. Reset twt command");
-		ucfg_mlme_reset_twt_init_context(
+		ucfg_mlme_reset_twt_active_cmd(
 				hdd_ctx->psoc,
 				(struct qdf_mac_addr *)twt_params->peer_macaddr,
 				twt_params->dialog_id);
@@ -2647,7 +2651,7 @@ int hdd_send_twt_pause_dialog_cmd(struct hdd_context *hdd_ctx,
 	ack_priv = osif_request_priv(request);
 	if (ack_priv->status) {
 		hdd_err("Received TWT ack error. Reset twt command");
-		ucfg_mlme_reset_twt_init_context(
+		ucfg_mlme_reset_twt_active_cmd(
 				hdd_ctx->psoc,
 				(struct qdf_mac_addr *)twt_params->peer_macaddr,
 				twt_params->dialog_id);
@@ -2806,7 +2810,7 @@ int hdd_send_twt_nudge_dialog_cmd(struct hdd_context *hdd_ctx,
 	ack_priv = osif_request_priv(request);
 	if (ack_priv->status) {
 		hdd_err("Received TWT ack error. Reset twt command");
-		ucfg_mlme_reset_twt_init_context(
+		ucfg_mlme_reset_twt_active_cmd(
 				hdd_ctx->psoc,
 				(struct qdf_mac_addr *)twt_params->peer_macaddr,
 				twt_params->dialog_id);
@@ -3107,7 +3111,7 @@ hdd_send_twt_resume_dialog_cmd(struct hdd_context *hdd_ctx,
 	ack_priv = osif_request_priv(request);
 	if (ack_priv->status) {
 		hdd_err("Received TWT ack error. Reset twt command");
-		ucfg_mlme_reset_twt_init_context(
+		ucfg_mlme_reset_twt_active_cmd(
 				hdd_ctx->psoc,
 				(struct qdf_mac_addr *)twt_params->peer_macaddr,
 				twt_params->dialog_id);