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

qcacld-3.0: Add MLME Generic CFG Items

Add multiple general INI Items to the MLME CFG Component.

Change-Id: I0d5368ec82c8b19e477e80c71dd8d4524a9726b4
CRs-Fixed: 2326704
Vignesh Viswanathan 6 жил өмнө
parent
commit
72e98af479

+ 45 - 0
mlme/core/src/wlan_mlme_main.c

@@ -139,11 +139,56 @@ static void mlme_init_pmf_cfg(struct wlan_objmgr_psoc *psoc,
 }
 #endif /*WLAN_FEATURE_11W*/
 
+#ifdef WLAN_FEATURE_LPSS
+static inline void
+mlme_init_lpass_support_cfg(struct wlan_objmgr_psoc *psoc,
+			    struct wlan_mlme_generic *gen)
+{
+	gen->lpass_support = cfg_get(psoc, CFG_ENABLE_LPASS_SUPPORT);
+}
+#else
+static inline void
+mlme_init_lpass_support_cfg(struct wlan_objmgr_psoc *psoc,
+			    struct wlan_mlme_generic *gen)
+{
+	gen->lpass_support = cfg_default(CFG_ENABLE_LPASS_SUPPORT);
+}
+#endif
+
 static void mlme_init_generic_cfg(struct wlan_objmgr_psoc *psoc,
 				  struct wlan_mlme_generic *gen)
 {
 	gen->rtt3_enabled = cfg_default(CFG_RTT3_ENABLE);
+	gen->band_capability =
+		cfg_get(psoc, CFG_BAND_CAPABILITY);
+	gen->select_5ghz_margin =
+		cfg_get(psoc, CFG_SELECT_5GHZ_MARGIN);
+	gen->sub_20_chan_width =
+		cfg_get(psoc, CFG_SUB_20_CHANNEL_WIDTH);
+	gen->ito_repeat_count =
+		cfg_get(psoc, CFG_ITO_REPEAT_COUNT);
+	gen->dropped_pkt_disconnect_thresh =
+		cfg_get(psoc, CFG_DROPPED_PKT_DISCONNECT_THRESHOLD);
+	gen->prevent_link_down =
+		cfg_get(psoc, CFG_PREVENT_LINK_DOWN);
+	gen->memory_deep_sleep =
+		cfg_get(psoc, CFG_ENABLE_MEM_DEEP_SLEEP);
+	gen->cck_tx_fir_override =
+		cfg_get(psoc, CFG_ENABLE_CCK_TX_FIR_OVERRIDE);
+	gen->crash_inject =
+		cfg_get(psoc, CFG_ENABLE_CRASH_INJECT);
+	gen->self_recovery =
+		cfg_get(psoc, CFG_ENABLE_SELF_RECOVERY);
+	gen->sap_dot11mc =
+		cfg_get(psoc, CFG_SAP_DOT11MC);
+	gen->fatal_event_trigger =
+		cfg_get(psoc, CFG_ENABLE_FATAL_EVENT_TRIGGER);
+	gen->optimize_ca_event =
+		cfg_get(psoc, CFG_OPTIMIZE_CA_EVENT);
+	gen->fw_timeout_crash =
+		cfg_get(psoc, CFG_CRASH_FW_TIMEOUT);
 	mlme_init_pmf_cfg(psoc, gen);
+	mlme_init_lpass_support_cfg(psoc, gen);
 }
 
 static void mlme_init_edca_ani_cfg(struct wlan_mlme_edca_params *edca_params)

+ 382 - 1
mlme/dispatcher/inc/cfg_mlme_generic.h

@@ -78,8 +78,389 @@
 		1, \
 		"RTT3 enable/disable info")
 
