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

qcacld-3.0: Add the ini gTDLSDiscoveryWakeTimeout

Add the support for the ini gTDLSDiscoveryWakeTimeout.
with this ini gTDLSDiscoveryWakeTimeout, FW will be awake
for configured value after sending the discovery request.

Change-Id: I194e5c99972968bbaa46ffb6b8e83604bff15a0a
CRs-Fixed: 2546515
Bala Venkatesh 5 жил өмнө
parent
commit
ff86f89448

+ 5 - 2
components/tdls/core/src/wlan_tdls_main.c

@@ -804,7 +804,7 @@ static void tdls_state_param_setting_dump(struct tdls_info *info)
 	if (!info)
 		return;
 
-	tdls_debug("Setting tdls state and param in fw: vdev_id: %d, tdls_state: %d, notification_interval_ms: %d, tx_discovery_threshold: %d, tx_teardown_threshold: %d, rssi_teardown_threshold: %d, rssi_delta: %d, tdls_options: 0x%x, peer_traffic_ind_window: %d, peer_traffic_response_timeout: %d, puapsd_mask: 0x%x, puapsd_inactivity_time: %d, puapsd_rx_frame_threshold: %d, teardown_notification_ms: %d, tdls_peer_kickout_threshold: %d",
+	tdls_debug("Setting tdls state and param in fw: vdev_id: %d, tdls_state: %d, notification_interval_ms: %d, tx_discovery_threshold: %d, tx_teardown_threshold: %d, rssi_teardown_threshold: %d, rssi_delta: %d, tdls_options: 0x%x, peer_traffic_ind_window: %d, peer_traffic_response_timeout: %d, puapsd_mask: 0x%x, puapsd_inactivity_time: %d, puapsd_rx_frame_threshold: %d, teardown_notification_ms: %d, tdls_peer_kickout_threshold: %d, tdls_discovery_wake_timeout: %d",
 		   info->vdev_id,
 		   info->tdls_state,
 		   info->notification_interval_ms,
@@ -819,7 +819,8 @@ static void tdls_state_param_setting_dump(struct tdls_info *info)
 		   info->puapsd_inactivity_time,
 		   info->puapsd_rx_frame_threshold,
 		   info->teardown_notification_ms,
-		   info->tdls_peer_kickout_threshold);
+		   info->tdls_peer_kickout_threshold,
+		   info->tdls_discovery_wake_timeout);
 
 }
 
@@ -1208,6 +1209,8 @@ void tdls_send_update_to_fw(struct tdls_vdev_priv_obj *tdls_vdev_obj,
 		tdls_soc_obj->tdls_configs.tdls_idle_timeout;
 	tdls_info_to_fw->tdls_peer_kickout_threshold =
 		tdls_soc_obj->tdls_configs.tdls_peer_kickout_threshold;
+	tdls_info_to_fw->tdls_discovery_wake_timeout =
+		tdls_soc_obj->tdls_configs.tdls_discovery_wake_timeout;
 
 	tdls_state_param_setting_dump(tdls_info_to_fw);
 

+ 28 - 0
components/tdls/dispatcher/inc/wlan_tdls_cfg.h

@@ -625,6 +625,33 @@
 	96, \
 	CFG_VALUE_OR_DEFAULT, \
 	"TDLS peer kick out threshold to firmware")
+/*
+ * <ini>
+ * gTDLSDiscoveryWakeTimeout - TDLS discovery WAKE timeout in ms.
+ * @Min: 10
+ * @Max: 5000
+ * @Default: 96
+ *
+ * DUT will wake until this timeout to receive TDLS discovery response
+ * from peer. If tdls_discovery_wake_timeout is 0x0, the DUT will
+ * choose autonomously what wake timeout value to use.
+ *
+ *
+ * Related: gEnableTDLSSupport.
+ *
+ * Supported Feature: TDLS
+ *
+ * Usage: External
+ *
+ * </ini>
+ */
+ #define CFG_TDLS_DISCOVERY_WAKE_TIMEOUT CFG_INI_UINT( \
+	"gTDLSDiscoveryWakeTimeout", \
+	0, \
+	2000, \
+	200, \
+	CFG_VALUE_OR_DEFAULT, \
+	"TDLS peer kick out threshold to firmware")
 
 /*
  * <ini>
@@ -676,6 +703,7 @@
 	CFG(CFG_TDLS_WMM_MODE_ENABLE) \
 	CFG(CFG_TDLS_SCAN_ENABLE) \
 	CFG(CFG_TDLS_PEER_KICKOUT_THRESHOLD) \
+	CFG(CFG_TDLS_DISCOVERY_WAKE_TIMEOUT) \
 	CFG(CFG_TDLS_ENABLE_DEFER_TIMER)
 
 #endif

+ 4 - 0
components/tdls/dispatcher/inc/wlan_tdls_public_structs.h

@@ -455,6 +455,7 @@ enum tdls_feature_bit {
  * @tdls_pre_off_chan_num: tdls off channel number
  * @tdls_pre_off_chan_bw: tdls off channel bandwidth
  * @tdls_peer_kickout_threshold: sta kickout threshold for tdls peer
+ * @tdls_discovery_wake_timeout: tdls discovery wake timeout
  * @delayed_trig_framint: delayed trigger frame interval
  * @tdls_vdev_nss_2g: tdls NSS setting for 2G band
  * @tdls_vdev_nss_5g: tdls NSS setting for 5G band
@@ -485,6 +486,7 @@ struct tdls_user_config {
 	uint32_t tdls_pre_off_chan_num;
 	uint32_t tdls_pre_off_chan_bw;
 	uint32_t tdls_peer_kickout_threshold;
+	uint32_t tdls_discovery_wake_timeout;
 	uint32_t delayed_trig_framint;
 	uint8_t tdls_vdev_nss_2g;
 	uint8_t tdls_vdev_nss_5g;
@@ -826,6 +828,7 @@ struct tdls_oper_config_force_peer_request {
  * @teardown_notification_ms: tdls teardown notification interval
  * @tdls_peer_kickout_threshold: tdls packets threshold
  *    for peer kickout operation
+ * @tdls_discovery_wake_timeout: tdls discovery wake timeout
  */
 struct tdls_info {
 	uint32_t vdev_id;
@@ -843,6 +846,7 @@ struct tdls_info {
 	uint32_t puapsd_rx_frame_threshold;
 	uint32_t teardown_notification_ms;
 	uint32_t tdls_peer_kickout_threshold;
+	uint32_t tdls_discovery_wake_timeout;
 };
 
 /**

+ 2 - 0
components/tdls/dispatcher/src/wlan_tdls_ucfg_api.c

@@ -200,6 +200,8 @@ static QDF_STATUS tdls_object_init_params(
 			cfg_get(psoc, CFG_TDLS_PREFERRED_OFF_CHANNEL_BW);
 	tdls_soc_obj->tdls_configs.tdls_peer_kickout_threshold =
 			cfg_get(psoc, CFG_TDLS_PEER_KICKOUT_THRESHOLD);
+	tdls_soc_obj->tdls_configs.tdls_discovery_wake_timeout =
+			cfg_get(psoc, CFG_TDLS_DISCOVERY_WAKE_TIMEOUT);
 	tdls_soc_obj->tdls_configs.delayed_trig_framint =
 			cfg_get(psoc, CFG_TL_DELAYED_TRGR_FRM_INTERVAL);
 	tdls_soc_obj->tdls_configs.tdls_wmm_mode_enable =