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

qcacmn: Add API for max connect timeout

Add API for max connect timeout

CRs-Fixed: 2835411
Change-Id: I08e488963df9fae591ab0d8f36283b05cb2d5e08
Vivek 4 éve
szülő
commit
c528ee61e6

+ 1 - 3
umac/mlme/connection_mgr/core/src/wlan_cm_connect.c

@@ -233,8 +233,6 @@ cm_ser_connect_cb(struct wlan_serialization_command *cmd,
 	return status;
 }
 
-#define CONNECT_TIMEOUT       30000
-
 static QDF_STATUS cm_ser_connect_req(struct wlan_objmgr_pdev *pdev,
 				     struct cnx_mgr *cm_ctx,
 				     struct cm_connect_req *cm_req)
@@ -256,7 +254,7 @@ static QDF_STATUS cm_ser_connect_req(struct wlan_objmgr_pdev *pdev,
 	cmd.cmd_cb = cm_ser_connect_cb;
 	cmd.source = WLAN_UMAC_COMP_MLME;
 	cmd.is_high_priority = false;
-	cmd.cmd_timeout_duration = CONNECT_TIMEOUT;
+	cmd.cmd_timeout_duration = cm_ctx->connect_timeout;
 	cmd.vdev = cm_ctx->vdev;
 	cmd.is_blocking = cm_ser_get_blocking_cmd();
 

+ 2 - 0
umac/mlme/connection_mgr/core/src/wlan_cm_main.c

@@ -88,6 +88,8 @@ QDF_STATUS wlan_cm_init(struct vdev_mlme_obj *vdev_mlme)
 	}
 	vdev_mlme->cnx_mgr_ctx->max_connect_attempts =
 					CM_MAX_CONNECT_ATTEMPTS;
+	vdev_mlme->cnx_mgr_ctx->connect_timeout =
+					CM_MAX_CONNECT_TIMEOUT;
 	qdf_list_create(&vdev_mlme->cnx_mgr_ctx->req_list, CM_MAX_REQ);
 	cm_req_lock_create(vdev_mlme->cnx_mgr_ctx);
 

+ 3 - 0
umac/mlme/connection_mgr/core/src/wlan_cm_main.h

@@ -31,6 +31,7 @@
 
 /* Max candidate/attempts to be tried to connect */
 #define CM_MAX_CONNECT_ATTEMPTS 5
+#define CM_MAX_CONNECT_TIMEOUT 30000
 /*
  * Default max retry attempts to be tried for a candidate.
  * In SAE connection this value will be overwritten from the sae_connect_retries
@@ -177,6 +178,7 @@ struct connect_ies {
  * connect req
  * @global_cmd_id: global cmd id for getting cm id for connect/disconnect req
  * @max_connect_attempts: Max attempts to be tried for a connect req
+ * @connect_timeout: Connect timeout value in milliseconds
  * @scan_requester_id: scan requester id.
  * @disconnect_complete: disconnect completion wait event
  */
@@ -196,6 +198,7 @@ struct cnx_mgr {
 	struct connect_ies req_ie;
 	qdf_atomic_t global_cmd_id;
 	uint8_t max_connect_attempts;
+	uint32_t connect_timeout;
 	wlan_scan_requester scan_requester_id;
 	qdf_event_t disconnect_complete;
 };

+ 12 - 0
umac/mlme/connection_mgr/core/src/wlan_cm_main_api.h

@@ -732,6 +732,18 @@ void cm_inform_bcn_probe(struct cnx_mgr *cm_ctx, uint8_t *bcn_probe,
 void cm_set_max_connect_attempts(struct wlan_objmgr_vdev *vdev,
 				 uint8_t max_connect_attempts);
 
+/**
+ * cm_set_max_connect_timeout() - Set max connect timeout
+ * @vdev: vdev pointer
+ * @max_connect_timeout: max connect timeout to be set.
+ *
+ * Set max connect timeout.
+ *
+ * Return: void
+ */
+void cm_set_max_connect_timeout(struct wlan_objmgr_vdev *vdev,
+				uint32_t max_connect_timeout);
+
 /**
  * cm_is_vdev_connecting() - check if vdev is in conneting state
  * @vdev: vdev pointer

+ 12 - 0
umac/mlme/connection_mgr/core/src/wlan_cm_util.c

@@ -740,6 +740,18 @@ void cm_set_max_connect_attempts(struct wlan_objmgr_vdev *vdev,
 		   cm_ctx->max_connect_attempts, max_connect_attempts);
 }
 
+void cm_set_max_connect_timeout(struct wlan_objmgr_vdev *vdev,
+				uint32_t max_connect_timeout)
+{
+	struct cnx_mgr *cm_ctx;
+
+	cm_ctx = cm_get_cm_ctx(vdev);
+	if (!cm_ctx)
+		return;
+
+	cm_ctx->connect_timeout = max_connect_timeout;
+}
+
 QDF_STATUS
 cm_fill_disconnect_resp_from_cm_id(struct cnx_mgr *cm_ctx, wlan_cm_id cm_id,
 				   struct wlan_cm_discon_rsp *resp)

+ 12 - 0
umac/mlme/connection_mgr/dispatcher/inc/wlan_cm_api.h

@@ -143,6 +143,18 @@ QDF_STATUS wlan_cm_disconnect_rsp(struct wlan_objmgr_vdev *vdev,
 void wlan_cm_set_max_connect_attempts(struct wlan_objmgr_vdev *vdev,
 				      uint8_t max_connect_attempts);
 
+/**
+ * wlan_cm_set_max_connect_timeout() - Set max connect timeout
+ * @vdev: vdev pointer
+ * @max_connect_timeout: max connect timeout to be set.
+ *
+ * Set max connect timeout.
+ *
+ * Return: void
+ */
+void wlan_cm_set_max_connect_timeout(struct wlan_objmgr_vdev *vdev,
+				     uint32_t max_connect_timeout);
+
 /**
  * wlan_cm_is_vdev_connecting() - check if vdev is in conneting state
  * @vdev: vdev pointer

+ 6 - 0
umac/mlme/connection_mgr/dispatcher/src/wlan_cm_api.c

@@ -101,6 +101,12 @@ void wlan_cm_set_max_connect_attempts(struct wlan_objmgr_vdev *vdev,
 	cm_set_max_connect_attempts(vdev, max_connect_attempts);
 }
 
+void wlan_cm_set_max_connect_timeout(struct wlan_objmgr_vdev *vdev,
+				     uint32_t max_connect_timeout)
+{
+	cm_set_max_connect_timeout(vdev, max_connect_timeout);
+}
+
 bool wlan_cm_is_vdev_connecting(struct wlan_objmgr_vdev *vdev)
 {
 	return cm_is_vdev_connecting(vdev);