+/*
+ * <ini>
+ * BandCapability - Preferred band (0: Both,  1: 2.4G only,  2: 5G only)
+ * @Min: 0
+ * @Max: 2
+ * @Default: 0
+ *
+ * This ini is used to set default band capability
+ * (0: Both, 1: 2.4G only, 2: 5G only)
+ *
+ * Related: None
+ *
+ * Supported Feature: STA
+ *
+ * Usage: Internal/External
+ *
+ * </ini>
+ */
+#define CFG_BAND_CAPABILITY CFG_INI_UINT( \
+	"BandCapability", \
+	0, \
+	2, \
+	0, \
+	CFG_VALUE_OR_DEFAULT, \
+	"Band Capability")
+
+/*
+ * <ini>
+ * gPreventLinkDown - Enable to prevent bus link from going down
+ * @Min: 0
+ * @Max: 1
+ * @Default: 0
+ *
+ * Enable to prevent bus link from going down. Useful for platforms that do not
+ * (yet) support link down suspend cases.
+ *
+ * Related: N/A
+ *
+ * Supported Feature: Suspend/Resume
+ *
+ * Usage: Internal
+ *
+ * </ini>
+ */
+#if defined(QCA_WIFI_NAPIER_EMULATION) || defined(QCA_WIFI_QCA6290)
+#define CFG_PREVENT_LINK_DOWN CFG_INI_BOOL( \
+	"gPreventLinkDown", \
+	1, \
+	"Prevent Bus Link Down")
+#else
+#define CFG_PREVENT_LINK_DOWN CFG_INI_BOOL( \
+	"gPreventLinkDown", \
+	0, \
+	"Prevent Bus Link Down")
+#endif /* QCA_WIFI_NAPIER_EMULATION */
+
+/*
+ * <ini>
+ * gSelect5GHzMargin - Sets RSSI preference for 5GHz over 2.4GHz AP.
+ * @Min: 0
+ * @Max: 60
+ * @Default: 0
+ *
+ * Prefer connecting to 5G AP even if its RSSI is lower by gSelect5GHzMargin
+ * dBm than 2.4G AP. This feature requires the dependent cfg.ini
+ * "gRoamPrefer5GHz" set to 1
+ *
+ * Related: gRoamPrefer5GHz
+ *
+ * Supported Feature: Roaming
+ *
+ * Usage: External
+ *
+ * </ini>
+ */
+#define CFG_SELECT_5GHZ_MARGIN CFG_INI_UINT( \
+	"gSelect5GHzMargin", \
+	0, \
+	60, \
+	0, \
+	CFG_VALUE_OR_DEFAULT, \
+	"Select 5Ghz Margin")
+
+/*
+ * <ini>
+ * gEnableMemDeepSleep - Sets Memory Deep Sleep on/off.
+ * @Min: 0
+ * @Max: 1
+ * @Default: 1
+ *
+ *
+ * Related: None
+ *
+ * Supported Feature: General
+ *
+ * Usage: External
+ *
+ * </ini>
+ */
+#define CFG_ENABLE_MEM_DEEP_SLEEP CFG_INI_BOOL( \
+	"gEnableMemDeepSleep", \
+	1, \
+	"Enable Memory Deep Sleep")
+
+/*
+ * <ini>
+ *
+ * gEnableCckTxFirOverride - Enable/disable CCK TxFIR Override
+ * @Min: 0 (disabled)
+ * @Max: 1 (enabled)
+ * @Default: 0 (disabled)
+ *
+ * When operating in an 802.11b mode, this configuration item forces a 2x2 radio
+ * configuration into 1x for Tx and 2x for Rx (ie 1x2) for regulatory compliance
+ * reasons.
+ *
+ * Related: enable2x2
+ *
+ * Supported Feature: 802.11b, 2x2
+ *
+ * Usage: Internal/External
+ *
+ * </ini>
+ */
+#define CFG_ENABLE_CCK_TX_FIR_OVERRIDE CFG_INI_BOOL( \
+	"gEnableCckTxFirOverride", \
+	0, \
+	"Enable CCK TX FIR Override")
+
+/*
+ * <ini>
+ *
+ * gEnableForceTargetAssert - Enable/disable SSR
+ * @Min: 0 (disabled)
+ * @Max: 1 (enabled)
+ * @Default: 0 (disabled)
+ *
+ * This INI item is used to control subsystem restart(SSR) test framework
+ * Set it's value to 1 to enable APPS trigerred SSR testing
+ *
+ * Related: None
+ *
+ * Supported Feature: General
+ *
+ * Usage: Internal/External
+ *
+ * </ini>
+ */
+#define CFG_ENABLE_CRASH_INJECT CFG_INI_BOOL( \
+	"gEnableForceTargetAssert", \
+	0, \
+	"Enable Crash Inject")
+
+/*
+ * <ini>
+ *
+ * gEnableLpassSupport - Enable/disable LPASS Support
+ * @Min: 0 (disabled)
+ * @Max: 1 (enabled)
+ * @Default: 0 (disabled)
+ *
+ * Related: None
+ *
+ * Supported Feature: General
+ *
+ * Usage: Internal/External
+ *
+ * </ini>
+ */
+#ifdef WLAN_FEATURE_LPSS
+#define CFG_ENABLE_LPASS_SUPPORT CFG_INI_BOOL( \
+	"gEnableLpassSupport", \
+	0, \
+	"Enable LPASS Support")
+#else
+#define CFG_ENABLE_LPASS_SUPPORT CFG_BOOL( \
+	"gEnableLpassSupport", \
+	0, \
+	"Enable LPASS Support")
+#endif
+
+/*
+ * <ini>
+ *
+ * gEnableSelfRecovery - Enable/disable Self Recovery
+ * @Min: 0 (disabled)
+ * @Max: 1 (enabled)
+ * @Default: 0 (disabled)
+ *
+ * Related: None
+ *
+ * Supported Feature: General
+ *
+ * Usage: Internal/External
+ *
+ * </ini>
+ */
+#define CFG_ENABLE_SELF_RECOVERY CFG_INI_BOOL( \
+	"gEnableSelfRecovery", \
+	0, \
+	"Enable Self Recovery")
+
+/*
+ * <ini>
+ *
+ * gSapDot11mc - Enable/disable SAP 802.11mc support
+ * @Min: 0 (disabled)
+ * @Max: 1 (enabled)
+ * @Default: 0 (disabled)
+ *
+ * Related: None
+ *
+ * Supported Feature: General
+ *
+ * Usage: Internal/External
+ *
+ * </ini>
+ */
+#define CFG_SAP_DOT11MC CFG_INI_BOOL( \
+	"gSapDot11mc", \
+	0, \
+	"SAP 802.11mc support")
+
+/*
+ * <ini>
+ *
+ * gEnableFatalEvent - Enable/Disable BUG report in case of fatal event
+ * @Min: 0 (disabled)
+ * @Max: 1 (enabled)
+ * @Default: 1 (enabled)
+ *
+ * Related: None
+ *
+ * Supported Feature: General
+ *
+ * Usage: Internal/External
+ *
+ * </ini>
+ */
+#define CFG_ENABLE_FATAL_EVENT_TRIGGER CFG_INI_BOOL( \
+	"gEnableFatalEvent", \
+	1, \
+	"Enable Fatal Event Trigger")
+
+/*
+ * <ini>
+ * gSub20ChannelWidth - Control sub 20 channel width (5/10 Mhz)
+ * @Min: 0
+ * @Max: 2
+ * @Default: 0
+ *
+ * This ini is used to set the sub 20 channel width.
+ * gSub20ChannelWidth=0: indicates do not use Sub 20 MHz bandwidth
+ * gSub20ChannelWidth=1: Bring up SAP/STA in 5 MHz bandwidth
+ * gSub20ChannelWidth=2: Bring up SAP/STA in 10 MHz bandwidth
+ *
+ * Related: None
+ *
+ * Supported Feature: 5/10 Mhz channel width support
+ *
+ * Usage: Internal/External
+ *
+ * </ini>
+ */
+#define CFG_SUB_20_CHANNEL_WIDTH CFG_INI_UINT( \
+	"gSub20ChannelWidth", \
+	0, \
+	2, \
+	0, \
+	CFG_VALUE_OR_DEFAULT, \
+	"Sub 20 Channel Width")
+
+/*
+ * <ini>
+ * goptimize_chan_avoid_event - Optimize channel avoidance indication
+ *				coming from firmware
+ * @Min: 0
+ * @Max: 1
+ * @Default: 0
+ *
+ * Related: None
+ *
+ * Supported Feature: General
+ *
+ * Usage: Internal/External
+ *
+ * </ini>
+ */
+#define CFG_OPTIMIZE_CA_EVENT CFG_INI_BOOL( \
+	"goptimize_chan_avoid_event", \
+	0, \
+	"Optimize FW CA Event")
+
+/*
+ * <ini>
+ * fw_timeout_crash - Enable/Disable BUG ON
+ * @Min: 0
+ * @Max: 1
+ * @Default: 1
+ *
+ * This ini is used to Trigger host crash when firmware fails to send the
+ * response to host
+ * fw_timeout_crash = 0 Disabled
+ * fw_timeout_crash = 1 Trigger host crash
+ *
+ * Related: None
+ *
+ * Supported Feature: SSR
+ *
+ * Usage: Internal/External
+ *
+ * </ini>
+ */
+#define CFG_CRASH_FW_TIMEOUT CFG_INI_BOOL( \
+	"fw_timeout_crash", \
+	1, \
+	"Enable FW Timeout Crash")
+
+/*
+ * <ini>
+ * gDroppedPktDisconnectTh - Sets dropped packet threshold in firmware
+ * @Min: 0
+ * @Max: 512
+ * @Default: 512
+ *
+ * This INI is the packet drop threshold will trigger disconnect from remote
+ * peer.
+ *
+ * Related: None
+ *
+ * Supported Feature: connection
+ *
+ * Usage: External
+ *
+ * </ini>
+ */
+#define CFG_DROPPED_PKT_DISCONNECT_THRESHOLD CFG_INI_UINT( \
+	"gDroppedPktDisconnectTh", \
+	0, \
+	65535, \
+	512, \
+	CFG_VALUE_OR_DEFAULT, \
+	"Dropped Pkt Disconnect threshold")
+
+/*
+ * <ini>
+ * gItoRepeatCount - sets ito repeated count
+ * @Min: 0
+ * @Max: 5
+ * @Default: 0
+ *
+ * This ini sets the ito count in FW
+ *
+ * Usage: External
+ *
+ * </ini>
+ */
+#define CFG_ITO_REPEAT_COUNT CFG_INI_UINT( \
+	"gItoRepeatCount", \
+	0, \
+	5, \
+	0, \
+	CFG_VALUE_OR_DEFAULT, \
+	"ITO Repeat Count")
+
 #define CFG_GENERIC_ALL \
 	CFG(CFG_PMF_SA_QUERY_MAX_RETRIES) \
 	CFG(CFG_PMF_SA_QUERY_RETRY_INTERVAL) \
