diff --git a/components/fw_offload/dispatcher/inc/cfg_fwol_generic.h b/components/fw_offload/dispatcher/inc/cfg_fwol_generic.h
index ffc7ac071f..1c667125e9 100644
--- a/components/fw_offload/dispatcher/inc/cfg_fwol_generic.h
+++ b/components/fw_offload/dispatcher/inc/cfg_fwol_generic.h
@@ -393,7 +393,7 @@
#ifdef DHCP_SERVER_OFFLOAD
/*
- * gEnableDeauthToDisassocMap
+ * gDHCPServerOffloadEnable
* @Min: 0
* @Max: 1
* @Default: 0
@@ -407,7 +407,7 @@
*
*/
#define CFG_DHCP_SERVER_OFFLOAD_SUPPORT CFG_INI_BOOL( \
- "gEnableDeauthToDisassocMap", \
+ "gDHCPServerOffloadEnable", \
0, \
"DHCP Server offload support")
diff --git a/components/mlme/core/src/wlan_mlme_main.c b/components/mlme/core/src/wlan_mlme_main.c
index 94ad206061..224615e3af 100644
--- a/components/mlme/core/src/wlan_mlme_main.c
+++ b/components/mlme/core/src/wlan_mlme_main.c
@@ -347,6 +347,8 @@ static void mlme_init_generic_cfg(struct wlan_objmgr_psoc *psoc,
gen->fw_timeout_crash =
cfg_get(psoc, CFG_CRASH_FW_TIMEOUT);
gen->debug_packet_log = cfg_get(psoc, CFG_ENABLE_DEBUG_PACKET_LOG);
+ gen->enable_deauth_to_disassoc_map =
+ cfg_get(psoc, CFG_ENABLE_DEAUTH_TO_DISASSOC_MAP);
mlme_init_pmf_cfg(psoc, gen);
mlme_init_lpass_support_cfg(psoc, gen);
@@ -1150,6 +1152,8 @@ static void mlme_init_sap_cfg(struct wlan_objmgr_psoc *psoc,
cfg_get(psoc, CFG_SAP_FORCE_11N_FOR_11AC);
sap_cfg->go_force_11n_for_11ac =
cfg_get(psoc, CFG_GO_FORCE_11N_FOR_11AC);
+ sap_cfg->ap_random_bssid_enable =
+ cfg_get(psoc, CFG_AP_ENABLE_RANDOM_BSSID);
}
@@ -1251,6 +1255,8 @@ static void mlme_init_sta_cfg(struct wlan_objmgr_psoc *psoc,
sta->current_rssi =
(uint32_t)cfg_default(CFG_CURRENT_RSSI);
sta->allow_tpc_from_ap = cfg_get(psoc, CFG_TX_POWER_CTRL);
+ sta->sta_keepalive_method =
+ cfg_get(psoc, CFG_STA_KEEPALIVE_METHOD);
}
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
diff --git a/components/mlme/dispatcher/inc/cfg_mlme_generic.h b/components/mlme/dispatcher/inc/cfg_mlme_generic.h
index 0d60a3ffbe..1d5e4d067e 100644
--- a/components/mlme/dispatcher/inc/cfg_mlme_generic.h
+++ b/components/mlme/dispatcher/inc/cfg_mlme_generic.h
@@ -503,6 +503,28 @@
CFG_VALUE_OR_DEFAULT, \
"ITO Repeat Count")
+/*
+ *
+ * gEnableDeauthToDisassocMap - Enables deauth to disassoc map
+ * @Min: 0
+ * @Max: 1
+ * @Default: 0
+ *
+ * This ini is used to set default disassoc map
+ *
+ * Related: None
+ *
+ * Supported Feature: STA
+ *
+ * Usage: External
+ *
+ *
+ */
+#define CFG_ENABLE_DEAUTH_TO_DISASSOC_MAP CFG_INI_BOOL( \
+ "gEnableDeauthToDisassocMap", \
+ 0, \
+ "Enables deauth to disassoc map")
+
/*
*
* gEnableDebugLog - Enable/Disable the Connection related logs
@@ -548,6 +570,7 @@
CFG(CFG_ENABLE_CRASH_INJECT) \
CFG(CFG_ENABLE_LPASS_SUPPORT) \
CFG(CFG_ENABLE_SELF_RECOVERY) \
+ CFG(CFG_ENABLE_DEAUTH_TO_DISASSOC_MAP) \
CFG(CFG_SAP_DOT11MC) \
CFG(CFG_ENABLE_FATAL_EVENT_TRIGGER) \
CFG(CFG_SUB_20_CHANNEL_WIDTH) \
diff --git a/components/mlme/dispatcher/inc/cfg_mlme_sap.h b/components/mlme/dispatcher/inc/cfg_mlme_sap.h
index f4a098acd8..5fed6ceb8f 100644
--- a/components/mlme/dispatcher/inc/cfg_mlme_sap.h
+++ b/components/mlme/dispatcher/inc/cfg_mlme_sap.h
@@ -578,7 +578,31 @@
"GO force 11n for 11ac")
+/*
+ *
+ * gEnableApRandomBssid - Create ramdom BSSID
+ * @Min: 0
+ * @Max: 1
+ * @Default: 0
+ *
+ * This ini is used to create a random BSSID in SoftAP mode to meet
+ * the Android requirement.
+ *
+ * Related: None.
+ *
+ * Supported Feature: SAP
+ *
+ * Usage: Internal/External
+ *
+ *
+ */
+#define CFG_AP_ENABLE_RANDOM_BSSID CFG_INI_BOOL( \
+ "gEnableApRandomBssid", \
+ 0, \
+ "Create ramdom BSSID")
+
#define CFG_SAP_ALL \
+ CFG(CFG_AP_ENABLE_RANDOM_BSSID) \
CFG(CFG_SSID) \
CFG(CFG_BEACON_INTERVAL) \
CFG(CFG_DTIM_PERIOD) \
diff --git a/components/mlme/dispatcher/inc/cfg_mlme_sta.h b/components/mlme/dispatcher/inc/cfg_mlme_sta.h
index 5bb9eb3531..32f1e9cb22 100644
--- a/components/mlme/dispatcher/inc/cfg_mlme_sta.h
+++ b/components/mlme/dispatcher/inc/cfg_mlme_sta.h
@@ -397,6 +397,33 @@
1, \
"Support for AP power constraint")
+/*
+ *
+ * gStaKeepAliveMethod - Which keepalive method to use
+ * @Min: 0
+ * @Max: 1
+ * @Default: 1
+ *
+ * This ini determines which keepalive method to use for station interfaces
+ * 1) Use null data packets
+ * 2) Use gratuitous ARP packets
+ *
+ * Related: gStaKeepAlivePeriod, gApKeepAlivePeriod, gGoKeepAlivePeriod
+ *
+ * Supported Feature: STA, Keepalive
+ *
+ * Usage: External
+ *
+ *
+ */
+#define CFG_STA_KEEPALIVE_METHOD CFG_INI_INT( \
+ "gStaKeepAliveMethod", \
+ MLME_STA_KEEPALIVE_NULL_DATA, \
+ MLME_STA_KEEPALIVE_COUNT - 1, \
+ MLME_STA_KEEPALIVE_GRAT_ARP, \
+ CFG_VALUE_OR_DEFAULT, \
+ "Which keepalive method to use")
+
#define CFG_STA_ALL \
CFG(CFG_INFRA_STA_KEEP_ALIVE_PERIOD) \
CFG(CFG_TGT_GTX_USR_CFG) \
@@ -411,6 +438,7 @@
CFG(CFG_FILS_MAX_CHAN_GUARD_TIME) \
CFG(CFG_FORCE_RSNE_OVERRIDE) \
CFG(CFG_SINGLE_TID_RC) \
+ CFG(CFG_STA_KEEPALIVE_METHOD) \
CFG(CFG_WT_CNF_TIMEOUT) \
CFG(CFG_CURRENT_RSSI) \
CFG(CFG_TX_POWER_CTRL)
diff --git a/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h b/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h
index d171c955f0..8436f1857f 100644
--- a/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h
+++ b/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h
@@ -568,6 +568,7 @@ struct wlan_mlme_cfg_sap {
uint8_t sap_pref_chan_location;
bool sap_force_11n_for_11ac;
bool go_force_11n_for_11ac;
+ bool ap_random_bssid_enable;
};
/**
@@ -935,6 +936,7 @@ struct wlan_mlme_generic {
uint8_t debug_packet_log;
bool enabled_11h;
bool enabled_11d;
+ bool enable_deauth_to_disassoc_map;
};
/*
@@ -1046,6 +1048,19 @@ struct wlan_mlme_nss_chains {
bool disable_tx_mrc[NSS_CHAINS_BAND_MAX];
};
+/**
+ * enum station_keepalive_method - available keepalive methods for stations
+ * @MLME_STA_KEEPALIVE_NULL_DATA: null data packet
+ * @MLME_STA_KEEPALIVE_GRAT_ARP: gratuitous ARP packet
+ * @MLME_STA_KEEPALIVE_COUNT: number of method options available
+ */
+enum station_keepalive_method {
+ MLME_STA_KEEPALIVE_NULL_DATA,
+ MLME_STA_KEEPALIVE_GRAT_ARP,
+ /* keep at the end */
+ MLME_STA_KEEPALIVE_COUNT
+};
+
/**
* struct wlan_mlme_sta_cfg - MLME STA configuration items
* @sta_keep_alive_period: Sends NULL frame to AP period
@@ -1082,6 +1097,7 @@ struct wlan_mlme_sta_cfg {
bool force_rsne_override;
bool single_tid;
bool allow_tpc_from_ap;
+ enum station_keepalive_method sta_keepalive_method;
};
/**
diff --git a/components/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h b/components/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h
index ab08b1abaa..7e0f21a03d 100644
--- a/components/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h
+++ b/components/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h
@@ -2473,6 +2473,17 @@ QDF_STATUS
ucfg_mlme_get_current_mcs_set(struct wlan_objmgr_psoc *psoc, uint8_t *buf,
qdf_size_t *len);
+/**
+ * ucfg_mlme_get_sta_keepalive_method() - Get sta_keepalive_method
+ * @psoc: pointer to psoc object
+ * @val: Value to pass to the caller
+ *
+ * Return: QDF Status
+ */
+QDF_STATUS
+ucfg_mlme_get_sta_keepalive_method(struct wlan_objmgr_psoc *psoc,
+ enum station_keepalive_method *val);
+
/**
* ucfg_mlme_get_wmm_dir_ac_vi() - Get TSPEC direction
* for VI
@@ -3068,4 +3079,30 @@ ucfg_mlme_set_sap_uapsd_flag(struct wlan_objmgr_psoc *psoc, bool value)
return wlan_mlme_set_sap_uapsd_flag(psoc, value);
}
+/**
+ * ucfg_mlme_get_enable_deauth_to_disassoc_map() - Enable deauth_to_disassoc_map
+ * @psoc: pointer to psoc object
+ * @value: Value that needs to be set from the caller
+ *
+ * UCFG API to be used by HDD/OSIF callers
+ *
+ * Return: QDF Status
+ */
+QDF_STATUS
+ucfg_mlme_get_enable_deauth_to_disassoc_map(struct wlan_objmgr_psoc *psoc,
+ bool *value);
+
+/**
+ * ucfg_mlme_get_ap_random_bssid_enable() - Enable random bssid
+ * @psoc: pointer to psoc object
+ * @value: Value that needs to be set from the caller
+ *
+ * UCFG API to be used by HDD/OSIF callers
+ *
+ * Return: QDF Status
+ */
+QDF_STATUS
+ucfg_mlme_get_ap_random_bssid_enable(struct wlan_objmgr_psoc *psoc,
+ bool *value);
+
#endif /* _WLAN_MLME_UCFG_API_H_ */
diff --git a/components/mlme/dispatcher/src/wlan_mlme_ucfg_api.c b/components/mlme/dispatcher/src/wlan_mlme_ucfg_api.c
index 533e045dca..835d38321d 100644
--- a/components/mlme/dispatcher/src/wlan_mlme_ucfg_api.c
+++ b/components/mlme/dispatcher/src/wlan_mlme_ucfg_api.c
@@ -1231,3 +1231,52 @@ ucfg_mlme_set_ps_data_inactivity_timeout(struct wlan_objmgr_psoc *psoc,
return QDF_STATUS_SUCCESS;
}
+
+QDF_STATUS
+ucfg_mlme_get_sta_keepalive_method(struct wlan_objmgr_psoc *psoc,
+ enum station_keepalive_method *val)
+{
+ struct wlan_mlme_psoc_obj *mlme_obj;
+
+ mlme_obj = mlme_get_psoc_obj(psoc);
+ if (!mlme_obj) {
+ mlme_err("mlme obj null");
+ return QDF_STATUS_E_INVAL;
+ }
+
+ *val = mlme_obj->cfg.sta.sta_keepalive_method;
+ return QDF_STATUS_SUCCESS;
+}
+
+QDF_STATUS
+ucfg_mlme_get_enable_deauth_to_disassoc_map(struct wlan_objmgr_psoc *psoc,
+ bool *value)
+{
+ struct wlan_mlme_psoc_obj *mlme_obj;
+
+ mlme_obj = mlme_get_psoc_obj(psoc);
+ if (!mlme_obj) {
+ mlme_err("mlme obj null");
+ return QDF_STATUS_E_INVAL;
+ }
+
+ *value = mlme_obj->cfg.gen.enable_deauth_to_disassoc_map;
+ return QDF_STATUS_SUCCESS;
+}
+
+
+QDF_STATUS
+ucfg_mlme_get_ap_random_bssid_enable(struct wlan_objmgr_psoc *psoc,
+ bool *value)
+{
+ struct wlan_mlme_psoc_obj *mlme_obj;
+
+ mlme_obj = mlme_get_psoc_obj(psoc);
+ if (!mlme_obj) {
+ mlme_err("mlme obj null");
+ return QDF_STATUS_E_INVAL;
+ }
+
+ *value = mlme_obj->cfg.sap_cfg.ap_random_bssid_enable;
+ return QDF_STATUS_SUCCESS;
+}
diff --git a/components/pmo/core/src/wlan_pmo_main.c b/components/pmo/core/src/wlan_pmo_main.c
index b75bdb49a4..8b1b837c0d 100644
--- a/components/pmo/core/src/wlan_pmo_main.c
+++ b/components/pmo/core/src/wlan_pmo_main.c
@@ -175,6 +175,7 @@ static void wlan_pmo_init_cfg(struct wlan_objmgr_psoc *psoc,
wlan_pmo_runtime_pm_init_cfg(psoc, psoc_cfg);
psoc_cfg->auto_power_save_fail_mode =
cfg_get(psoc, CFG_PMO_PWR_FAILURE);
+ psoc_cfg->enable_sap_suspend = cfg_get(psoc, CFG_ENABLE_SAP_SUSPEND);
}
QDF_STATUS pmo_psoc_open(struct wlan_objmgr_psoc *psoc)
diff --git a/components/pmo/dispatcher/inc/wlan_pmo_common_cfg.h b/components/pmo/dispatcher/inc/wlan_pmo_common_cfg.h
index 34a28e86cc..88eef48354 100644
--- a/components/pmo/dispatcher/inc/wlan_pmo_common_cfg.h
+++ b/components/pmo/dispatcher/inc/wlan_pmo_common_cfg.h
@@ -346,7 +346,29 @@
CFG_VALUE_OR_DEFAULT, \
"Auto detect power save failure mode")
+/*
+ *
+ * gEnableSapSuspend - Enable/disable SAP Suspend
+ * @Min: 0
+ * @Max: 1
+ * @Default: 0
+ *
+ *
+ * Related: None
+ *
+ * Supported Feature: SAP
+ *
+ * Usage: External
+ *
+ *
+ */
+#define CFG_ENABLE_SAP_SUSPEND CFG_INI_BOOL( \
+ "gEnableSapSuspend", \
+ 1, \
+ "Enable/disable SAP Suspend")
+
#define CFG_PMO_COMMON_ALL \
+ CFG(CFG_ENABLE_SAP_SUSPEND) \
CFG(CFG_PMO_ENABLE_HOST_ARPOFFLOAD) \
CFG(CFG_PMO_HW_FILTER_MODE) \
CFG(CFG_PMO_ENABLE_HOST_SSDP) \
diff --git a/components/pmo/dispatcher/inc/wlan_pmo_common_public_struct.h b/components/pmo/dispatcher/inc/wlan_pmo_common_public_struct.h
index 7b1b6fa3bb..0d455491ad 100644
--- a/components/pmo/dispatcher/inc/wlan_pmo_common_public_struct.h
+++ b/components/pmo/dispatcher/inc/wlan_pmo_common_public_struct.h
@@ -392,6 +392,8 @@ struct pmo_psoc_cfg {
#ifdef WLAN_FEATURE_PACKET_FILTERING
uint8_t packet_filters_bitmap;
#endif
+ bool enable_sap_suspend;
+
};
/**
diff --git a/components/pmo/dispatcher/inc/wlan_pmo_ucfg_api.h b/components/pmo/dispatcher/inc/wlan_pmo_ucfg_api.h
index b759d3a6c6..6b8422fc6c 100644
--- a/components/pmo/dispatcher/inc/wlan_pmo_ucfg_api.h
+++ b/components/pmo/dispatcher/inc/wlan_pmo_ucfg_api.h
@@ -1780,4 +1780,14 @@ ucfg_pmo_get_runtime_pm_delay(struct wlan_objmgr_psoc *psoc)
return 0;
}
#endif /* FEATURE_RUNTIME_PM */
+
+/**
+ * ucfg_pmo_get_enable_sap_suspend - Return enable_sap_suspend value to caller
+ * @psoc: Pointer to psoc object
+ *
+ * Return: The value of enable_sap_suspend as stored in CFG
+ */
+bool
+ucfg_pmo_get_enable_sap_suspend(struct wlan_objmgr_psoc *psoc);
+
#endif /* end of _WLAN_PMO_UCFG_API_H_ */
diff --git a/components/pmo/dispatcher/src/wlan_pmo_ucfg_api.c b/components/pmo/dispatcher/src/wlan_pmo_ucfg_api.c
index b9d4a6c671..775212ff74 100644
--- a/components/pmo/dispatcher/src/wlan_pmo_ucfg_api.c
+++ b/components/pmo/dispatcher/src/wlan_pmo_ucfg_api.c
@@ -782,3 +782,11 @@ ucfg_pmo_extwow_app2_tcp_rx_timeout(struct wlan_objmgr_psoc *psoc)
return pmo_psoc_ctx->psoc_cfg.extwow_app2_tcp_rx_timeout;
}
#endif
+
+bool
+ucfg_pmo_get_enable_sap_suspend(struct wlan_objmgr_psoc *psoc)
+{
+ struct pmo_psoc_priv_obj *pmo_psoc_ctx = pmo_psoc_get_priv(psoc);
+
+ return pmo_psoc_ctx->psoc_cfg.enable_sap_suspend;
+}
diff --git a/core/hdd/inc/hdd_config.h b/core/hdd/inc/hdd_config.h
index f484ca87f9..7ec968ae5c 100644
--- a/core/hdd/inc/hdd_config.h
+++ b/core/hdd/inc/hdd_config.h
@@ -342,6 +342,132 @@ enum hdd_wext_control {
#define CFG_ENABLE_PACKET_LOG_ALL
#endif
+#ifdef FEATURE_RUNTIME_PM
+/*
+ *
+ * gRuntimePM - enable runtime suspend
+ * @Min: 0
+ * @Max: 1
+ * @Default: 0
+ *
+ * This ini is used to enable runtime_suspend
+ *
+ * Related: None
+ *
+ * Supported Feature: Power Save
+ *
+ * Usage: External
+ *
+ *
+ */
+#define CFG_ENABLE_RUNTIME_PM CFG_INI_BOOL( \
+ "gRuntimePM", \
+ 0, \
+ "This ini is used to enable runtime_suspend")
+#define CFG_ENABLE_RUNTIME_PM_ALL \
+ CFG(CFG_ENABLE_RUNTIME_PM)
+#else
+#define CFG_ENABLE_RUNTIME_PM_ALL
+#endif
+
+/*
+ *
+ * gEnableMCCMode - Enable/Disable MCC feature.
+ * @Min: 0
+ * @Max: 1
+ * @Default: 1
+ *
+ * This ini is used to enable/disable MCC feature.
+ *
+ * Related: None.
+ *
+ * Supported Feature: Concurrency
+ *
+ * Usage: Internal
+ *
+ *
+ */
+#define CFG_ENABLE_MCC_ENABLED CFG_INI_BOOL( \
+ "gEnableMCCMode", \
+ 1, \
+ "Enable/Disable MCC feature")
+
+/*
+ *
+ * gInformBssRssiRaw - Report rssi in cfg80211_inform_bss_frame
+ * @Min: 0
+ * @Max: 1
+ * @Default: 1
+ *
+ * Option to report rssi in cfg80211_inform_bss_frame()
+ *
+ * Related: None
+ *
+ * Supported Feature: N/A
+ *
+ * Usage: External
+ *
+ *
+ */
+#define CFG_INFORM_BSS_RSSI_RAW CFG_INI_BOOL( \
+ "gInformBssRssiRaw", \
+ 1, \
+ "Option to report rssi in cfg80211_inform_bss_frame")
+
+#ifdef FEATURE_WLAN_DYNAMIC_CVM
+/*
+ *
+ * gConfigVCmodeBitmap - Bitmap for operating voltage corner mode
+ * @Min: 0x00000000
+ * @Max: 0x0fffffff
+ * @Default: 0x0000000a
+ * This ini is used to set operating voltage corner mode for differenet
+ * phymode and bw configurations. Every 2 bits till BIT27 are dedicated
+ * for a specific configuration. Bit values decide the type of voltage
+ * corner mode. All the details below -
+ *
+ * Configure operating voltage corner mode based on phymode and bw.
+ * bit 0-1 - operating voltage corner mode for 11a/b.
+ * bit 2-3 - operating voltage corner mode for 11g.
+ * bit 4-5 - operating voltage corner mode for 11n, 20MHz, 1x1.
+ * bit 6-7 - operating voltage corner mode for 11n, 20MHz, 2x2.
+ * bit 8-9 - operating voltage corner mode for 11n, 40MHz, 1x1.
+ * bit 10-11 - operating voltage corner mode for 11n, 40MHz, 2x2.
+ * bit 12-13 - operating voltage corner mode for 11ac, 20MHz, 1x1.
+ * bit 14-15 - operating voltage corner mode for 11ac, 20MHz, 2x2.
+ * bit 16-17 - operating voltage corner mode for 11ac, 40MHz, 1x1.
+ * bit 18-19 - operating voltage corner mode for 11ac, 40MHz, 2x2.
+ * bit 20-21 - operating voltage corner mode for 11ac, 80MHz, 1x1.
+ * bit 22-23 - operating voltage corner mode for 11ac, 80MHz, 2x2.
+ * bit 24-25 - operating voltage corner mode for 11ac, 160MHz, 1x1.
+ * bit 26-27 - operating voltage corner mode for 11ac, 160MHz, 2x2.
+ * ---------------------------------------------
+ * 00 - Static voltage corner SVS
+ * 01 - static voltage corner LOW SVS
+ * 10 - Dynamic voltage corner selection based on TPUT
+ * 11 - Dynamic voltage corner selection based on TPUT and Tx Flush counters
+
+ * Related: None
+ *
+ * Supported Feature: None
+ *
+ * Usage: External
+ *
+ *
+ */
+#define CFG_VC_MODE_BITMAP CFG_INI_INT( \
+ "gConfigVCmode", \
+ 0x00000000, \
+ 0x0fffffff, \
+ 0x00000005, \
+ CFG_VALUE_OR_DEFAULT, \
+ "Bitmap for operating voltage corner mode")
+
+#define CFG_VC_MODE_BITMAP_ALL CFG(CFG_VC_MODE_BITMAP)
+#else
+#define CFG_VC_MODE_BITMAP_ALL
+#endif
+
/*
*
* gOperatingChannel- Default STA operating channel
@@ -399,10 +525,11 @@ enum hdd_wext_control {
* along with the creation of wlan0 and p2p0. The name of the interface is
* specified as the parameter
*
- * Usage: Internal/External
+ * Usage: Internal
*
*
*/
+
#define CFG_ENABLE_CONCURRENT_STA CFG_INI_STRING( \
"gEnableConcurrentSTA", \
0, \
@@ -443,6 +570,8 @@ enum hdd_wext_control {
#define CFG_HDD_ALL \
CFG_ENABLE_PACKET_LOG_ALL \
+ CFG_ENABLE_RUNTIME_PM_ALL \
+ CFG_VC_MODE_BITMAP_ALL \
CFG_WLAN_AUTO_SHUTDOWN_ALL \
CFG_WLAN_LOGGING_SUPPORT_ALL \
CFG(CFG_BUG_ON_REINIT_FAILURE) \
@@ -451,7 +580,9 @@ enum hdd_wext_control {
CFG(CFG_ENABLE_FW_LOG) \
CFG(CFG_ENABLE_FW_UART_PRINT) \
CFG(CFG_ENABLE_RAMDUMP_COLLECTION) \
+ CFG(CFG_ENABLE_MCC_ENABLED) \
CFG(CFG_INTERFACE_CHANGE_WAIT) \
+ CFG(CFG_INFORM_BSS_RSSI_RAW) \
CFG(CFG_MULTICAST_HOST_FW_MSGS) \
CFG(CFG_NUM_VDEV_ENABLE) \
CFG(CFG_OPERATING_CHANNEL) \
diff --git a/core/hdd/inc/wlan_hdd_cfg.h b/core/hdd/inc/wlan_hdd_cfg.h
index 96d6ea5cc4..df23794868 100644
--- a/core/hdd/inc/wlan_hdd_cfg.h
+++ b/core/hdd/inc/wlan_hdd_cfg.h
@@ -1613,29 +1613,6 @@ enum hdd_dot11_mode {
#define CFG_DOT11_MODE_DEFAULT eHDD_DOT11_MODE_11ax
#define CFG_DOT11_MODE_MAX eHDD_DOT11_MODE_11ax
-/*
- *
- * gEnableApRandomBssid - Create ramdom BSSID
- * @Min: 0
- * @Max: 1
- * @Default: 0
- *
- * This ini is used to create a random BSSID in SoftAP mode to meet
- * the Android requirement.
- *
- * Related: None.
- *
- * Supported Feature: SAP
- *
- * Usage: Internal/External
- *
- *
- */
-#define CFG_AP_ENABLE_RANDOM_BSSID_NAME "gEnableApRandomBssid"
-#define CFG_AP_ENABLE_RANDOM_BSSID_MIN (0)
-#define CFG_AP_ENABLE_RANDOM_BSSID_MAX (1)
-#define CFG_AP_ENABLE_RANDOM_BSSID_DEFAULT (0)
-
/*
*
* gEnableApProt - Enable/Disable AP protection
@@ -1919,43 +1896,6 @@ enum hdd_dot11_mode {
#define CFG_WOW_DATA_INACTIVITY_TIMEOUT_MAX (255)
#define CFG_WOW_DATA_INACTIVITY_TIMEOUT_DEFAULT (50)
-/**
- * enum station_keepalive_method - available keepalive methods for stations
- * @HDD_STA_KEEPALIVE_NULL_DATA: null data packet
- * @HDD_STA_KEEPALIVE_GRAT_ARP: gratuitous ARP packet
- * @HDD_STA_KEEPALIVE_COUNT: number of method options available
- */
-enum station_keepalive_method {
- HDD_STA_KEEPALIVE_NULL_DATA,
- HDD_STA_KEEPALIVE_GRAT_ARP,
- /* keep at the end */
- HDD_STA_KEEPALIVE_COUNT
-};
-
-/*
- *
- * gStaKeepAliveMethod - Which keepalive method to use
- * @Min: 0
- * @Max: 1
- * @Default: 1
- *
- * This ini determines which keepalive method to use for station interfaces
- * 1) Use null data packets
- * 2) Use gratuitous ARP packets
- *
- * Related: gStaKeepAlivePeriod, gApKeepAlivePeriod, gGoKeepAlivePeriod
- *
- * Supported Feature: STA, Keepalive
- *
- * Usage: Internal/External
- *
- *
- */
-#define CFG_STA_KEEPALIVE_METHOD_NAME "gStaKeepAliveMethod"
-#define CFG_STA_KEEPALIVE_METHOD_MIN (HDD_STA_KEEPALIVE_NULL_DATA)
-#define CFG_STA_KEEPALIVE_METHOD_MAX (HDD_STA_KEEPALIVE_COUNT - 1)
-#define CFG_STA_KEEPALIVE_METHOD_DEFAULT (HDD_STA_KEEPALIVE_GRAT_ARP)
-
/* WMM configuration */
/*
*
@@ -2328,52 +2268,6 @@ enum hdd_link_speed_rpt_type {
#define HDD_MULTICAST_FILTER_LIST 0x04
#define HDD_MULTICAST_FILTER_LIST_CLEAR 0x05
-/*
- *
- * gConfigVCmode - Bitmap for operating voltage corner mode
- * @Min: 0x00000000
- * @Max: 0x0fffffff
- * @Default: 0x0000000a
- * This ini is used to set operating voltage corner mode for differenet
- * phymode and bw configurations. Every 2 bits till BIT27 are dedicated
- * for a specific configuration. Bit values decide the type of voltage
- * corner mode. All the details below -
- *
- * Configure operating voltage corner mode based on phymode and bw.
- * bit 0-1 - operating voltage corner mode for 11a/b.
- * bit 2-3 - operating voltage corner mode for 11g.
- * bit 4-5 - operating voltage corner mode for 11n, 20MHz, 1x1.
- * bit 6-7 - operating voltage corner mode for 11n, 20MHz, 2x2.
- * bit 8-9 - operating voltage corner mode for 11n, 40MHz, 1x1.
- * bit 10-11 - operating voltage corner mode for 11n, 40MHz, 2x2.
- * bit 12-13 - operating voltage corner mode for 11ac, 20MHz, 1x1.
- * bit 14-15 - operating voltage corner mode for 11ac, 20MHz, 2x2.
- * bit 16-17 - operating voltage corner mode for 11ac, 40MHz, 1x1.
- * bit 18-19 - operating voltage corner mode for 11ac, 40MHz, 2x2.
- * bit 20-21 - operating voltage corner mode for 11ac, 80MHz, 1x1.
- * bit 22-23 - operating voltage corner mode for 11ac, 80MHz, 2x2.
- * bit 24-25 - operating voltage corner mode for 11ac, 160MHz, 1x1.
- * bit 26-27 - operating voltage corner mode for 11ac, 160MHz, 2x2.
- * ---------------------------------------------
- * 00 - Static voltage corner SVS
- * 01 - static voltage corner LOW SVS
- * 10 - Dynamic voltage corner selection based on TPUT
- * 11 - Dynamic voltage corner selection based on TPUT and Tx Flush counters
-
- * Related: None
- *
- * Supported Feature: None
- *
- * Usage: External
- *
- *
- */
-
-#define CFG_VC_MODE_BITMAP "gConfigVCmode"
-#define CFG_VC_MODE_BITMAP_MIN (0x00000000)
-#define CFG_VC_MODE_BITMAP_MAX (0x0fffffff)
-#define CFG_VC_MODE_BITMAP_DEFAULT (0x00000005)
-
/*
*
* gEnableSAPManadatoryChanList - Enable SAP Mandatory channel list
@@ -2398,28 +2292,6 @@ enum hdd_link_speed_rpt_type {
#define CFG_ENABLE_SAP_MANDATORY_CHAN_LIST_MAX (1)
#define CFG_ENABLE_SAP_MANDATORY_CHAN_LIST_DEFAULT (0)
-/*
- *
- * gEnableMCCMode - Enable/Disable MCC feature.
- * @Min: 0
- * @Max: 1
- * @Default: 1
- *
- * This ini is used to enable/disable MCC feature.
- *
- * Related: None.
- *
- * Supported Feature: Concurrency
- *
- * Usage: Internal/External
- *
- *
- */
-#define CFG_ENABLE_MCC_ENABLED_NAME "gEnableMCCMode"
-#define CFG_ENABLE_MCC_ENABLED_MIN (0)
-#define CFG_ENABLE_MCC_ENABLED_MAX (1)
-#define CFG_ENABLE_MCC_ENABLED_DEFAULT (1)
-
/*
*
* gAllowMCCGODiffBI - Allow GO in MCC mode to accept different beacon interval
@@ -2822,34 +2694,6 @@ enum hdd_link_speed_rpt_type {
#endif /* MSM_PLATFORM */
-#define CFG_ENABLE_SAP_SUSPEND "gEnableSapSuspend"
-#define CFG_ENABLE_SAP_SUSPEND_MIN (0)
-#define CFG_ENABLE_SAP_SUSPEND_MAX (1)
-#define CFG_ENABLE_SAP_SUSPEND_DEFAULT (1)
-
-/*
- *
- * gEnableDeauthToDisassocMap - Enables deauth to disassoc map
- * @Min: 0
- * @Max: 1
- * @Default: 0
- *
- * This ini is used to set default disassoc map
- *
- * Related: None
- *
- * Supported Feature: STA
- *
- * Usage: Internal/External
- *
- *
- */
-
-#define CFG_ENABLE_DEAUTH_TO_DISASSOC_MAP_NAME "gEnableDeauthToDisassocMap"
-#define CFG_ENABLE_DEAUTH_TO_DISASSOC_MAP_MIN (0)
-#define CFG_ENABLE_DEAUTH_TO_DISASSOC_MAP_MAX (1)
-#define CFG_ENABLE_DEAUTH_TO_DISASSOC_MAP_DEFAULT (0)
-
#ifdef DHCP_SERVER_OFFLOAD
#define CFG_DHCP_SERVER_IP_NAME "gDHCPServerIP"
#define CFG_DHCP_SERVER_IP_DEFAULT ""
@@ -3112,15 +2956,6 @@ enum hdd_link_speed_rpt_type {
#define CFG_STATIONARY_THRESHOLD_MAX (100)
#define CFG_STATIONARY_THRESHOLD_DEFAULT (10)
-/* Option to report rssi in cfg80211_inform_bss_frame()
- * 0 = use rssi value based on noise floor = -96 dBm
- * 1 = use rssi value based on actual noise floor in hardware
- */
-#define CFG_INFORM_BSS_RSSI_RAW_NAME "gInformBssRssiRaw"
-#define CFG_INFORM_BSS_RSSI_RAW_MIN (0)
-#define CFG_INFORM_BSS_RSSI_RAW_MAX (1)
-#define CFG_INFORM_BSS_RSSI_RAW_DEFAULT (1)
-
#ifdef WLAN_FEATURE_TSF_PLUS
/* PTP options */
#define CFG_SET_TSF_PTP_OPT_NAME "gtsf_ptp_options"
@@ -3579,30 +3414,6 @@ enum hdd_link_speed_rpt_type {
#define CFG_BMPS_MAXIMUM_LI_MAX (65535)
#define CFG_BMPS_MAXIMUM_LI_DEFAULT (1)
-#ifdef FEATURE_RUNTIME_PM
-/*
- *
- * gRuntimePM - enable runtime suspend
- * @Min: 0
- * @Max: 1
- * @Default: 0
- *
- * This ini is used to enable runtime_suspend
- *
- * Related: None
- *
- * Supported Feature: Power Save
- *
- * Usage: External
- *
- *
- */
-#define CFG_ENABLE_RUNTIME_PM "gRuntimePM"
-#define CFG_ENABLE_RUNTIME_PM_MIN (0)
-#define CFG_ENABLE_RUNTIME_PM_MAX (1)
-#define CFG_ENABLE_RUNTIME_PM_DEFAULT (0)
-#endif
-
/*
*
* gActiveUcBpfMode - Control UC active APF mode
@@ -4780,9 +4591,7 @@ struct hdd_config {
uint8_t intfAddrMask;
struct qdf_mac_addr intfMacAddr[QDF_MAX_CONCURRENCY_PERSONA];
- bool apRandomBssidEnabled;
bool apProtEnabled;
- enum station_keepalive_method sta_keepalive_method;
uint8_t nTxPowerCap; /* In dBm */
uint8_t disablePacketFilter;
bool fRrmEnable;
@@ -4830,10 +4639,6 @@ struct hdd_config {
uint32_t DelayedTriggerFrmInt;
-#ifdef FEATURE_RUNTIME_PM
- bool runtime_pm;
-#endif
-
#ifdef FEATURE_WLAN_RA_FILTERING
uint16_t RArateLimitInterval;
#endif
@@ -4849,7 +4654,6 @@ struct hdd_config {
int32_t linkSpeedRssiHigh;
int32_t linkSpeedRssiMid;
int32_t linkSpeedRssiLow;
- uint8_t enableMCC;
uint8_t allowMCCGODiffBI;
uint8_t thermalMitigationEnable;
uint32_t throttlePeriod;
@@ -4920,9 +4724,6 @@ struct hdd_config {
uint8_t SapSccChanAvoidance;
#endif /* FEATURE_WLAN_FORCE_SAP_SCC */
- bool enable_sap_suspend;
-
- bool gEnableDeauthToDisassocMap;
#ifdef DHCP_SERVER_OFFLOAD
uint8_t dhcpServerIP[IPADDR_STRING_LENGTH];
#endif /* DHCP_SERVER_OFFLOAD */
@@ -4952,7 +4753,6 @@ struct hdd_config {
#ifdef FEATURE_LFR_SUBNET_DETECTION
bool enable_lfr_subnet_detection;
#endif
- uint8_t inform_bss_rssi_raw;
#ifdef WLAN_FEATURE_TSF
#ifdef WLAN_FEATURE_TSF_PLUS
uint8_t tsf_ptp_options;
@@ -5116,6 +4916,11 @@ struct hdd_config {
uint8_t enable_concurrent_sta[CFG_CONCURRENT_IFACE_MAX_LEN];
uint8_t dbs_scan_selection[CFG_DBS_SCAN_PARAM_LENGTH];
uint8_t remove_time_stamp_sync_cmd;
+#ifdef FEATURE_RUNTIME_PM
+ bool runtime_pm;
+#endif
+ uint8_t enableMCC;
+ uint8_t inform_bss_rssi_raw;
};
#define VAR_OFFSET(_Struct, _Var) (offsetof(_Struct, _Var))
diff --git a/core/hdd/src/wlan_hdd_cfg.c b/core/hdd/src/wlan_hdd_cfg.c
index b73173d98a..e466fe2423 100644
--- a/core/hdd/src/wlan_hdd_cfg.c
+++ b/core/hdd/src/wlan_hdd_cfg.c
@@ -160,13 +160,6 @@ struct reg_table_entry g_registry_table[] = {
VAR_FLAGS_OPTIONAL,
(void *)CFG_INTF3_MAC_ADDR_DEFAULT),
- REG_VARIABLE(CFG_AP_ENABLE_RANDOM_BSSID_NAME, WLAN_PARAM_Integer,
- struct hdd_config, apRandomBssidEnabled,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_AP_ENABLE_RANDOM_BSSID_DEFAULT,
- CFG_AP_ENABLE_RANDOM_BSSID_MIN,
- CFG_AP_ENABLE_RANDOM_BSSID_MAX),
-
REG_VARIABLE(CFG_AP_ENABLE_PROTECTION_MODE_NAME, WLAN_PARAM_Integer,
struct hdd_config, apProtEnabled,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
@@ -174,15 +167,6 @@ struct reg_table_entry g_registry_table[] = {
CFG_AP_ENABLE_PROTECTION_MODE_MIN,
CFG_AP_ENABLE_PROTECTION_MODE_MAX),
-#ifdef FEATURE_WLAN_DYNAMIC_CVM
- REG_VARIABLE(CFG_VC_MODE_BITMAP, WLAN_PARAM_HexInteger,
- struct hdd_config, vc_mode_cfg_bitmap,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_VC_MODE_BITMAP_DEFAULT,
- CFG_VC_MODE_BITMAP_MIN,
- CFG_VC_MODE_BITMAP_MAX),
-#endif
-
REG_VARIABLE(CFG_ENABLE_SAP_MANDATORY_CHAN_LIST, WLAN_PARAM_Integer,
struct hdd_config, enable_sap_mandatory_chan_list,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
@@ -341,22 +325,6 @@ struct reg_table_entry g_registry_table[] = {
CFG_RA_RATE_LIMIT_INTERVAL_MAX),
#endif
-#ifdef FEATURE_RUNTIME_PM
- REG_VARIABLE(CFG_ENABLE_RUNTIME_PM, WLAN_PARAM_Integer,
- struct hdd_config, runtime_pm,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_ENABLE_RUNTIME_PM_DEFAULT,
- CFG_ENABLE_RUNTIME_PM_MIN,
- CFG_ENABLE_RUNTIME_PM_MAX),
-#endif
-
- REG_VARIABLE(CFG_STA_KEEPALIVE_METHOD_NAME, WLAN_PARAM_Integer,
- struct hdd_config, sta_keepalive_method,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_STA_KEEPALIVE_METHOD_DEFAULT,
- CFG_STA_KEEPALIVE_METHOD_MIN,
- CFG_STA_KEEPALIVE_METHOD_MAX),
-
#ifdef ENABLE_MTRACE_LOG
REG_VARIABLE(CFG_ENABLE_MTRACE, WLAN_PARAM_Integer,
struct hdd_config, enable_mtrace,
@@ -416,13 +384,6 @@ struct reg_table_entry g_registry_table[] = {
CFG_LINK_SPEED_RSSI_LOW_MAX,
NULL, 0),
- REG_VARIABLE(CFG_ENABLE_MCC_ENABLED_NAME, WLAN_PARAM_Integer,
- struct hdd_config, enableMCC,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_ENABLE_MCC_ENABLED_DEFAULT,
- CFG_ENABLE_MCC_ENABLED_MIN,
- CFG_ENABLE_MCC_ENABLED_MAX),
-
REG_VARIABLE(CFG_ALLOW_MCC_GO_DIFF_BI_NAME, WLAN_PARAM_Integer,
struct hdd_config, allowMCCGODiffBI,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
@@ -644,19 +605,6 @@ struct reg_table_entry g_registry_table[] = {
VAR_FLAGS_OPTIONAL,
(void *)CFG_ENABLE_FW_MODULE_LOG_DEFAULT),
- REG_VARIABLE(CFG_ENABLE_SAP_SUSPEND, WLAN_PARAM_Integer,
- struct hdd_config, enable_sap_suspend,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_ENABLE_SAP_SUSPEND_DEFAULT,
- CFG_ENABLE_SAP_SUSPEND_MIN,
- CFG_ENABLE_SAP_SUSPEND_MAX),
-
- REG_VARIABLE(CFG_ENABLE_DEAUTH_TO_DISASSOC_MAP_NAME, WLAN_PARAM_Integer,
- struct hdd_config, gEnableDeauthToDisassocMap,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_ENABLE_DEAUTH_TO_DISASSOC_MAP_DEFAULT,
- CFG_ENABLE_DEAUTH_TO_DISASSOC_MAP_MIN,
- CFG_ENABLE_DEAUTH_TO_DISASSOC_MAP_MAX),
#ifdef DHCP_SERVER_OFFLOAD
REG_VARIABLE_STRING(CFG_DHCP_SERVER_IP_NAME, WLAN_PARAM_String,
struct hdd_config, dhcpServerIP,
@@ -793,12 +741,6 @@ struct reg_table_entry g_registry_table[] = {
CFG_ENABLE_LFR_SUBNET_MIN,
CFG_ENABLE_LFR_SUBNET_MAX),
#endif
- REG_VARIABLE(CFG_INFORM_BSS_RSSI_RAW_NAME, WLAN_PARAM_Integer,
- struct hdd_config, inform_bss_rssi_raw,
- VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
- CFG_INFORM_BSS_RSSI_RAW_DEFAULT,
- CFG_INFORM_BSS_RSSI_RAW_MIN,
- CFG_INFORM_BSS_RSSI_RAW_MAX),
#ifdef WLAN_FEATURE_TSF
#ifdef WLAN_FEATURE_TSF_PLUS
diff --git a/core/hdd/src/wlan_hdd_cfg80211.c b/core/hdd/src/wlan_hdd_cfg80211.c
index 6b0e24e826..f5beb62110 100644
--- a/core/hdd/src/wlan_hdd_cfg80211.c
+++ b/core/hdd/src/wlan_hdd_cfg80211.c
@@ -13248,6 +13248,7 @@ static int __wlan_hdd_cfg80211_change_iface(struct wiphy *wiphy,
struct hdd_context *hdd_ctx;
bool iff_up = ndev->flags & IFF_UP;
enum QDF_OPMODE new_mode;
+ bool ap_random_bssid_enabled;
QDF_STATUS status;
int errno;
@@ -13333,8 +13334,14 @@ static int __wlan_hdd_cfg80211_change_iface(struct wiphy *wiphy,
memset(&adapter->session, 0, sizeof(adapter->session));
adapter->device_mode = new_mode;
+ status = ucfg_mlme_get_ap_random_bssid_enable(
+ hdd_ctx->psoc,
+ &ap_random_bssid_enabled);
+ if (QDF_IS_STATUS_ERROR(status))
+ return qdf_status_to_os_return(status);
+
if (adapter->device_mode == QDF_SAP_MODE &&
- hdd_ctx->config->apRandomBssidEnabled) {
+ ap_random_bssid_enabled) {
/* To meet Android requirements create
* a randomized MAC address of the
* form 02:1A:11:Fx:xx:xx
@@ -17266,6 +17273,7 @@ static int __wlan_hdd_cfg80211_disconnect(struct wiphy *wiphy,
WLAN_HDD_GET_STATION_CTX_PTR(adapter);
struct hdd_context *hdd_ctx = WLAN_HDD_GET_CTX(adapter);
struct wlan_objmgr_vdev *vdev;
+ bool enable_deauth_to_disassoc_map;
hdd_enter();
@@ -17322,9 +17330,14 @@ static int __wlan_hdd_cfg80211_disconnect(struct wiphy *wiphy,
break;
case WLAN_REASON_DEAUTH_LEAVING:
+ status = ucfg_mlme_get_enable_deauth_to_disassoc_map(
+ hdd_ctx->psoc,
+ &enable_deauth_to_disassoc_map);
+ if (QDF_IS_STATUS_ERROR(status))
+ return -EINVAL;
+
reasonCode =
- hdd_ctx->config->
- gEnableDeauthToDisassocMap ?
+ enable_deauth_to_disassoc_map ?
eCSR_DISCONNECT_REASON_STA_HAS_LEFT :
eCSR_DISCONNECT_REASON_DEAUTH;
qdf_dp_trace_dump_all(
diff --git a/core/hdd/src/wlan_hdd_main.c b/core/hdd/src/wlan_hdd_main.c
index 594bcca9c0..89afee44b5 100644
--- a/core/hdd/src/wlan_hdd_main.c
+++ b/core/hdd/src/wlan_hdd_main.c
@@ -9280,6 +9280,33 @@ static void hdd_init_packet_log(struct hdd_config *config,
}
#endif
+#ifdef FEATURE_RUNTIME_PM
+static void hdd_init_runtime_pm(struct hdd_config *config,
+ struct wlan_objmgr_psoc *psoc)
+{
+ config->runtime_pm = cfg_get(psoc, CFG_ENABLE_RUNTIME_PM);
+}
+#else
+static void hdd_init_runtime_pm(struct hdd_config *config,
+ struct wlan_objmgr_psoc *psoc)
+
+{
+}
+#endif
+
+#ifdef FEATURE_WLAN_DYNAMIC_CVM
+static void hdd_init_vc_mode_cfg_bitmap(struct hdd_config *config,
+ struct wlan_objmgr_psoc *psoc)
+{
+ config->vc_mode_cfg_bitmap = cfg_get(psoc, CFG_VC_MODE_BITMAP);
+}
+#else
+static void hdd_init_vc_mode_cfg_bitmap(struct hdd_config *config,
+ struct wlan_objmgr_psoc *psoc)
+{
+}
+#endif
+
/**
* hdd_cfg_params_init() - Initialize hdd params in hdd_config strucuture
* @hdd_ctx - Pointer to HDD context
@@ -9326,7 +9353,11 @@ static void hdd_cfg_params_init(struct hdd_context *hdd_ctx)
qdf_str_lcopy(config->dbs_scan_selection,
cfg_get(psoc, CFG_DBS_SCAN_SELECTION),
CFG_DBS_SCAN_PARAM_LENGTH);
+ config->enableMCC = cfg_get(psoc, CFG_ENABLE_MCC_ENABLED);
+ config->inform_bss_rssi_raw = cfg_get(psoc, CFG_INFORM_BSS_RSSI_RAW);
+ hdd_init_vc_mode_cfg_bitmap(config, psoc);
+ hdd_init_runtime_pm(config, psoc);
hdd_init_wlan_auto_shutdown(config, psoc);
hdd_init_wlan_logging_params(config, psoc);
hdd_init_packet_log(config, psoc);
diff --git a/core/hdd/src/wlan_hdd_power.c b/core/hdd/src/wlan_hdd_power.c
index e28861c885..ca4a8361d8 100644
--- a/core/hdd/src/wlan_hdd_power.c
+++ b/core/hdd/src/wlan_hdd_power.c
@@ -753,6 +753,8 @@ static void __hdd_ipv4_notifier_work_queue(struct work_struct *work)
int errno;
struct csr_roam_profile *roam_profile;
struct in_ifaddr *ifa;
+ enum station_keepalive_method val;
+ QDF_STATUS status;
hdd_enter();
@@ -768,7 +770,11 @@ static void __hdd_ipv4_notifier_work_queue(struct work_struct *work)
hdd_enable_arp_offload(adapter, pmo_ipv4_change_notify);
- if (hdd_ctx->config->sta_keepalive_method == HDD_STA_KEEPALIVE_GRAT_ARP)
+ status = ucfg_mlme_get_sta_keepalive_method(hdd_ctx->psoc, &val);
+ if (QDF_IS_STATUS_ERROR(status))
+ goto exit;
+
+ if (val == MLME_STA_KEEPALIVE_GRAT_ARP)
hdd_set_grat_arp_keepalive(adapter);
hdd_debug("FILS Roaming support: %d",
@@ -1730,7 +1736,8 @@ static int __wlan_hdd_cfg80211_suspend_wlan(struct wiphy *wiphy,
wlan_hdd_inc_suspend_stats(hdd_ctx,
SUSPEND_FAIL_RADAR);
return -EAGAIN;
- } else if (!hdd_ctx->config->enable_sap_suspend) {
+ } else if (!ucfg_pmo_get_enable_sap_suspend(
+ hdd_ctx->psoc)) {
/* return -EOPNOTSUPP if SAP does not support
* suspend
*/
@@ -1738,7 +1745,8 @@ static int __wlan_hdd_cfg80211_suspend_wlan(struct wiphy *wiphy,
return -EOPNOTSUPP;
}
} else if (QDF_P2P_GO_MODE == adapter->device_mode) {
- if (!hdd_ctx->config->enable_sap_suspend) {
+ if (!!ucfg_pmo_get_enable_sap_suspend(
+ hdd_ctx->psoc)) {
/* return -EOPNOTSUPP if GO does not support
* suspend
*/