qcacld-3.0: Enable TDLS configures based on converged CFG component
Enable TDLS configures based on converged cfg component and remove legacy codes. Change-Id: I77221a8493c8a20efdae9e714a98da74f5c6b6ed CRs-Fixed: 2277572
This commit is contained in:
1
Kbuild
1
Kbuild
@@ -832,6 +832,7 @@ UMAC_TDLS_OBJS := $(UMAC_TDLS_DIR)/core/src/wlan_tdls_main.o \
|
||||
$(UMAC_TDLS_DIR)/dispatcher/src/wlan_tdls_tgt_api.o \
|
||||
$(UMAC_TDLS_DIR)/dispatcher/src/wlan_tdls_ucfg_api.o \
|
||||
$(UMAC_TDLS_DIR)/dispatcher/src/wlan_tdls_utils_api.o \
|
||||
$(UMAC_TDLS_DIR)/dispatcher/src/wlan_tdls_cfg.o \
|
||||
$(WLAN_COMMON_ROOT)/os_if/linux/tdls/src/wlan_cfg80211_tdls.o
|
||||
|
||||
########### BMI ###########
|
||||
|
@@ -25,6 +25,13 @@
|
||||
#define CFG_P2P_ALL
|
||||
#endif
|
||||
|
||||
#ifdef CONVERGED_TDLS_ENABLE
|
||||
#include "wlan_tdls_cfg.h"
|
||||
#else
|
||||
#define CFG_TDLS_ALL
|
||||
#endif
|
||||
|
||||
#define CFG_ALL \
|
||||
CFG_CONVERGED_ALL \
|
||||
CFG_P2P_ALL
|
||||
CFG_P2P_ALL \
|
||||
CFG_TDLS_ALL
|
||||
|
@@ -6276,413 +6276,6 @@ enum hdd_link_speed_rpt_type {
|
||||
#define CFG_PREVENT_LINK_DOWN_DEFAULT (0)
|
||||
#endif /* QCA_WIFI_NAPIER_EMULATION */
|
||||
|
||||
#ifdef FEATURE_WLAN_TDLS
|
||||
/*
|
||||
* <ini>
|
||||
* gEnableTDLSSupport - Enable support for TDLS.
|
||||
* @Min: 0
|
||||
* @Max: 1
|
||||
* @Default: 0
|
||||
*
|
||||
* This ini is used to enable/disable TDLS support.
|
||||
*
|
||||
* Related: None.
|
||||
*
|
||||
* Supported Feature: TDLS
|
||||
*
|
||||
* Usage: Internal/External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_TDLS_SUPPORT_ENABLE "gEnableTDLSSupport"
|
||||
#define CFG_TDLS_SUPPORT_ENABLE_MIN (0)
|
||||
#define CFG_TDLS_SUPPORT_ENABLE_MAX (1)
|
||||
#define CFG_TDLS_SUPPORT_ENABLE_DEFAULT (0)
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* gEnableTDLSImplicitTrigger - Enable Implicit TDLS.
|
||||
* @Min: 0
|
||||
* @Max: 1
|
||||
* @Default: 0
|
||||
*
|
||||
* This ini is used to enable/disable implicit TDLS.
|
||||
* CLD driver initiates TDLS Discovery towards a peer whenever TDLS Setup
|
||||
* criteria (throughput and RSSI thresholds) is met and then it tears down
|
||||
* TDLS when teardown criteria (idle packet count and RSSI) is met.
|
||||
*
|
||||
* Related: gEnableTDLSSupport.
|
||||
*
|
||||
* Supported Feature: TDLS
|
||||
*
|
||||
* Usage: Internal/External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_TDLS_IMPLICIT_TRIGGER "gEnableTDLSImplicitTrigger"
|
||||
#define CFG_TDLS_IMPLICIT_TRIGGER_MIN (0)
|
||||
#define CFG_TDLS_IMPLICIT_TRIGGER_MAX (1)
|
||||
#define CFG_TDLS_IMPLICIT_TRIGGER_DEFAULT (0)
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* gTDLSTxStatsPeriod - TDLS TX statistics time period.
|
||||
* @Min: 1000
|
||||
* @Max: 4294967295
|
||||
* @Default: 2000
|
||||
*
|
||||
* This ini is used to configure the time period (in ms) to evaluate whether
|
||||
* the number of Tx/Rx packets exceeds TDLSTxPacketThreshold and triggers a
|
||||
* TDLS Discovery request.
|
||||
*
|
||||
* Related: gEnableTDLSSupport.
|
||||
*
|
||||
* Supported Feature: TDLS
|
||||
*
|
||||
* Usage: Internal/External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_TDLS_TX_STATS_PERIOD "gTDLSTxStatsPeriod"
|
||||
#define CFG_TDLS_TX_STATS_PERIOD_MIN (1000)
|
||||
#define CFG_TDLS_TX_STATS_PERIOD_MAX (4294967295UL)
|
||||
#define CFG_TDLS_TX_STATS_PERIOD_DEFAULT (2000)
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* gTDLSTxPacketThreshold - Tx/Rx Packet threshold for initiating TDLS.
|
||||
* @Min: 0
|
||||
* @Max: 4294967295
|
||||
* @Default: 40
|
||||
*
|
||||
* This ini is used to configure the number of Tx/Rx packets during the
|
||||
* period of gTDLSTxStatsPeriod when exceeded, a TDLS Discovery request
|
||||
* is triggered.
|
||||
* Related: gEnableTDLSSupport.
|
||||
*
|
||||
* Supported Feature: TDLS
|
||||
*
|
||||
* Usage: Internal/External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_TDLS_TX_PACKET_THRESHOLD "gTDLSTxPacketThreshold"
|
||||
#define CFG_TDLS_TX_PACKET_THRESHOLD_MIN (0)
|
||||
#define CFG_TDLS_TX_PACKET_THRESHOLD_MAX (4294967295UL)
|
||||
#define CFG_TDLS_TX_PACKET_THRESHOLD_DEFAULT (40)
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* gTDLSMaxDiscoveryAttempt - Attempts for sending TDLS discovery requests.
|
||||
* @Min: 1
|
||||
* @Max: 100
|
||||
* @Default: 5
|
||||
*
|
||||
* This ini is used to configure the number of failures of discover request,
|
||||
* when exceeded, the peer is assumed to be not TDLS capable and no further
|
||||
* TDLS Discovery request is made.
|
||||
*
|
||||
* Related: gEnableTDLSSupport.
|
||||
*
|
||||
* Supported Feature: TDLS
|
||||
*
|
||||
* Usage: Internal/External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_TDLS_MAX_DISCOVERY_ATTEMPT "gTDLSMaxDiscoveryAttempt"
|
||||
#define CFG_TDLS_MAX_DISCOVERY_ATTEMPT_MIN (1)
|
||||
#define CFG_TDLS_MAX_DISCOVERY_ATTEMPT_MAX (100)
|
||||
#define CFG_TDLS_MAX_DISCOVERY_ATTEMPT_DEFAULT (5)
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* gTDLSIdleTimeout - Duration within which number of TX / RX frames meet the
|
||||
* criteria for TDLS teardown.
|
||||
* @Min: 500
|
||||
* @Max: 40000
|
||||
* @Default: 5000
|
||||
*
|
||||
* This ini is used to configure the time period (in ms) to evaluate whether
|
||||
* the number of Tx/Rx packets exceeds gTDLSIdlePacketThreshold and thus meets
|
||||
* criteria for TDLS teardown.
|
||||
* Teardown notification interval (gTDLSIdleTimeout) should be multiple of
|
||||
* setup notification (gTDLSTxStatsPeriod) interval.
|
||||
* e.g.
|
||||
* if setup notification (gTDLSTxStatsPeriod) interval = 500, then
|
||||
* teardown notification (gTDLSIdleTimeout) interval should be 1000,
|
||||
* 1500, 2000, 2500...
|
||||
*
|
||||
* Related: gEnableTDLSSupport.
|
||||
*
|
||||
* Supported Feature: TDLS
|
||||
*
|
||||
* Usage: Internal/External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_TDLS_IDLE_TIMEOUT "gTDLSIdleTimeout"
|
||||
#define CFG_TDLS_IDLE_TIMEOUT_MIN (500)
|
||||
#define CFG_TDLS_IDLE_TIMEOUT_MAX (40000)
|
||||
#define CFG_TDLS_IDLE_TIMEOUT_DEFAULT (5000)
|
||||
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* gTDLSIdlePacketThreshold - Number of idle packet.
|
||||
* @Min: 0
|
||||
* @Max: 40000
|
||||
* @Default: 3
|
||||
*
|
||||
* This ini is used to configure the number of Tx/Rx packet, below which
|
||||
* within last gTDLSTxStatsPeriod period is considered as idle condition.
|
||||
*
|
||||
* Related: gEnableTDLSSupport.
|
||||
*
|
||||
* Supported Feature: TDLS
|
||||
*
|
||||
* Usage: Internal/External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_TDLS_IDLE_PACKET_THRESHOLD "gTDLSIdlePacketThreshold"
|
||||
#define CFG_TDLS_IDLE_PACKET_THRESHOLD_MIN (0)
|
||||
#define CFG_TDLS_IDLE_PACKET_THRESHOLD_MAX (40000)
|
||||
#define CFG_TDLS_IDLE_PACKET_THRESHOLD_DEFAULT (3)
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* gTDLSRSSITriggerThreshold - RSSI threshold for TDLS connection.
|
||||
* @Min: -120
|
||||
* @Max: 0
|
||||
* @Default: -75
|
||||
*
|
||||
* This ini is used to configure the absolute value (in dB) of the peer RSSI,
|
||||
* below which a TDLS setup request is triggered.
|
||||
*
|
||||
* Related: gEnableTDLSSupport.
|
||||
*
|
||||
* Supported Feature: TDLS
|
||||
*
|
||||
* Usage: Internal/External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_TDLS_RSSI_TRIGGER_THRESHOLD "gTDLSRSSITriggerThreshold"
|
||||
#define CFG_TDLS_RSSI_TRIGGER_THRESHOLD_MIN (-120)
|
||||
#define CFG_TDLS_RSSI_TRIGGER_THRESHOLD_MAX (0)
|
||||
#define CFG_TDLS_RSSI_TRIGGER_THRESHOLD_DEFAULT (-75)
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* gTDLSRSSITeardownThreshold - RSSI threshold for TDLS teardown.
|
||||
* @Min: -120
|
||||
* @Max: 0
|
||||
* @Default: -75
|
||||
*
|
||||
* This ini is used to configure the absolute value (in dB) of the peer RSSI,
|
||||
* when exceed, a TDLS teardown is triggered.
|
||||
*
|
||||
* Related: gEnableTDLSSupport.
|
||||
*
|
||||
* Supported Feature: TDLS
|
||||
*
|
||||
* Usage: Internal/External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_TDLS_RSSI_TEARDOWN_THRESHOLD "gTDLSRSSITeardownThreshold"
|
||||
#define CFG_TDLS_RSSI_TEARDOWN_THRESHOLD_MIN (-120)
|
||||
#define CFG_TDLS_RSSI_TEARDOWN_THRESHOLD_MAX (0)
|
||||
#define CFG_TDLS_RSSI_TEARDOWN_THRESHOLD_DEFAULT (-75)
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* gTDLSRSSIDelta - Delta value for the peer RSSI that can trigger teardown.
|
||||
* @Min: -30
|
||||
* @Max: 0
|
||||
* @Default: -20
|
||||
*
|
||||
* This ini is used to .
|
||||
* This ini is used to configure delta for peer RSSI such that if Peer RSSI
|
||||
* is less than AP RSSI plus delta will trigger a teardown.
|
||||
*
|
||||
* Related: gEnableTDLSSupport.
|
||||
*
|
||||
* Supported Feature: TDLS
|
||||
*
|
||||
* Usage: Internal/External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_TDLS_RSSI_DELTA "gTDLSRSSIDelta"
|
||||
#define CFG_TDLS_RSSI_DELTA_MIN (-30)
|
||||
#define CFG_TDLS_RSSI_DELTA_MAX (0)
|
||||
#define CFG_TDLS_RSSI_DELTA_DEFAULT (-20)
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* gTDLSUapsdMask - ACs to setup U-APSD for TDLS Sta.
|
||||
* @Min: 0
|
||||
* @Max: 0x0F
|
||||
* @Default: 0x0F
|
||||
*
|
||||
* This ini is used to configure the ACs for which mask needs to be enabled.
|
||||
* 0x1: Background 0x2: Best effort
|
||||
* 0x4: Video 0x8:Voice
|
||||
*
|
||||
* Related: gEnableTDLSSupport.
|
||||
*
|
||||
* Supported Feature: TDLS
|
||||
*
|
||||
* Usage: Internal/External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_TDLS_QOS_WMM_UAPSD_MASK_NAME "gTDLSUapsdMask"
|
||||
#define CFG_TDLS_QOS_WMM_UAPSD_MASK_MIN (0)
|
||||
#define CFG_TDLS_QOS_WMM_UAPSD_MASK_MAX (0x0F)
|
||||
#define CFG_TDLS_QOS_WMM_UAPSD_MASK_DEFAULT (0x0F)
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* gEnableTDLSBufferSta - Controls the TDLS buffer.
|
||||
* @Min: 0
|
||||
* @Max: 1
|
||||
* @Default: 1
|
||||
*
|
||||
* This ini is used to control the TDLS buffer.
|
||||
* Buffer STA is not enabled in CLD 2.0 yet.
|
||||
*
|
||||
* Related: gEnableTDLSSupport.
|
||||
*
|
||||
* Supported Feature: TDLS
|
||||
*
|
||||
* Usage: Internal/External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_TDLS_BUFFER_STA_SUPPORT_ENABLE "gEnableTDLSBufferSta"
|
||||
#define CFG_TDLS_BUFFER_STA_SUPPORT_ENABLE_MIN (0)
|
||||
#define CFG_TDLS_BUFFER_STA_SUPPORT_ENABLE_MAX (1)
|
||||
#define CFG_TDLS_BUFFER_STA_SUPPORT_ENABLE_DEFAULT (1)
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* gTDLSPuapsdInactivityTime - Peer UAPSD Inactivity time.
|
||||
* @Min: 0
|
||||
* @Max: 10
|
||||
* @Default: 0
|
||||
*
|
||||
* This ini is used to configure peer uapsd inactivity time.
|
||||
*
|
||||
* Related: gEnableTDLSSupport.
|
||||
*
|
||||
* Supported Feature: TDLS
|
||||
*
|
||||
* Usage: Internal/External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_TDLS_PUAPSD_INACTIVITY_TIME "gTDLSPuapsdInactivityTime"
|
||||
#define CFG_TDLS_PUAPSD_INACTIVITY_TIME_MIN (0)
|
||||
#define CFG_TDLS_PUAPSD_INACTIVITY_TIME_MAX (10)
|
||||
#define CFG_TDLS_PUAPSD_INACTIVITY_TIME_DEFAULT (0)
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* gTDLSPuapsdRxFrameThreshold - Peer UAPSD Rx frame threshold.
|
||||
* @Min: 10
|
||||
* @Max: 20
|
||||
* @Default: 10
|
||||
*
|
||||
* This ini is used to configure maximum Rx frame during SP.
|
||||
*
|
||||
* Related: gEnableTDLSSupport.
|
||||
*
|
||||
* Supported Feature: TDLS
|
||||
*
|
||||
* Usage: Internal/External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_TDLS_PUAPSD_RX_FRAME_THRESHOLD "gTDLSPuapsdRxFrameThreshold"
|
||||
#define CFG_TDLS_PUAPSD_RX_FRAME_THRESHOLD_MIN (10)
|
||||
#define CFG_TDLS_PUAPSD_RX_FRAME_THRESHOLD_MAX (20)
|
||||
#define CFG_TDLS_PUAPSD_RX_FRAME_THRESHOLD_DEFAULT (10)
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* gTDLSPuapsdPTIWindow - This ini is used to configure peer traffic indication
|
||||
* window.
|
||||
* @Min: 1
|
||||
* @Max: 5
|
||||
* @Default: 2
|
||||
*
|
||||
* This ini is used to configure buffering time in number of beacon intervals.
|
||||
*
|
||||
* Related: gEnableTDLSSupport.
|
||||
*
|
||||
* Supported Feature: TDLS
|
||||
*
|
||||
* Usage: Internal/External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_TDLS_PUAPSD_PEER_TRAFFIC_IND_WINDOW "gTDLSPuapsdPTIWindow"
|
||||
#define CFG_TDLS_PUAPSD_PEER_TRAFFIC_IND_WINDOW_MIN (1)
|
||||
#define CFG_TDLS_PUAPSD_PEER_TRAFFIC_IND_WINDOW_MAX (5)
|
||||
#define CFG_TDLS_PUAPSD_PEER_TRAFFIC_IND_WINDOW_DEFAULT (2)
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* gTDLSPuapsdPTRTimeout - Peer Traffic Response timer duration in ms.
|
||||
* @Min: 0
|
||||
* @Max: 10000
|
||||
* @Default: 5000
|
||||
*
|
||||
* This ini is used to configure the peer traffic response timer duration
|
||||
* in ms.
|
||||
*
|
||||
* Related: gEnableTDLSSupport.
|
||||
*
|
||||
* Supported Feature: TDLS
|
||||
*
|
||||
* Usage: Internal/External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_TDLS_PUAPSD_PEER_TRAFFIC_RSP_TIMEOUT "gTDLSPuapsdPTRTimeout"
|
||||
#define CFG_TDLS_PUAPSD_PEER_TRAFFIC_RSP_TIMEOUT_MIN (0)
|
||||
#define CFG_TDLS_PUAPSD_PEER_TRAFFIC_RSP_TIMEOUT_MAX (10000)
|
||||
#define CFG_TDLS_PUAPSD_PEER_TRAFFIC_RSP_TIMEOUT_DEFAULT (5000)
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* gTDLSExternalControl - Enable external TDLS control.
|
||||
* @Min: 0
|
||||
* @Max: 1
|
||||
* @Default: 1
|
||||
*
|
||||
* This ini is used to enable/disable external TDLS control.
|
||||
* TDLS external control works with TDLS implicit trigger. TDLS external
|
||||
* control allows a user to add a MAC address of potential TDLS peers so
|
||||
* that the CLD driver can initiate implicit TDLS setup to only those peers
|
||||
* when criteria for TDLS setup (throughput and RSSI threshold) is met.
|
||||
*
|
||||
* Related: gEnableTDLSSupport, gEnableTDLSImplicitTrigger.
|
||||
*
|
||||
* Supported Feature: TDLS
|
||||
*
|
||||
* Usage: Internal/External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_TDLS_EXTERNAL_CONTROL "gTDLSExternalControl"
|
||||
#define CFG_TDLS_EXTERNAL_CONTROL_MIN (0)
|
||||
#define CFG_TDLS_EXTERNAL_CONTROL_MAX (1)
|
||||
#define CFG_TDLS_EXTERNAL_CONTROL_DEFAULT (1)
|
||||
|
||||
/*
|
||||
* This INI item is used to control subsystem restart(SSR) test framework
|
||||
* Set it's value to 1 to enable APPS trigerred SSR testing
|
||||
@@ -6692,186 +6285,6 @@ enum hdd_link_speed_rpt_type {
|
||||
#define CFG_ENABLE_CRASH_INJECT_MAX (1)
|
||||
#define CFG_ENABLE_CRASH_INJECT_DEFAULT (0)
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* gEnableTDLSOffChannel - Enables off-channel support for TDLS link.
|
||||
* @Min: 0
|
||||
* @Max: 1
|
||||
* @Default: 0
|
||||
*
|
||||
* This ini is used to enable/disable off-channel support for TDLS link.
|
||||
*
|
||||
* Related: gEnableTDLSSupport.
|
||||
*
|
||||
* Supported Feature: TDLS
|
||||
*
|
||||
* Usage: Internal/External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_TDLS_OFF_CHANNEL_SUPPORT_ENABLE "gEnableTDLSOffChannel"
|
||||
#define CFG_TDLS_OFF_CHANNEL_SUPPORT_ENABLE_MIN (0)
|
||||
#define CFG_TDLS_OFF_CHANNEL_SUPPORT_ENABLE_MAX (1)
|
||||
#define CFG_TDLS_OFF_CHANNEL_SUPPORT_ENABLE_DEFAULT (0)
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* gEnableTDLSWmmMode - Enables WMM support over TDLS link.
|
||||
* @Min: 0
|
||||
* @Max: 1
|
||||
* @Default: 1
|
||||
*
|
||||
* This ini is used to enable/disable WMM support over TDLS link.
|
||||
* This is required to be set to 1 for any TDLS and uAPSD functionality.
|
||||
*
|
||||
* Related: gEnableTDLSSupport.
|
||||
*
|
||||
* Supported Feature: TDLS
|
||||
*
|
||||
* Usage: Internal/External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_TDLS_WMM_MODE_ENABLE "gEnableTDLSWmmMode"
|
||||
#define CFG_TDLS_WMM_MODE_ENABLE_MIN (0)
|
||||
#define CFG_TDLS_WMM_MODE_ENABLE_MAX (1)
|
||||
#define CFG_TDLS_WMM_MODE_ENABLE_DEFAULT (1)
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* gTDLSPrefOffChanNum - Preferred TDLS channel number when off-channel support
|
||||
* is enabled.
|
||||
* @Min: 1
|
||||
* @Max: 165
|
||||
* @Default: 36
|
||||
*
|
||||
* This ini is used to configure preferred TDLS channel number when off-channel
|
||||
* support is enabled.
|
||||
*
|
||||
* Related: gEnableTDLSSupport, gEnableTDLSOffChannel.
|
||||
*
|
||||
* Supported Feature: TDLS
|
||||
*
|
||||
* Usage: Internal/External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_TDLS_PREFERRED_OFF_CHANNEL_NUM "gTDLSPrefOffChanNum"
|
||||
#define CFG_TDLS_PREFERRED_OFF_CHANNEL_NUM_MIN (1)
|
||||
#define CFG_TDLS_PREFERRED_OFF_CHANNEL_NUM_MAX (165)
|
||||
#define CFG_TDLS_PREFERRED_OFF_CHANNEL_NUM_DEFAULT (36)
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* gTDLSPrefOffChanBandwidth - Preferred TDLS channel bandwidth when
|
||||
* off-channel support is enabled.
|
||||
* @Min: 0x01
|
||||
* @Max: 0x0F
|
||||
* @Default: 0x07
|
||||
*
|
||||
* This ini is used to configure preferred TDLS channel bandwidth when
|
||||
* off-channel support is enabled.
|
||||
* 0x1: 20 MHz 0x2: 40 MHz 0x4: 80 MHz 0x8: 160 MHz
|
||||
* When more than one bits are set then firmware starts from the highest and
|
||||
* selects one based on capability of peer.
|
||||
*
|
||||
* Related: gEnableTDLSSupport, gEnableTDLSOffChannel.
|
||||
*
|
||||
* Supported Feature: TDLS
|
||||
*
|
||||
* Usage: Internal/External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_TDLS_PREFERRED_OFF_CHANNEL_BW "gTDLSPrefOffChanBandwidth"
|
||||
#define CFG_TDLS_PREFERRED_OFF_CHANNEL_BW_MIN (0x01)
|
||||
#define CFG_TDLS_PREFERRED_OFF_CHANNEL_BW_MAX (0x0F)
|
||||
#define CFG_TDLS_PREFERRED_OFF_CHANNEL_BW_DEFAULT (0x07)
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* gEnableTDLSScan - Allow scan and maintain TDLS link.
|
||||
* @Min: 0
|
||||
* @Max: 1
|
||||
* @Default: 0
|
||||
*
|
||||
* This ini is used to enable/disable TDLS scan.
|
||||
* 0: If peer is not buffer STA capable and device is not sleep STA
|
||||
* capable, then teardown TDLS link when scan is initiated. If peer
|
||||
* is buffer STA and we can be sleep STA then TDLS link is maintained
|
||||
* during scan.
|
||||
* 1: Maintain TDLS link and allow scan even if peer is not buffer STA
|
||||
* capable and device is not sleep STA capable. There will be loss of
|
||||
* Rx pkts since peer would not know when device moves away from tdls
|
||||
* channel. Tx on TDLS link would stop when device moves away from tdls
|
||||
* channel.
|
||||
*
|
||||
* Related: gEnableTDLSSupport.
|
||||
*
|
||||
* Supported Feature: TDLS
|
||||
*
|
||||
* Usage: Internal/External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_TDLS_SCAN_ENABLE "gEnableTDLSScan"
|
||||
#define CFG_TDLS_SCAN_ENABLE_MIN (0)
|
||||
#define CFG_TDLS_SCAN_ENABLE_MAX (1)
|
||||
#define CFG_TDLS_SCAN_ENABLE_DEFAULT (1)
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* gTDLSPeerKickoutThreshold - TDLS peer kickout threshold to firmware.
|
||||
* @Min: 10
|
||||
* @Max: 5000
|
||||
* @Default: 96
|
||||
*
|
||||
* This ini is used to configure TDLS peer kickout threshold to firmware.
|
||||
* Firmware will use this value to determine, when to send TDLS
|
||||
* peer kick out event to host.
|
||||
* E.g.
|
||||
* if peer kick out threshold is 10, then firmware will wait for 10
|
||||
* consecutive packet failures and then send TDLS kickout
|
||||
* notification to host driver
|
||||
*
|
||||
* Related: gEnableTDLSSupport.
|
||||
*
|
||||
* Supported Feature: TDLS
|
||||
*
|
||||
* Usage: Internal/External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_TDLS_PEER_KICKOUT_THRESHOLD "gTDLSPeerKickoutThreshold"
|
||||
#define CFG_TDLS_PEER_KICKOUT_THRESHOLD_MIN (10)
|
||||
#define CFG_TDLS_PEER_KICKOUT_THRESHOLD_MAX (5000)
|
||||
#define CFG_TDLS_PEER_KICKOUT_THRESHOLD_DEFAULT (96)
|
||||
|
||||
#endif
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* gTDLSEnableDeferTime - Timer to defer for enabling TDLS on P2P listen.
|
||||
* @Min: 500
|
||||
* @Max: 6000
|
||||
* @Default: 2000
|
||||
*
|
||||
* This ini is used to set the timer to defer for enabling TDLS on P2P
|
||||
* listen (value in milliseconds).
|
||||
*
|
||||
* Related: gEnableTDLSSupport.
|
||||
*
|
||||
* Supported Feature: TDLS
|
||||
*
|
||||
* Usage: Internal/External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_TDLS_ENABLE_DEFER_TIMER "gTDLSEnableDeferTime"
|
||||
#define CFG_TDLS_ENABLE_DEFER_TIMER_MIN (500)
|
||||
#define CFG_TDLS_ENABLE_DEFER_TIMER_MAX (6000)
|
||||
#define CFG_TDLS_ENABLE_DEFER_TIMER_DEFAULT (2000)
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* gTxLdpcEnable - Config Param to enable Tx LDPC capability
|
||||
@@ -14822,32 +14235,6 @@ struct hdd_config {
|
||||
uint8_t enable_rx_ldpc;
|
||||
bool enable5gEBT;
|
||||
bool prevent_link_down;
|
||||
#ifdef FEATURE_WLAN_TDLS
|
||||
bool fEnableTDLSSupport;
|
||||
bool fEnableTDLSImplicitTrigger;
|
||||
uint32_t fTDLSTxStatsPeriod;
|
||||
uint32_t fTDLSTxPacketThreshold;
|
||||
uint32_t fTDLSMaxDiscoveryAttempt;
|
||||
uint32_t tdls_idle_timeout;
|
||||
uint32_t fTDLSIdlePacketThreshold;
|
||||
int32_t fTDLSRSSITriggerThreshold;
|
||||
int32_t fTDLSRSSITeardownThreshold;
|
||||
int32_t fTDLSRSSIDelta;
|
||||
uint32_t fTDLSUapsdMask; /* what ACs to setup U-APSD for TDLS */
|
||||
uint32_t fEnableTDLSBufferSta;
|
||||
uint32_t fEnableTDLSSleepSta;
|
||||
uint32_t fTDLSPuapsdInactivityTimer;
|
||||
uint32_t fTDLSRxFrameThreshold;
|
||||
uint32_t fTDLSPuapsdPTIWindow;
|
||||
uint32_t fTDLSPuapsdPTRTimeout;
|
||||
bool fTDLSExternalControl;
|
||||
uint32_t fEnableTDLSOffChannel;
|
||||
uint32_t fEnableTDLSWmmMode;
|
||||
uint8_t fTDLSPrefOffChanNum;
|
||||
uint8_t fTDLSPrefOffChanBandwidth;
|
||||
uint8_t enable_tdls_scan;
|
||||
uint32_t tdls_peer_kickout_threshold;
|
||||
#endif
|
||||
uint8_t scanAgingTimeout;
|
||||
uint8_t disableLDPCWithTxbfAP;
|
||||
uint8_t enableMCCAdaptiveScheduler;
|
||||
@@ -15065,7 +14452,6 @@ struct hdd_config {
|
||||
bool active_mode_offload;
|
||||
bool apf_packet_filter_enable;
|
||||
/* parameter for defer timer for enabling TDLS on p2p listen */
|
||||
uint16_t tdls_enable_defer_time;
|
||||
uint32_t fine_time_meas_cap;
|
||||
uint8_t max_scan_count;
|
||||
#ifdef WLAN_FEATURE_FASTPATH
|
||||
|
@@ -43,6 +43,7 @@
|
||||
#include "wlan_hdd_green_ap_cfg.h"
|
||||
#include "wlan_hdd_twt.h"
|
||||
#include "wlan_p2p_cfg_api.h"
|
||||
#include "wlan_tdls_cfg_api.h"
|
||||
|
||||
static void
|
||||
cb_notify_set_roam_prefer5_g_hz(struct hdd_context *hdd_ctx,
|
||||
@@ -2160,171 +2161,6 @@ struct reg_table_entry g_registry_table[] = {
|
||||
CFG_PREVENT_LINK_DOWN_MIN,
|
||||
CFG_PREVENT_LINK_DOWN_MAX),
|
||||
|
||||
#ifdef FEATURE_WLAN_TDLS
|
||||
REG_VARIABLE(CFG_TDLS_SUPPORT_ENABLE, WLAN_PARAM_Integer,
|
||||
struct hdd_config, fEnableTDLSSupport,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
CFG_TDLS_SUPPORT_ENABLE_DEFAULT,
|
||||
CFG_TDLS_SUPPORT_ENABLE_MIN,
|
||||
CFG_TDLS_SUPPORT_ENABLE_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_TDLS_IMPLICIT_TRIGGER, WLAN_PARAM_Integer,
|
||||
struct hdd_config, fEnableTDLSImplicitTrigger,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
CFG_TDLS_IMPLICIT_TRIGGER_DEFAULT,
|
||||
CFG_TDLS_IMPLICIT_TRIGGER_MIN,
|
||||
CFG_TDLS_IMPLICIT_TRIGGER_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_TDLS_TX_STATS_PERIOD, WLAN_PARAM_Integer,
|
||||
struct hdd_config, fTDLSTxStatsPeriod,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
CFG_TDLS_TX_STATS_PERIOD_DEFAULT,
|
||||
CFG_TDLS_TX_STATS_PERIOD_MIN,
|
||||
CFG_TDLS_TX_STATS_PERIOD_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_TDLS_TX_PACKET_THRESHOLD, WLAN_PARAM_Integer,
|
||||
struct hdd_config, fTDLSTxPacketThreshold,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
CFG_TDLS_TX_PACKET_THRESHOLD_DEFAULT,
|
||||
CFG_TDLS_TX_PACKET_THRESHOLD_MIN,
|
||||
CFG_TDLS_TX_PACKET_THRESHOLD_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_TDLS_MAX_DISCOVERY_ATTEMPT, WLAN_PARAM_Integer,
|
||||
struct hdd_config, fTDLSMaxDiscoveryAttempt,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
CFG_TDLS_MAX_DISCOVERY_ATTEMPT_DEFAULT,
|
||||
CFG_TDLS_MAX_DISCOVERY_ATTEMPT_MIN,
|
||||
CFG_TDLS_MAX_DISCOVERY_ATTEMPT_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_TDLS_IDLE_TIMEOUT, WLAN_PARAM_Integer,
|
||||
struct hdd_config, tdls_idle_timeout,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
CFG_TDLS_IDLE_TIMEOUT_DEFAULT,
|
||||
CFG_TDLS_IDLE_TIMEOUT_MIN,
|
||||
CFG_TDLS_IDLE_TIMEOUT_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_TDLS_IDLE_PACKET_THRESHOLD, WLAN_PARAM_Integer,
|
||||
struct hdd_config, fTDLSIdlePacketThreshold,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
CFG_TDLS_IDLE_PACKET_THRESHOLD_DEFAULT,
|
||||
CFG_TDLS_IDLE_PACKET_THRESHOLD_MIN,
|
||||
CFG_TDLS_IDLE_PACKET_THRESHOLD_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_TDLS_RSSI_TRIGGER_THRESHOLD, WLAN_PARAM_SignedInteger,
|
||||
struct hdd_config, fTDLSRSSITriggerThreshold,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
CFG_TDLS_RSSI_TRIGGER_THRESHOLD_DEFAULT,
|
||||
CFG_TDLS_RSSI_TRIGGER_THRESHOLD_MIN,
|
||||
CFG_TDLS_RSSI_TRIGGER_THRESHOLD_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_TDLS_RSSI_TEARDOWN_THRESHOLD, WLAN_PARAM_SignedInteger,
|
||||
struct hdd_config, fTDLSRSSITeardownThreshold,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
CFG_TDLS_RSSI_TEARDOWN_THRESHOLD_DEFAULT,
|
||||
CFG_TDLS_RSSI_TEARDOWN_THRESHOLD_MIN,
|
||||
CFG_TDLS_RSSI_TEARDOWN_THRESHOLD_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_TDLS_RSSI_DELTA, WLAN_PARAM_SignedInteger,
|
||||
struct hdd_config, fTDLSRSSIDelta,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
CFG_TDLS_RSSI_DELTA_DEFAULT,
|
||||
CFG_TDLS_RSSI_DELTA_MIN,
|
||||
CFG_TDLS_RSSI_DELTA_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_TDLS_QOS_WMM_UAPSD_MASK_NAME, WLAN_PARAM_HexInteger,
|
||||
struct hdd_config, fTDLSUapsdMask,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
CFG_TDLS_QOS_WMM_UAPSD_MASK_DEFAULT,
|
||||
CFG_TDLS_QOS_WMM_UAPSD_MASK_MIN,
|
||||
CFG_TDLS_QOS_WMM_UAPSD_MASK_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_TDLS_BUFFER_STA_SUPPORT_ENABLE, WLAN_PARAM_Integer,
|
||||
struct hdd_config, fEnableTDLSBufferSta,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
CFG_TDLS_BUFFER_STA_SUPPORT_ENABLE_DEFAULT,
|
||||
CFG_TDLS_BUFFER_STA_SUPPORT_ENABLE_MIN,
|
||||
CFG_TDLS_BUFFER_STA_SUPPORT_ENABLE_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_TDLS_OFF_CHANNEL_SUPPORT_ENABLE, WLAN_PARAM_Integer,
|
||||
struct hdd_config, fEnableTDLSOffChannel,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
CFG_TDLS_OFF_CHANNEL_SUPPORT_ENABLE_DEFAULT,
|
||||
CFG_TDLS_OFF_CHANNEL_SUPPORT_ENABLE_MIN,
|
||||
CFG_TDLS_OFF_CHANNEL_SUPPORT_ENABLE_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_TDLS_PREFERRED_OFF_CHANNEL_NUM, WLAN_PARAM_Integer,
|
||||
struct hdd_config, fTDLSPrefOffChanNum,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
CFG_TDLS_PREFERRED_OFF_CHANNEL_NUM_DEFAULT,
|
||||
CFG_TDLS_PREFERRED_OFF_CHANNEL_NUM_MIN,
|
||||
CFG_TDLS_PREFERRED_OFF_CHANNEL_NUM_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_TDLS_PREFERRED_OFF_CHANNEL_BW, WLAN_PARAM_Integer,
|
||||
struct hdd_config, fTDLSPrefOffChanBandwidth,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
CFG_TDLS_PREFERRED_OFF_CHANNEL_BW_DEFAULT,
|
||||
CFG_TDLS_PREFERRED_OFF_CHANNEL_BW_MIN,
|
||||
CFG_TDLS_PREFERRED_OFF_CHANNEL_BW_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_TDLS_PUAPSD_INACTIVITY_TIME, WLAN_PARAM_Integer,
|
||||
struct hdd_config, fTDLSPuapsdInactivityTimer,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
CFG_TDLS_PUAPSD_INACTIVITY_TIME_DEFAULT,
|
||||
CFG_TDLS_PUAPSD_INACTIVITY_TIME_MIN,
|
||||
CFG_TDLS_PUAPSD_INACTIVITY_TIME_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_TDLS_PUAPSD_RX_FRAME_THRESHOLD, WLAN_PARAM_Integer,
|
||||
struct hdd_config, fTDLSRxFrameThreshold,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
CFG_TDLS_PUAPSD_RX_FRAME_THRESHOLD_DEFAULT,
|
||||
CFG_TDLS_PUAPSD_RX_FRAME_THRESHOLD_MIN,
|
||||
CFG_TDLS_PUAPSD_RX_FRAME_THRESHOLD_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_TDLS_PUAPSD_PEER_TRAFFIC_IND_WINDOW,
|
||||
WLAN_PARAM_Integer,
|
||||
struct hdd_config, fTDLSPuapsdPTIWindow,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
CFG_TDLS_PUAPSD_PEER_TRAFFIC_IND_WINDOW_DEFAULT,
|
||||
CFG_TDLS_PUAPSD_PEER_TRAFFIC_IND_WINDOW_MIN,
|
||||
CFG_TDLS_PUAPSD_PEER_TRAFFIC_IND_WINDOW_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_TDLS_PUAPSD_PEER_TRAFFIC_RSP_TIMEOUT,
|
||||
WLAN_PARAM_Integer,
|
||||
struct hdd_config, fTDLSPuapsdPTRTimeout,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
CFG_TDLS_PUAPSD_PEER_TRAFFIC_RSP_TIMEOUT_DEFAULT,
|
||||
CFG_TDLS_PUAPSD_PEER_TRAFFIC_RSP_TIMEOUT_MIN,
|
||||
CFG_TDLS_PUAPSD_PEER_TRAFFIC_RSP_TIMEOUT_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_TDLS_EXTERNAL_CONTROL, WLAN_PARAM_Integer,
|
||||
struct hdd_config, fTDLSExternalControl,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
CFG_TDLS_EXTERNAL_CONTROL_DEFAULT,
|
||||
CFG_TDLS_EXTERNAL_CONTROL_MIN,
|
||||
CFG_TDLS_EXTERNAL_CONTROL_MAX),
|
||||
REG_VARIABLE(CFG_TDLS_WMM_MODE_ENABLE, WLAN_PARAM_Integer,
|
||||
struct hdd_config, fEnableTDLSWmmMode,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
CFG_TDLS_WMM_MODE_ENABLE_DEFAULT,
|
||||
CFG_TDLS_WMM_MODE_ENABLE_MIN,
|
||||
CFG_TDLS_WMM_MODE_ENABLE_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_TDLS_SCAN_ENABLE, WLAN_PARAM_Integer,
|
||||
struct hdd_config, enable_tdls_scan,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
CFG_TDLS_SCAN_ENABLE_DEFAULT,
|
||||
CFG_TDLS_SCAN_ENABLE_MIN,
|
||||
CFG_TDLS_SCAN_ENABLE_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_TDLS_PEER_KICKOUT_THRESHOLD, WLAN_PARAM_Integer,
|
||||
struct hdd_config, tdls_peer_kickout_threshold,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
CFG_TDLS_PEER_KICKOUT_THRESHOLD_DEFAULT,
|
||||
CFG_TDLS_PEER_KICKOUT_THRESHOLD_MIN,
|
||||
CFG_TDLS_PEER_KICKOUT_THRESHOLD_MAX),
|
||||
|
||||
#endif
|
||||
|
||||
REG_VARIABLE(CFG_SCAN_AGING_PARAM_NAME, WLAN_PARAM_Integer,
|
||||
struct hdd_config, scanAgingTimeout,
|
||||
VAR_FLAGS_OPTIONAL,
|
||||
@@ -3417,13 +3253,6 @@ struct reg_table_entry g_registry_table[] = {
|
||||
CFG_APF_PACKET_FILTER_OFFLOAD_MIN,
|
||||
CFG_APF_PACKET_FILTER_OFFLOAD_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_TDLS_ENABLE_DEFER_TIMER, WLAN_PARAM_Integer,
|
||||
struct hdd_config, tdls_enable_defer_time,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
CFG_TDLS_ENABLE_DEFER_TIMER_DEFAULT,
|
||||
CFG_TDLS_ENABLE_DEFER_TIMER_MIN,
|
||||
CFG_TDLS_ENABLE_DEFER_TIMER_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_FLOW_STEERING_ENABLED_NAME, WLAN_PARAM_Integer,
|
||||
struct hdd_config, flow_steering_enable,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
@@ -6550,22 +6379,6 @@ void hdd_cfg_print(struct hdd_context *hdd_ctx)
|
||||
hdd_ctx->config->configPNOScanTimerRepeatValue);
|
||||
hdd_debug("Name = [gPNOSlowScanMultiplier] Value = [%u] ",
|
||||
hdd_ctx->config->pno_slow_scan_multiplier);
|
||||
#endif
|
||||
#ifdef FEATURE_WLAN_TDLS
|
||||
hdd_debug("Name = [fEnableTDLSSupport] Value = [%u] ",
|
||||
hdd_ctx->config->fEnableTDLSSupport);
|
||||
hdd_debug("Name = [fEnableTDLSImplicitTrigger] Value = [%u] ",
|
||||
hdd_ctx->config->fEnableTDLSImplicitTrigger);
|
||||
hdd_debug("Name = [fTDLSExternalControl] Value = [%u] ",
|
||||
hdd_ctx->config->fTDLSExternalControl);
|
||||
hdd_debug("Name = [fTDLSUapsdMask] Value = [%u] ",
|
||||
hdd_ctx->config->fTDLSUapsdMask);
|
||||
hdd_debug("Name = [fEnableTDLSBufferSta] Value = [%u] ",
|
||||
hdd_ctx->config->fEnableTDLSBufferSta);
|
||||
hdd_debug("Name = [fEnableTDLSWmmMode] Value = [%u] ",
|
||||
hdd_ctx->config->fEnableTDLSWmmMode);
|
||||
hdd_debug("Name = [enable_tdls_scan] Value = [%u]",
|
||||
hdd_ctx->config->enable_tdls_scan);
|
||||
#endif
|
||||
hdd_debug("Name = [InfraDirAcVo] Value = [%u] ",
|
||||
hdd_ctx->config->InfraDirAcVo);
|
||||
@@ -7121,9 +6934,6 @@ void hdd_cfg_print(struct hdd_context *hdd_ctx)
|
||||
hdd_debug("Name = [%s] Value = [%d]",
|
||||
CFG_APF_PACKET_FILTER_OFFLOAD,
|
||||
hdd_ctx->config->apf_packet_filter_enable);
|
||||
hdd_debug("Name = [%s] Value = [%u]",
|
||||
CFG_TDLS_ENABLE_DEFER_TIMER,
|
||||
hdd_ctx->config->tdls_enable_defer_time);
|
||||
hdd_debug("Name = [%s] Value = [%d]",
|
||||
CFG_FILTER_MULTICAST_REPLAY_NAME,
|
||||
hdd_ctx->config->multicast_replay_filter);
|
||||
@@ -8098,6 +7908,7 @@ bool hdd_update_config_cfg(struct hdd_context *hdd_ctx)
|
||||
struct hdd_config *config = hdd_ctx->config;
|
||||
mac_handle_t mac_handle;
|
||||
uint32_t ivalue;
|
||||
bool bvalue;
|
||||
QDF_STATUS ret;
|
||||
|
||||
/*
|
||||
@@ -8291,42 +8102,71 @@ bool hdd_update_config_cfg(struct hdd_context *hdd_ctx)
|
||||
|
||||
#ifdef FEATURE_WLAN_TDLS
|
||||
|
||||
if (sme_cfg_set_int(mac_handle, WNI_CFG_TDLS_QOS_WMM_UAPSD_MASK,
|
||||
config->fTDLSUapsdMask) == QDF_STATUS_E_FAILURE) {
|
||||
ret = cfg_tdls_get_uapsd_mask(hdd_ctx->hdd_psoc, &ivalue);
|
||||
if (ret == QDF_STATUS_SUCCESS) {
|
||||
ret = sme_cfg_set_int(mac_handle,
|
||||
WNI_CFG_TDLS_QOS_WMM_UAPSD_MASK,
|
||||
ivalue);
|
||||
if (ret == QDF_STATUS_E_FAILURE) {
|
||||
status = false;
|
||||
hdd_err("Couldn't pass on WNI_CFG_TDLS_QOS_WMM_UAPSD_MASK to CFG");
|
||||
}
|
||||
if (sme_cfg_set_int(mac_handle, WNI_CFG_TDLS_BUF_STA_ENABLED,
|
||||
config->fEnableTDLSBufferSta) ==
|
||||
QDF_STATUS_E_FAILURE) {
|
||||
}
|
||||
|
||||
ret = cfg_tdls_get_buffer_sta_enable(hdd_ctx->hdd_psoc, &bvalue);
|
||||
if (ret == QDF_STATUS_SUCCESS) {
|
||||
ret = sme_cfg_set_int(mac_handle,
|
||||
WNI_CFG_TDLS_BUF_STA_ENABLED,
|
||||
(uint32_t)bvalue);
|
||||
if (ret == QDF_STATUS_E_FAILURE) {
|
||||
status = false;
|
||||
hdd_err("Couldn't pass on WNI_CFG_TDLS_BUF_STA_ENABLED to CFG");
|
||||
}
|
||||
if (sme_cfg_set_int(mac_handle, WNI_CFG_TDLS_PUAPSD_INACT_TIME,
|
||||
config->fTDLSPuapsdInactivityTimer) ==
|
||||
QDF_STATUS_E_FAILURE) {
|
||||
}
|
||||
|
||||
ret = cfg_tdls_get_uapsd_inactivity_time(hdd_ctx->hdd_psoc, &ivalue);
|
||||
if (ret == QDF_STATUS_SUCCESS) {
|
||||
ret = sme_cfg_set_int(mac_handle,
|
||||
WNI_CFG_TDLS_PUAPSD_INACT_TIME,
|
||||
ivalue);
|
||||
if (ret == QDF_STATUS_E_FAILURE) {
|
||||
status = false;
|
||||
hdd_err("Couldn't pass on WNI_CFG_TDLS_PUAPSD_INACT_TIME to CFG");
|
||||
}
|
||||
if (sme_cfg_set_int(mac_handle, WNI_CFG_TDLS_RX_FRAME_THRESHOLD,
|
||||
config->fTDLSRxFrameThreshold) ==
|
||||
QDF_STATUS_E_FAILURE) {
|
||||
}
|
||||
|
||||
ret = cfg_tdls_get_rx_pkt_threshold(hdd_ctx->hdd_psoc, &ivalue);
|
||||
if (ret == QDF_STATUS_SUCCESS) {
|
||||
ret = sme_cfg_set_int(mac_handle,
|
||||
WNI_CFG_TDLS_RX_FRAME_THRESHOLD,
|
||||
ivalue);
|
||||
if (ret == QDF_STATUS_E_FAILURE) {
|
||||
status = false;
|
||||
hdd_err("Couldn't pass on WNI_CFG_TDLS_RX_FRAME_THRESHOLD to CFG");
|
||||
}
|
||||
}
|
||||
|
||||
if (sme_cfg_set_int(mac_handle, WNI_CFG_TDLS_OFF_CHANNEL_ENABLED,
|
||||
config->fEnableTDLSOffChannel) ==
|
||||
QDF_STATUS_E_FAILURE) {
|
||||
ret = cfg_tdls_get_off_channel_enable(hdd_ctx->hdd_psoc, &bvalue);
|
||||
if (ret == QDF_STATUS_SUCCESS) {
|
||||
ret = sme_cfg_set_int(mac_handle,
|
||||
WNI_CFG_TDLS_OFF_CHANNEL_ENABLED,
|
||||
(uint32_t)bvalue);
|
||||
if (ret == QDF_STATUS_E_FAILURE) {
|
||||
status = false;
|
||||
hdd_err("Couldn't pass on WNI_CFG_TDLS_BUF_STA_ENABLED to CFG");
|
||||
}
|
||||
if (sme_cfg_set_int(mac_handle, WNI_CFG_TDLS_WMM_MODE_ENABLED,
|
||||
config->fEnableTDLSWmmMode) ==
|
||||
QDF_STATUS_E_FAILURE) {
|
||||
}
|
||||
|
||||
ret = cfg_tdls_get_wmm_mode_enable(hdd_ctx->hdd_psoc, &bvalue);
|
||||
if (ret == QDF_STATUS_SUCCESS) {
|
||||
ret = sme_cfg_set_int(mac_handle,
|
||||
WNI_CFG_TDLS_WMM_MODE_ENABLED,
|
||||
(uint32_t)bvalue);
|
||||
if (ret == QDF_STATUS_E_FAILURE) {
|
||||
status = false;
|
||||
hdd_err("Couldn't pass on WNI_CFG_TDLS_WMM_MODE_ENABLED to CFG");
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
if (sme_cfg_set_int(mac_handle,
|
||||
|
@@ -106,6 +106,7 @@
|
||||
#include "wlan_ipa_ucfg_api.h"
|
||||
#include <wlan_cfg80211_mc_cp_stats.h>
|
||||
#include <wlan_cp_stats_mc_ucfg_api.h>
|
||||
#include "wlan_tdls_cfg_api.h"
|
||||
|
||||
#define g_mode_rates_size (12)
|
||||
#define a_mode_rates_size (8)
|
||||
@@ -716,6 +717,11 @@ static int __wlan_hdd_cfg80211_get_tdls_capabilities(struct wiphy *wiphy,
|
||||
struct sk_buff *skb;
|
||||
uint32_t set = 0;
|
||||
uint32_t max_num_tdls_sta = 0;
|
||||
bool tdls_support;
|
||||
bool tdls_external_control;
|
||||
bool tdls_sleep_sta_enable;
|
||||
bool tdls_buffer_sta;
|
||||
bool tdls_off_channel;
|
||||
|
||||
hdd_enter_dev(wdev->netdev);
|
||||
|
||||
@@ -735,7 +741,8 @@ static int __wlan_hdd_cfg80211_get_tdls_capabilities(struct wiphy *wiphy,
|
||||
goto fail;
|
||||
}
|
||||
|
||||
if (false == hdd_ctx->config->fEnableTDLSSupport) {
|
||||
if ((cfg_tdls_get_support_enable(hdd_ctx->hdd_psoc, &tdls_support) ==
|
||||
QDF_STATUS_SUCCESS) && tdls_support) {
|
||||
hdd_debug("TDLS feature not Enabled or Not supported in FW");
|
||||
if (nla_put_u32(skb, PARAM_MAX_TDLS_SESSION, 0) ||
|
||||
nla_put_u32(skb, PARAM_TDLS_FEATURE_SUPPORT, 0)) {
|
||||
@@ -743,14 +750,21 @@ static int __wlan_hdd_cfg80211_get_tdls_capabilities(struct wiphy *wiphy,
|
||||
goto fail;
|
||||
}
|
||||
} else {
|
||||
cfg_tdls_get_external_control(hdd_ctx->hdd_psoc,
|
||||
&tdls_external_control);
|
||||
cfg_tdls_get_sleep_sta_enable(hdd_ctx->hdd_psoc,
|
||||
&tdls_sleep_sta_enable);
|
||||
cfg_tdls_get_buffer_sta_enable(hdd_ctx->hdd_psoc,
|
||||
&tdls_buffer_sta);
|
||||
cfg_tdls_get_off_channel_enable(hdd_ctx->hdd_psoc,
|
||||
&tdls_off_channel);
|
||||
set = set | WIFI_TDLS_SUPPORT;
|
||||
set = set | (hdd_ctx->config->fTDLSExternalControl ?
|
||||
set = set | (tdls_external_control ?
|
||||
WIFI_TDLS_EXTERNAL_CONTROL_SUPPORT : 0);
|
||||
set = set | (hdd_ctx->config->fEnableTDLSOffChannel ?
|
||||
set = set | (tdls_off_channel ?
|
||||
WIIF_TDLS_OFFCHANNEL_SUPPORT : 0);
|
||||
if (hdd_ctx->config->fEnableTDLSSleepSta ||
|
||||
hdd_ctx->config->fEnableTDLSBufferSta ||
|
||||
hdd_ctx->config->fEnableTDLSOffChannel)
|
||||
if (tdls_sleep_sta_enable || tdls_buffer_sta ||
|
||||
tdls_off_channel)
|
||||
max_num_tdls_sta = HDD_MAX_NUM_TDLS_STA_P_UAPSD_OFFCHAN;
|
||||
else
|
||||
max_num_tdls_sta = HDD_MAX_NUM_TDLS_STA;
|
||||
@@ -2918,6 +2932,9 @@ __wlan_hdd_cfg80211_get_supported_features(struct wiphy *wiphy,
|
||||
struct sk_buff *skb = NULL;
|
||||
uint32_t fset = 0;
|
||||
int ret;
|
||||
#ifdef FEATURE_WLAN_TDLS
|
||||
bool bvalue;
|
||||
#endif
|
||||
|
||||
/* ENTER_DEV() intentionally not used in a frequently invoked API */
|
||||
|
||||
@@ -2975,14 +2992,15 @@ __wlan_hdd_cfg80211_get_supported_features(struct wiphy *wiphy,
|
||||
#endif
|
||||
fset |= WIFI_FEATURE_ADDITIONAL_STA;
|
||||
#ifdef FEATURE_WLAN_TDLS
|
||||
if ((true == hdd_ctx->config->fEnableTDLSSupport) &&
|
||||
sme_is_feature_supported_by_fw(TDLS)) {
|
||||
cfg_tdls_get_support_enable(hdd_ctx->hdd_psoc, &bvalue);
|
||||
if ((bvalue) && sme_is_feature_supported_by_fw(TDLS)) {
|
||||
hdd_debug("TDLS is supported by firmware");
|
||||
fset |= WIFI_FEATURE_TDLS;
|
||||
}
|
||||
|
||||
cfg_tdls_get_off_channel_enable(hdd_ctx->hdd_psoc, &bvalue);
|
||||
if (sme_is_feature_supported_by_fw(TDLS) &&
|
||||
(true == hdd_ctx->config->fEnableTDLSOffChannel) &&
|
||||
sme_is_feature_supported_by_fw(TDLS_OFF_CHANNEL)) {
|
||||
bvalue && sme_is_feature_supported_by_fw(TDLS_OFF_CHANNEL)) {
|
||||
hdd_debug("TDLS off-channel is supported by firmware");
|
||||
fset |= WIFI_FEATURE_TDLS_OFFCHANNEL;
|
||||
}
|
||||
|
@@ -137,6 +137,7 @@
|
||||
#include "qc_sap_ioctl.h"
|
||||
#include "wlan_mlme_main.h"
|
||||
#include "wlan_p2p_cfg_api.h"
|
||||
#include "wlan_tdls_cfg_api.h"
|
||||
|
||||
#ifdef CNSS_GENL
|
||||
#include <net/cnss_nl.h>
|
||||
@@ -1169,41 +1170,13 @@ static int hdd_update_tdls_config(struct hdd_context *hdd_ctx)
|
||||
{
|
||||
struct wlan_objmgr_psoc *psoc = hdd_ctx->hdd_psoc;
|
||||
struct tdls_start_params tdls_cfg;
|
||||
struct tdls_user_config *config = &tdls_cfg.config;
|
||||
struct hdd_config *cfg = hdd_ctx->config;
|
||||
QDF_STATUS status;
|
||||
|
||||
config->tdls_tx_states_period = cfg->fTDLSTxStatsPeriod;
|
||||
config->tdls_tx_pkt_threshold = cfg->fTDLSTxPacketThreshold;
|
||||
config->tdls_rx_pkt_threshold = cfg->fTDLSRxFrameThreshold;
|
||||
config->tdls_max_discovery_attempt = cfg->fTDLSMaxDiscoveryAttempt;
|
||||
config->tdls_idle_timeout = cfg->tdls_idle_timeout;
|
||||
config->tdls_idle_pkt_threshold = cfg->fTDLSIdlePacketThreshold;
|
||||
config->tdls_rssi_trigger_threshold = cfg->fTDLSRSSITriggerThreshold;
|
||||
config->tdls_rssi_teardown_threshold = cfg->fTDLSRSSITeardownThreshold;
|
||||
config->tdls_rssi_delta = cfg->fTDLSRSSIDelta;
|
||||
config->tdls_uapsd_mask = cfg->fTDLSUapsdMask;
|
||||
config->tdls_uapsd_inactivity_time = cfg->fTDLSPuapsdInactivityTimer;
|
||||
config->tdls_uapsd_pti_window = cfg->fTDLSPuapsdPTIWindow;
|
||||
config->tdls_uapsd_ptr_timeout = cfg->fTDLSPuapsdPTRTimeout;
|
||||
config->tdls_pre_off_chan_num = cfg->fTDLSPrefOffChanNum;
|
||||
config->tdls_pre_off_chan_bw = cfg->fTDLSPrefOffChanBandwidth;
|
||||
config->tdls_peer_kickout_threshold = cfg->tdls_peer_kickout_threshold;
|
||||
config->delayed_trig_framint = cfg->DelayedTriggerFrmInt;
|
||||
config->tdls_feature_flags = ((cfg->fEnableTDLSOffChannel ?
|
||||
1 << TDLS_FEATURE_OFF_CHANNEL : 0) |
|
||||
(cfg->fEnableTDLSWmmMode ? 1 << TDLS_FEATURE_WMM : 0) |
|
||||
(cfg->fEnableTDLSBufferSta ? 1 << TDLS_FEATURE_BUFFER_STA : 0) |
|
||||
(cfg->fEnableTDLSSleepSta ? 1 << TDLS_FEATURE_SLEEP_STA : 0) |
|
||||
(cfg->enable_tdls_scan ? 1 << TDLS_FEATURE_SCAN : 0) |
|
||||
(cfg->fEnableTDLSSupport ? 1 << TDLS_FEATURE_ENABLE : 0) |
|
||||
(cfg->fEnableTDLSImplicitTrigger ?
|
||||
1 << TDLS_FEAUTRE_IMPLICIT_TRIGGER : 0) |
|
||||
(cfg->fTDLSExternalControl ?
|
||||
1 << TDLS_FEATURE_EXTERNAL_CONTROL : 0));
|
||||
config->tdls_vdev_nss_2g = CFG_TDLS_NSS(cfg->vdev_type_nss_2g);
|
||||
config->tdls_vdev_nss_5g = CFG_TDLS_NSS(cfg->vdev_type_nss_5g);
|
||||
|
||||
cfg_tdls_set_vdev_nss_2g(hdd_ctx->hdd_psoc,
|
||||
CFG_TDLS_NSS(cfg->vdev_type_nss_2g));
|
||||
cfg_tdls_set_vdev_nss_5g(hdd_ctx->hdd_psoc,
|
||||
CFG_TDLS_NSS(cfg->vdev_type_nss_5g));
|
||||
tdls_cfg.tdls_send_mgmt_req = eWNI_SME_TDLS_SEND_MGMT_REQ;
|
||||
tdls_cfg.tdls_add_sta_req = eWNI_SME_TDLS_ADD_STA_REQ;
|
||||
tdls_cfg.tdls_del_sta_req = eWNI_SME_TDLS_DEL_STA_REQ;
|
||||
@@ -1238,7 +1211,12 @@ static void hdd_update_tgt_services(struct hdd_context *hdd_ctx,
|
||||
struct wma_tgt_services *cfg)
|
||||
{
|
||||
struct hdd_config *config = hdd_ctx->config;
|
||||
|
||||
#ifdef FEATURE_WLAN_TDLS
|
||||
bool tdls_support;
|
||||
bool tdls_off_channel;
|
||||
bool tdls_buffer_sta;
|
||||
uint32_t tdls_uapsd_mask;
|
||||
#endif
|
||||
/* Set up UAPSD */
|
||||
config->apUapsdEnabled &= cfg->uapsd;
|
||||
|
||||
@@ -1262,15 +1240,25 @@ static void hdd_update_tgt_services(struct hdd_context *hdd_ctx,
|
||||
config->PnoOffload = true;
|
||||
#endif
|
||||
#ifdef FEATURE_WLAN_TDLS
|
||||
config->fEnableTDLSSupport &= cfg->en_tdls;
|
||||
config->fEnableTDLSOffChannel = config->fEnableTDLSOffChannel &&
|
||||
cfg->en_tdls_offchan;
|
||||
config->fEnableTDLSBufferSta = config->fEnableTDLSBufferSta &&
|
||||
cfg->en_tdls_uapsd_buf_sta;
|
||||
if (config->fTDLSUapsdMask && cfg->en_tdls_uapsd_sleep_sta)
|
||||
config->fEnableTDLSSleepSta = true;
|
||||
cfg_tdls_get_support_enable(hdd_ctx->hdd_psoc, &tdls_support);
|
||||
cfg_tdls_set_support_enable(hdd_ctx->hdd_psoc,
|
||||
tdls_support & cfg->en_tdls);
|
||||
|
||||
cfg_tdls_get_off_channel_enable(hdd_ctx->hdd_psoc, &tdls_off_channel);
|
||||
cfg_tdls_set_off_channel_enable(hdd_ctx->hdd_psoc,
|
||||
tdls_off_channel &&
|
||||
cfg->en_tdls_offchan);
|
||||
|
||||
cfg_tdls_get_buffer_sta_enable(hdd_ctx->hdd_psoc, &tdls_buffer_sta);
|
||||
cfg_tdls_set_buffer_sta_enable(hdd_ctx->hdd_psoc,
|
||||
tdls_buffer_sta &&
|
||||
cfg->en_tdls_uapsd_buf_sta);
|
||||
|
||||
cfg_tdls_get_uapsd_mask(hdd_ctx->hdd_psoc, &tdls_uapsd_mask);
|
||||
if (tdls_uapsd_mask && cfg->en_tdls_uapsd_sleep_sta)
|
||||
cfg_tdls_set_sleep_sta_enable(hdd_ctx->hdd_psoc, true);
|
||||
else
|
||||
config->fEnableTDLSSleepSta = false;
|
||||
cfg_tdls_set_sleep_sta_enable(hdd_ctx->hdd_psoc, false);
|
||||
#endif
|
||||
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
|
||||
config->isRoamOffloadEnabled &= cfg->en_roam_offload;
|
||||
|
@@ -40,6 +40,7 @@
|
||||
#include "wma_types.h"
|
||||
#include "wlan_policy_mgr_api.h"
|
||||
#include <qca_vendor.h>
|
||||
#include "wlan_tdls_cfg_api.h"
|
||||
|
||||
/**
|
||||
* enum qca_wlan_vendor_tdls_trigger_mode_hdd_map: Maps the user space TDLS
|
||||
@@ -442,6 +443,7 @@ static int __wlan_hdd_cfg80211_tdls_mgmt(struct wiphy *wiphy,
|
||||
{
|
||||
struct hdd_adapter *adapter = WLAN_HDD_GET_PRIV_PTR(dev);
|
||||
struct hdd_context *hdd_ctx = wiphy_priv(wiphy);
|
||||
bool tdls_support;
|
||||
#if (LINUX_VERSION_CODE < KERNEL_VERSION(3, 15, 0))
|
||||
#if !(TDLS_MGMT_VERSION2)
|
||||
u32 peer_capability;
|
||||
@@ -467,7 +469,8 @@ static int __wlan_hdd_cfg80211_tdls_mgmt(struct wiphy *wiphy,
|
||||
if (wlan_hdd_validate_context(hdd_ctx))
|
||||
return -EINVAL;
|
||||
|
||||
if (false == hdd_ctx->config->fEnableTDLSSupport) {
|
||||
cfg_tdls_get_support_enable(hdd_ctx->hdd_psoc, &tdls_support);
|
||||
if (!tdls_support) {
|
||||
hdd_debug("TDLS Disabled in INI OR not enabled in FW. "
|
||||
"Cannot process TDLS commands");
|
||||
return -ENOTSUPP;
|
||||
@@ -629,6 +632,7 @@ static int __wlan_hdd_cfg80211_tdls_oper(struct wiphy *wiphy,
|
||||
struct hdd_adapter *adapter = WLAN_HDD_GET_PRIV_PTR(dev);
|
||||
struct hdd_context *hdd_ctx = wiphy_priv(wiphy);
|
||||
int status;
|
||||
bool tdls_support;
|
||||
|
||||
hdd_enter();
|
||||
|
||||
@@ -642,7 +646,8 @@ static int __wlan_hdd_cfg80211_tdls_oper(struct wiphy *wiphy,
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (false == hdd_ctx->config->fEnableTDLSSupport) {
|
||||
cfg_tdls_get_support_enable(hdd_ctx->hdd_psoc, &tdls_support);
|
||||
if (!tdls_support) {
|
||||
hdd_debug("TDLS Disabled in INI OR not enabled in FW. "
|
||||
"Cannot process TDLS commands");
|
||||
return -ENOTSUPP;
|
||||
@@ -812,7 +817,8 @@ int hdd_set_tdls_scan_type(struct hdd_context *hdd_ctx, int val)
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
hdd_ctx->config->enable_tdls_scan = val;
|
||||
cfg_tdls_set_scan_enable(hdd_ctx->hdd_psoc, (bool)val);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user