-	CFG(CFG_RTT3_ENABLE)
+	CFG(CFG_RTT3_ENABLE) \
+	CFG(CFG_BAND_CAPABILITY) \
+	CFG(CFG_PREVENT_LINK_DOWN) \
+	CFG(CFG_SELECT_5GHZ_MARGIN) \
+	CFG(CFG_ENABLE_MEM_DEEP_SLEEP) \
+	CFG(CFG_ENABLE_CCK_TX_FIR_OVERRIDE) \
+	CFG(CFG_ENABLE_CRASH_INJECT) \
+	CFG(CFG_ENABLE_LPASS_SUPPORT) \
+	CFG(CFG_ENABLE_SELF_RECOVERY) \
+	CFG(CFG_SAP_DOT11MC) \
+	CFG(CFG_ENABLE_FATAL_EVENT_TRIGGER) \
+	CFG(CFG_SUB_20_CHANNEL_WIDTH) \
+	CFG(CFG_OPTIMIZE_CA_EVENT) \
+	CFG(CFG_CRASH_FW_TIMEOUT) \
+	CFG(CFG_DROPPED_PKT_DISCONNECT_THRESHOLD) \
+	CFG(CFG_ITO_REPEAT_COUNT)
+
 #endif /* __CFG_MLME_GENERIC_H */

+ 35 - 3
mlme/dispatcher/inc/wlan_mlme_public_struct.h

@@ -24,6 +24,7 @@
 #define _WLAN_MLME_STRUCT_H_
 
 #include <wlan_cmn.h>
+#include <reg_services_public_struct.h>
 
 #define CFG_PMKID_MODES_OKC                        (0x1)
 #define CFG_PMKID_MODES_PMKSA_CACHING              (0x2)
@@ -608,15 +609,46 @@ struct wlan_mlme_chainmask {
 
 /* struct wlan_mlme_generic - Generic CFG config items
  *
- * @rtt3_enabled:  RTT3 enable or disable info
+ * @band_capability: HW Band Capability - Both or 2.4G only or 5G only
+ * @band: Current Band - Internal variable, initialized to INI and updated later
+ * @select_5ghz_margin: RSSI margin to select 5Ghz over 2.4 Ghz
+ * @sub_20_chan_width: Sub 20Mhz Channel Width
+ * @ito_repeat_count: ITO Repeat Count
  * @pmf_sa_query_max_retries: PMF query max retries for SAP
  * @pmf_sa_query_retry_interval: PMF query retry interval for SAP
- *
+ * @dropped_pkt_disconnect_thresh: Threshold for dropped pkts before disconnect
+ * @rtt3_enabled: RTT3 enable or disable info
+ * @prevent_link_down: Enable/Disable prevention of link down
+ * @memory_deep_sleep: Enable/Disable memory deep sleep
+ * @cck_tx_fir_override: Enable/Disable CCK Tx FIR Override
+ * @crash_inject: Enable/Disable Crash Inject
+ * @lpass_support: Enable/Disable LPASS Support
+ * @self_recovery: Enable/Disable Self Recovery
+ * @sap_dot11mc: Enable/Disable SAP 802.11mc support
+ * @fatal_event_trigger: Enable/Disable Fatal Events Trigger
+ * @optimize_ca_event: Enable/Disable Optimization of CA events
+ * @fw_timeout_crash: Enable/Disable FW Timeout Crash *
  */
 struct wlan_mlme_generic {
-	bool rtt3_enabled;
+	enum band_info band_capability;
+	enum band_info band;
+	uint8_t select_5ghz_margin;
+	uint8_t sub_20_chan_width;
+	uint8_t ito_repeat_count;
 	uint8_t pmf_sa_query_max_retries;
 	uint16_t pmf_sa_query_retry_interval;
+	uint16_t dropped_pkt_disconnect_thresh;
+	bool rtt3_enabled;
+	bool prevent_link_down;
+	bool memory_deep_sleep;
+	bool cck_tx_fir_override;
+	bool crash_inject;
+	bool lpass_support;
+	bool self_recovery;
+	bool sap_dot11mc;
+	bool fatal_event_trigger;
+	bool optimize_ca_event;
+	bool fw_timeout_crash;
 };
 
 /*