浏览代码

qcacld-3.0: Apply PMO configures

Since refined PMO configures based on converged cfg component, apply
PMO configurations, remove related legacy codes.

Change-Id: I2cdf18c1000d8cc923c80c00bf530b2b0c60563e
CRs-Fixed: 2322185
Wu Gao 6 年之前
父节点
当前提交
66454f118f

+ 3 - 0
components/cfg/cfg_all.h

@@ -39,6 +39,8 @@
 #define CFG_NAN_ALL
 #endif
 
+#include "wlan_pmo_cfg.h"
+
 /* Maintain Alphabetic order here while adding components */
 #define CFG_ALL \
 	CFG_CONVERGED_ALL \
@@ -46,4 +48,5 @@
 	CFG_MLME_ALL \
 	CFG_NAN_ALL \
 	CFG_P2P_ALL \
+	CFG_PMO_ALL \
 	CFG_TDLS_ALL

+ 0 - 16
core/cds/inc/cds_config.h

@@ -60,15 +60,9 @@ enum active_apf_mode {
  * struct cds_config_info - Place Holder for cds configuration
  * @max_station: Max station supported
  * @max_bssid: Max Bssid Supported
- * @powersave_offload_enabled: Indicate if powersave offload is enabled
  * @sta_maxlimod_dtim: station max listen interval
- * @sta_mod_dtim: station mode DTIM
- * @sta_dynamic_dtim: station dynamic DTIM
  * @driver_type: Enumeration of Driver Type whether FTM or Mission mode
- * @wow_enable: Indicate whether wow is enabled or not
  * currently rest of bits are not used
- * @ssdp: Indicate ssdp is enabled or not
- * @enable_mc_list : To Check if Multicast list filtering is enabled in FW
  * @dfs_phyerr_filter_offload: DFS Phyerror Filtering offload status from ini
  * Indicates whether support is enabled or not
  * @ap_disable_intrabss_fwd: pass intra-bss-fwd info to txrx module
@@ -94,7 +88,6 @@ enum active_apf_mode {
  * @num_dp_rx_threads: number of dp rx threads to be configured
  * @enable_dp_rx_threads: enable dp rx threads
  * @is_lpass_enabled: Indicate whether LPASS is enabled or not
- * @bool apf_packet_filter_enable; Indicate apf filter enabled or not
  * @tx_chain_mask_cck: Tx chain mask enabled or not
  * @self_gen_frm_pwr: Self gen from power
  * @sub_20_channel_width: Sub 20 MHz ch width, ini intersected with fw cap
@@ -104,7 +97,6 @@ enum active_apf_mode {
  *	mode for uc packets
  * @active_mc_bc_apf_mode: Setting that determines how APF is applied in
  *	active mode for MC/BC packets
- * @auto_power_save_fail_mode: auto detect power save failure mode
  * @ito_repeat_count: Indicates ito repeated count
  * @force_target_assert_enabled: Indicate whether target assert enabled or not
  * @bandcapability: Configured band by user
@@ -117,14 +109,8 @@ enum active_apf_mode {
 struct cds_config_info {
 	uint16_t max_station;
 	uint16_t max_bssid;
-	uint8_t powersave_offload_enabled;
 	uint8_t sta_maxlimod_dtim;
-	uint8_t sta_mod_dtim;
-	uint8_t sta_dynamic_dtim;
 	enum qdf_driver_type driver_type;
-	uint8_t wow_enable;
-	bool ssdp;
-	bool enable_mc_list;
 	uint8_t dfs_phyerr_filter_offload;
 	uint8_t ap_disable_intrabss_fwd;
 	uint8_t ap_maxoffload_peers;
@@ -153,7 +139,6 @@ struct cds_config_info {
 #ifdef WLAN_FEATURE_LPSS
 	bool is_lpass_enabled;
 #endif
-	bool apf_packet_filter_enable;
 	uint16_t self_gen_frm_pwr;
 	enum cfg_sub_20_channel_width sub_20_channel_width;
 	bool flow_steering_enabled;
@@ -163,7 +148,6 @@ struct cds_config_info {
 	struct ol_tx_sched_wrr_ac_specs_t ac_specs[TX_WMM_AC_NUM];
 	enum active_apf_mode active_uc_apf_mode;
 	enum active_apf_mode active_mc_bc_apf_mode;
-	enum pmo_auto_pwr_detect_failure_mode auto_power_save_fail_mode;
 	uint8_t ito_repeat_count;
 	bool force_target_assert_enabled;
 	uint8_t bandcapability;

+ 0 - 492
core/hdd/inc/wlan_hdd_cfg.h

@@ -3753,21 +3753,6 @@ enum station_keepalive_method {
 #define CFG_AP_DATA_AVAIL_POLL_PERIOD_MAX       (WNI_CFG_AP_DATA_AVAIL_POLL_PERIOD_STAMAX)
 #define CFG_AP_DATA_AVAIL_POLL_PERIOD_DEFAULT   (WNI_CFG_AP_DATA_AVAIL_POLL_PERIOD_STADEF)
 
-#define CFG_ENABLE_HOST_ARPOFFLOAD_NAME         "hostArpOffload"
-#define CFG_ENABLE_HOST_ARPOFFLOAD_MIN          (0)
-#define CFG_ENABLE_HOST_ARPOFFLOAD_MAX          (1)
-#define CFG_ENABLE_HOST_ARPOFFLOAD_DEFAULT      (1)
-
-#define CFG_ENABLE_HOST_SSDP_NAME              "ssdp"
-#define CFG_ENABLE_HOST_SSDP_MIN               (0)
-#define CFG_ENABLE_HOST_SSDP_MAX               (1)
-#define CFG_ENABLE_HOST_SSDP_DEFAULT           (1)
-
-#define CFG_ENABLE_HOST_NSOFFLOAD_NAME         "hostNSOffload"
-#define CFG_ENABLE_HOST_NSOFFLOAD_MIN          (0)
-#define CFG_ENABLE_HOST_NSOFFLOAD_MAX          (1)
-#define CFG_ENABLE_HOST_NSOFFLOAD_DEFAULT      (1)
-
 /*
  * <ini>
  * gHwFilterMode - configure hardware filter for DTIM mode
@@ -4675,18 +4660,6 @@ enum hdd_link_speed_rpt_type {
 #define HDD_MULTICAST_FILTER_LIST                              0x04
 #define HDD_MULTICAST_FILTER_LIST_CLEAR                        0x05
 
-/*
- * Enable Dynamic DTIM
- * Options
- * 0 -Disable DynamicDTIM
- * 1 to 5 - SLM will switch to DTIM specified here when host suspends and
- *          switch DTIM1 when host resumes
- */
-#define CFG_ENABLE_DYNAMIC_DTIM_NAME            "gEnableDynamicDTIM"
-#define CFG_ENABLE_DYNAMIC_DTIM_MIN        (0)
-#define CFG_ENABLE_DYNAMIC_DTIM_MAX        (9)
-#define CFG_ENABLE_DYNAMIC_DTIM_DEFAULT    (0)
-
 /*
  * <ini>
  * gConfigVCmodeBitmap - Bitmap for operating voltage corner mode
@@ -5011,15 +4984,6 @@ enum hdd_link_speed_rpt_type {
 #define CFG_THROTTLE_DUTY_CYCLE_LEVEL3_MAX     (100)
 #define CFG_THROTTLE_DUTY_CYCLE_LEVEL3_DEFAULT (94)
 
-/*
- * Enable/Disable Modulated DTIM feature
- * Default: Disable
- */
-#define CFG_ENABLE_MODULATED_DTIM_NAME       "gEnableModulatedDTIM"
-#define CFG_ENABLE_MODULATED_DTIM_MIN        (0)
-#define CFG_ENABLE_MODULATED_DTIM_MAX        (5)
-#define CFG_ENABLE_MODULATED_DTIM_DEFAULT    (0)
-
 /*
  * <ini>
  * gMCAddrListEnable - Enable/Disable Multicast MAC Address List feature
@@ -5823,25 +5787,6 @@ enum hdd_link_speed_rpt_type {
 #define CFG_ENABLE_MEMORY_DEBUG_DEFAULT          (1)
 #endif
 
-/*
- * <ini>
- * g_auto_detect_power_failure_mode - auto detect power save failure mode
- * @Min: PMO_FW_TO_CRASH_ON_PWR_FAILURE
- * @Max: PMO_AUTO_PWR_FAILURE_DETECT_DISABLE
- * @Default: PMO_FW_TO_CRASH_ON_PWR_FAILURE
- *
- * This ini specifies the behavior of FW in case of
- * CHIP_POWER_SAVE_FAIL_DETECTED event
- *
- * Usage: External
- *
- * </ini>
- */
-#define CFG_AUTO_DETECT_POWER_FAIL_MODE_NAME    "g_auto_detect_power_failure_mode"
-#define CFG_AUTO_DETECT_POWER_FAIL_MODE_DEFAULT (PMO_FW_TO_CRASH_ON_PWR_FAILURE)
-#define CFG_AUTO_DETECT_POWER_FAIL_MODE_MIN     (PMO_FW_TO_CRASH_ON_PWR_FAILURE)
-#define CFG_AUTO_DETECT_POWER_FAIL_MODE_MAX \
-					(PMO_AUTO_PWR_FAILURE_DETECT_DISABLE)
 /*
  * <ini>
  * gMaxAmsduNum - Max number of MSDU's in aggregate
@@ -6661,38 +6606,6 @@ enum hdd_link_speed_rpt_type {
 #define CFG_MAX_MSDUS_PER_RXIND_MIN           (4)
 #define CFG_MAX_MSDUS_PER_RXIND_MAX           (32)
 #define CFG_MAX_MSDUS_PER_RXIND_DEFAULT       (32)
-/*
- * In static display use case when APPS is in stand alone power save mode enable
- * active offload mode which helps FW to filter out MC/BC data packets to avoid
- * APPS wake up and save more power.
- *
- * By default enable active mode offload as it helps to save more power in
- * static display usecase(APPS stand alone power collapse).
- *
- * If active mode offload(gActiveModeOffload=1) is enabled then all applicable
- * data offload/filtering is enabled immediately in FW once config is available
- * in WLAN driver and FW caches this configuration across suspend/resume
- *
- * If active mode offload is disabled(gActiveModeOffload=0) then all applicable
- * data offload/filtering is enabled during cfg80211 suspend and disabled
- * during cfg80211 resume
- *
- * Active mode offload feature is bydefault enabled for all targets
- */
-
-#define CFG_ACTIVE_MODE_OFFLOAD            "gActiveModeOffload"
-#define CFG_ACTIVE_MODE_OFFLOAD_MIN        (0)
-#define CFG_ACTIVE_MODE_OFFLOAD_MAX        (1)
-#define CFG_ACTIVE_MODE_OFFLOAD_DEFAULT    (1)
-
-/*
- * 0: Disable APF packet filter
- * 1: Enable APF packet filter
- */
-#define CFG_APF_PACKET_FILTER_OFFLOAD           "gBpfFilterEnable"
-#define CFG_APF_PACKET_FILTER_OFFLOAD_MIN       (0)
-#define CFG_APF_PACKET_FILTER_OFFLOAD_MAX       (1)
-#define CFG_APF_PACKET_FILTER_OFFLOAD_DEFAULT   (1)
 
 /*
  * <ini>
@@ -7766,47 +7679,6 @@ enum hdd_link_speed_rpt_type {
  */
 #define CFG_RPS_RX_QUEUE_CPU_MAP_LIST_LEN 30
 
-#ifdef WLAN_FEATURE_WOW_PULSE
-/*
- * Enable/Disable  WOW PULSE feature
- * Set the wakeup pulse which FW use to wake up HOST
- * Default : Disable
- */
-#define CFG_WOW_PULSE_SUPPORT_NAME     "gwow_pulse_support"
-#define CFG_WOW_PULSE_SUPPORT_MIN      (0)
-#define CFG_WOW_PULSE_SUPPORT_MAX      (1)
-#define CFG_WOW_PULSE_SUPPORT_DEFAULT  (CFG_WOW_PULSE_SUPPORT_MIN)
-
-/*
- * GPIO PIN for Pulse
- * Which PIN to send the Pulse
- */
-#define CFG_WOW_PULSE_PIN_NAME         "gwow_pulse_pin"
-#define CFG_WOW_PULSE_PIN_MIN          (CFG_SET_TSF_GPIO_PIN_MIN)
-#define CFG_WOW_PULSE_PIN_MAX          (CFG_SET_TSF_GPIO_PIN_MAX)
-#define CFG_WOW_PULSE_PIN_DEFAULT      (35)
-
-/*
- * Pulse interval low
- * The interval of low level in the pulse
- * The value which defined by customer should between 160 and 480
- */
-#define CFG_WOW_PULSE_INTERVAL_LOW_NAME     "gwow_pulse_interval_low"
-#define CFG_WOW_PULSE_INTERVAL_LOW_MIN      (160)
-#define CFG_WOW_PULSE_INTERVAL_LOW_MAX      (480)
-#define CFG_WOW_PULSE_INTERVAL_LOW_DEFAULT  (180)
-
-/*
- * Pulse interval high
- * The interval of high level in the pulse
- * The value which defined by customer should between 20 and 40
- */
-#define CFG_WOW_PULSE_INTERVAL_HIGH_NAME    "gwow_pulse_interval_high"
-#define CFG_WOW_PULSE_INTERVAL_HIGH_MIN     (20)
-#define CFG_WOW_PULSE_INTERVAL_HIGH_MAX     (40)
-#define CFG_WOW_PULSE_INTERVAL_HIGH_DEFAULT (20)
-#endif
-
 /*
  * Support to start sap in indoor channel
  * Customer can config this item to enable/disable sap in indoor channel
@@ -8369,329 +8241,6 @@ enum hdd_wext_control {
 #define CFG_ENABLE_RUNTIME_PM_MIN              (0)
 #define CFG_ENABLE_RUNTIME_PM_MAX              (1)
 #define CFG_ENABLE_RUNTIME_PM_DEFAULT          (0)
-
-/*
- * <ini>
- * gRuntimePMDelay - Set runtime pm's inactivity timer
- * @Min: 0
- * @Max: 1
- * @Default: 0
- *
- * This ini is used to set runtime pm's inactivity timer value.
- * the wlan driver will wait for this number of milliseconds of
- * inactivity before performing a runtime suspend.
- *
- * Related: gRuntimePM
- *
- * Supported Feature: Power Save
- *
- * Usage: External
- *
- * </ini>
- */
-#define CFG_RUNTIME_PM_DELAY_NAME               "gRuntimePMDelay"
-#define CFG_RUNTIME_PM_DELAY_MIN                (100)
-#define CFG_RUNTIME_PM_DELAY_MAX                (10000)
-#define CFG_RUNTIME_PM_DELAY_DEFAULT            (500)
-#endif
-
-/*
- * <ini>
- * gEnablePowerSaveOffload - Enable Power Save Offload
- * @Min: 0
- * @Max: 5
- * @Default: 0
- *
- * This ini is used to set Power Save Offload configuration:
- * Current values of gEnablePowerSaveOffload:
- * 0 -> Power save offload is disabled
- * 1 -> Legacy Power save enabled + Deep sleep Disabled
- * 2 -> QPower enabled + Deep sleep Disabled
- * 3 -> Legacy Power save enabled + Deep sleep Enabled
- * 4 -> QPower enabled + Deep sleep Enabled
- * 5 -> Duty cycling QPower enabled
- *
- * Related: None
- *
- * Supported Feature: Power Save
- *
- * Usage: External
- *
- * </ini>
- */
-#define CFG_POWERSAVE_OFFLOAD_NAME                "gEnablePowerSaveOffload"
-#define CFG_POWERSAVE_OFFLOAD_MIN                 (0)
-#define CFG_POWERSAVE_OFFLOAD_MAX                 (PS_DUTY_CYCLING_QPOWER)
-#define CFG_POWERSAVE_OFFLOAD_DEFAULT             (CFG_POWERSAVE_OFFLOAD_MIN)
-
-/*
- * <ini>
- * gEnableWoW - Enable/Disable WoW
- * @Min: 0
- * @Max: 3
- * @Default: 3
- *
- * This ini is used to enable/disable WoW. Configurations are as follows:
- * 0 - Disable both magic pattern match and pattern byte match.
- * 1 - Enable magic pattern match on all interfaces.
- * 2 - Enable pattern byte match on all interfaces.
- * 3 - Enable both magic patter and pattern byte match on all interfaces.
- *
- * Related: None
- *
- * Supported Feature: Power Save
- *
- * Usage: External
- *
- * </ini>
- */
-#define CFG_WOW_STATUS_NAME                    "gEnableWoW"
-#define CFG_WOW_ENABLE_MIN                     (0)
-#define CFG_WOW_ENABLE_MAX                     (3)
-#define CFG_WOW_STATUS_DEFAULT                 (3)
-
-#ifdef WLAN_FEATURE_EXTWOW_SUPPORT
-/*
- * <ini>
- * gExtWoWgotoSuspend - Enable/Disable Extended WoW
- * @Min: 0
- * @Max: 1
- * @Default: 1
- *
- * This ini is used to enable/disable Extended WoW.
- *
- * Related: None
- *
- * Supported Feature: Power Save
- *
- * Usage: External
- *
- * </ini>
- */
-#define CFG_EXTWOW_GO_TO_SUSPEND               "gExtWoWgotoSuspend"
-#define CFG_EXTWOW_GO_TO_SUSPEND_MIN           (0)
-#define CFG_EXTWOW_GO_TO_SUSPEND_MAX           (1)
-#define CFG_EXTWOW_GO_TO_SUSPEND_DEFAULT       (1)
-
-/*
- * <ini>
- * gExtWowApp1WakeupPinNumber - Set wakeup1 PIN number
- * @Min: 0
- * @Max: 255
- * @Default: 12
- *
- * This ini is used to set EXT WOW APP1 wakeup PIN number
- *
- * Related: None
- *
- * Supported Feature: Power Save
- *
- * Usage: External
- *
- * </ini>
- */
-#define CFG_EXTWOW_APP1_WAKE_PIN_NUMBER            "gExtWowApp1WakeupPinNumber"
-#define CFG_EXTWOW_APP1_WAKE_PIN_NUMBER_MIN        (0)
-#define CFG_EXTWOW_APP1_WAKE_PIN_NUMBER_MAX        (255)
-#define CFG_EXTWOW_APP1_WAKE_PIN_NUMBER_DEFAULT    (12)
-
-/*
- * <ini>
- * gExtWowApp2WakeupPinNumber - Set wakeup2 PIN number
- * @Min: 0
- * @Max: 255
- * @Default: 16
- *
- * This ini is used to set EXT WOW APP2 wakeup PIN number
- *
- * Related: None
- *
- * Supported Feature: Power Save
- *
- * Usage: External
- *
- * </ini>
- */
-#define CFG_EXTWOW_APP2_WAKE_PIN_NUMBER            "gExtWowApp2WakeupPinNumber"
-#define CFG_EXTWOW_APP2_WAKE_PIN_NUMBER_MIN        (0)
-#define CFG_EXTWOW_APP2_WAKE_PIN_NUMBER_MAX        (255)
-#define CFG_EXTWOW_APP2_WAKE_PIN_NUMBER_DEFAULT    (16)
-
-/*
- * <ini>
- * gExtWoWApp2KAInitPingInterval - Set Keep Alive Init Ping Interval
- * @Min: 0
- * @Max: 0xffffffff
- * @Default: 240
- *
- * This ini is used to set Keep Alive Init Ping Interval for EXT WOW
- *
- * Related: None
- *
- * Supported Feature: Power Save
- *
- * Usage: External
- *
- * </ini>
- */
-#define CFG_EXTWOW_KA_INIT_PING_INTERVAL           "gExtWoWApp2KAInitPingInterval"
-#define CFG_EXTWOW_KA_INIT_PING_INTERVAL_MIN       (0)
-#define CFG_EXTWOW_KA_INIT_PING_INTERVAL_MAX       (0xffffffff)
-#define CFG_EXTWOW_KA_INIT_PING_INTERVAL_DEFAULT   (240)
-
-/*
- * <ini>
- * gExtWoWApp2KAMinPingInterval - Set Keep Alive Minimum Ping Interval
- * @Min: 0
- * @Max: 0xffffffff
- * @Default: 240
- *
- * This ini is used to set Keep Alive Minimum Ping Interval for EXT WOW
- *
- * Related: None
- *
- * Supported Feature: Power Save
- *
- * Usage: External
- *
- * </ini>
- */
-#define CFG_EXTWOW_KA_MIN_PING_INTERVAL            "gExtWoWApp2KAMinPingInterval"
-#define CFG_EXTWOW_KA_MIN_PING_INTERVAL_MIN        (0)
-#define CFG_EXTWOW_KA_MIN_PING_INTERVAL_MAX        (0xffffffff)
-#define CFG_EXTWOW_KA_MIN_PING_INTERVAL_DEFAULT    (240)
-
-/*
- * <ini>
- * gExtWoWApp2KAMaxPingInterval - Set Keep Alive Maximum Ping Interval
- * @Min: 0
- * @Max: 0xffffffff
- * @Default: 1280
- *
- * This ini is used to set Keep Alive Maximum Ping Interval for EXT WOW
- *
- * Related: None
- *
- * Supported Feature: Power Save
- *
- * Usage: External
- *
- * </ini>
- */
-#define CFG_EXTWOW_KA_MAX_PING_INTERVAL            "gExtWoWApp2KAMaxPingInterval"
-#define CFG_EXTWOW_KA_MAX_PING_INTERVAL_MIN        (0)
-#define CFG_EXTWOW_KA_MAX_PING_INTERVAL_MAX        (0xffffffff)
-#define CFG_EXTWOW_KA_MAX_PING_INTERVAL_DEFAULT    (1280)
-
-/*
- * <ini>
- * gExtWoWApp2KAIncPingInterval - Set Keep Alive increment of Ping Interval
- * @Min: 0
- * @Max: 0xffffffff
- * @Default: 4
- *
- * This ini is used to set Keep Alive increment of Ping Interval for EXT WOW
- *
- * Related: None
- *
- * Supported Feature: Power Save
- *
- * Usage: External
- *
- * </ini>
- */
-#define CFG_EXTWOW_KA_INC_PING_INTERVAL            "gExtWoWApp2KAIncPingInterval"
-#define CFG_EXTWOW_KA_INC_PING_INTERVAL_MIN        (0)
-#define CFG_EXTWOW_KA_INC_PING_INTERVAL_MAX        (0xffffffff)
-#define CFG_EXTWOW_KA_INC_PING_INTERVAL_DEFAULT    (4)
-
-/*
- * <ini>
- * gExtWoWApp2KAIncPingInterval - Set TCP source port
- * @Min: 0
- * @Max: 65535
- * @Default: 5000
- *
- * This ini is used to set TCP source port when EXT WOW is enabled
- *
- * Related: None
- *
- * Supported Feature: Power Save
- *
- * Usage: External
- *
- * </ini>
- */
-#define CFG_EXTWOW_TCP_SRC_PORT                    "gExtWoWApp2TcpSrcPort"
-#define CFG_EXTWOW_TCP_SRC_PORT_MIN                (0)
-#define CFG_EXTWOW_TCP_SRC_PORT_MAX                (65535)
-#define CFG_EXTWOW_TCP_SRC_PORT_DEFAULT            (5000)
-
-/*
- * <ini>
- * gExtWoWApp2TcpDstPort - Set TCP Destination port
- * @Min: 0
- * @Max: 65535
- * @Default: 5001
- *
- * This ini is used to set TCP Destination port when EXT WOW is enabled
- *
- * Related: None
- *
- * Supported Feature: Power Save
- *
- * Usage: External
- *
- * </ini>
- */
-#define CFG_EXTWOW_TCP_DST_PORT                    "gExtWoWApp2TcpDstPort"
-#define CFG_EXTWOW_TCP_DST_PORT_MIN                (0)
-#define CFG_EXTWOW_TCP_DST_PORT_MAX                (65535)
-#define CFG_EXTWOW_TCP_DST_PORT_DEFAULT            (5001)
-
-/*
- * <ini>
- * gExtWoWApp2TcpTxTimeout - Set TCP tx timeout
- * @Min: 0
- * @Max: 0xffffffff
- * @Default: 200
- *
- * This ini is used to set TCP Tx timeout when EXT WOW is enabled
- *
- * Related: None
- *
- * Supported Feature: Power Save
- *
- * Usage: External
- *
- * </ini>
- */
-#define CFG_EXTWOW_TCP_TX_TIMEOUT                  "gExtWoWApp2TcpTxTimeout"
-#define CFG_EXTWOW_TCP_TX_TIMEOUT_MIN              (0)
-#define CFG_EXTWOW_TCP_TX_TIMEOUT_MAX              (0xffffffff)
-#define CFG_EXTWOW_TCP_TX_TIMEOUT_DEFAULT          (200)
-
-/*
- * <ini>
- * gExtWoWApp2TcpRxTimeout - Set TCP rx timeout
- * @Min: 0
- * @Max: 0xffffffff
- * @Default: 200
- *
- * This ini is used to set TCP Rx timeout when EXT WOW is enabled
- *
- * Related: None
- *
- * Supported Feature: Power Save
- *
- * Usage: External
- *
- * </ini>
- */
-#define CFG_EXTWOW_TCP_RX_TIMEOUT                  "gExtWoWApp2TcpRxTimeout"
-#define CFG_EXTWOW_TCP_RX_TIMEOUT_MIN              (0)
-#define CFG_EXTWOW_TCP_RX_TIMEOUT_MAX              (0xffffffff)
-#define CFG_EXTWOW_TCP_RX_TIMEOUT_DEFAULT          (200)
 #endif
 
 /**
@@ -10493,8 +10042,6 @@ struct hdd_config {
 	/* In units of milliseconds */
 	uint32_t       idle_time_conc;
 
-	uint8_t nMaxPsPoll;
-
 	uint8_t nRssiFilterPeriod;
 	uint8_t fMaxLIModulatedDTIM;
 
@@ -10559,16 +10106,8 @@ struct hdd_config {
 
 	char enableConcurrentSTA[CFG_CONCURRENT_IFACE_MAX_LEN];
 
-	/* Control for Replay counetr. value 1 means
-	 * single replay counter for all TID
-	 */
-	bool fhostArpOffload;
-	enum pmo_hw_filter_mode hw_filter_mode_bitmap;
-	bool ssdp;
-
 #ifdef FEATURE_RUNTIME_PM
 	bool runtime_pm;
-	uint32_t runtime_pm_delay;
 #endif
 
 #ifdef FEATURE_WLAN_RA_FILTERING
@@ -10578,7 +10117,6 @@ struct hdd_config {
 #ifdef FEATURE_WLAN_SCAN_PNO
 	bool PnoOffload;
 #endif
-	bool fhostNSOffload;
 	bool burstSizeDefinition;
 	uint8_t tsInfoAckPolicy;
 
@@ -10617,7 +10155,6 @@ struct hdd_config {
 	uint8_t enableBypass11d;
 	uint8_t enableDFSChnlScan;
 	uint8_t enable_dfs_pno_chnl_scan;
-	uint8_t enableDynamicDTIM;
 	uint8_t ShortGI40MhzEnable;
 	enum hdd_link_speed_rpt_type reportMaxLinkSpeed;
 	int32_t linkSpeedRssiHigh;
@@ -10683,8 +10220,6 @@ struct hdd_config {
 	uint8_t enableAmpduPs;
 	uint8_t enableHtSmps;
 	uint8_t htSmps;
-	uint8_t enableModulatedDTIM;
-	uint32_t fEnableMCAddrList;
 	bool enableFirstScan2GOnly;
 	bool enableRxSTBC;
 	bool enableTxSTBC;
@@ -10721,7 +10256,6 @@ struct hdd_config {
 	uint32_t ibssPs1RxChainInAtimEnable;
 
 	bool enable_ip_tcp_udp_checksum_offload;
-	uint8_t enablePowersaveOffload;
 	bool enablefwprint;
 	uint8_t enable_fw_log;
 	uint8_t fVhtAmpduLenExponent;
@@ -10738,7 +10272,6 @@ struct hdd_config {
 #ifdef FEATURE_WLAN_AUTO_SHUTDOWN
 	uint32_t WlanAutoShutdown;
 #endif
-	uint8_t wowEnable;
 	uint8_t disableDFSChSwitch;
 	uint8_t enableDFSMasterCap;
 	uint32_t TxPower2g;
@@ -10831,19 +10364,6 @@ struct hdd_config {
 
 	bool enable_sap_suspend;
 
-#ifdef WLAN_FEATURE_EXTWOW_SUPPORT
-	uint8_t extWowGotoSuspend;
-	uint8_t extWowApp1WakeupPinNumber;
-	uint8_t extWowApp2WakeupPinNumber;
-	uint32_t extWowApp2KAInitPingInterval;
-	uint32_t extWowApp2KAMinPingInterval;
-	uint32_t extWowApp2KAMaxPingInterval;
-	uint32_t extWowApp2KAIncPingInterval;
-	uint16_t extWowApp2TcpSrcPort;
-	uint16_t extWowApp2TcpDstPort;
-	uint32_t extWowApp2TcpTxTimeout;
-	uint32_t extWowApp2TcpRxTimeout;
-#endif
 	bool gEnableDeauthToDisassocMap;
 #ifdef DHCP_SERVER_OFFLOAD
 	bool enableDHCPServerOffload;
@@ -10872,8 +10392,6 @@ struct hdd_config {
 	bool gro_enable;
 	bool flow_steering_enable;
 	uint8_t max_msdus_per_rxinorderind;
-	bool active_mode_offload;
-	bool apf_packet_filter_enable;
 	/* parameter for defer timer for enabling TDLS on p2p listen */
 	uint32_t fine_time_meas_cap;
 	uint8_t max_scan_count;
@@ -10981,12 +10499,6 @@ struct hdd_config {
 	uint32_t rx_wakelock_timeout;
 	uint32_t max_sched_scan_plan_interval;
 	uint32_t max_sched_scan_plan_iterations;
-#ifdef WLAN_FEATURE_WOW_PULSE
-	bool wow_pulse_support;
-	uint8_t wow_pulse_pin;
-	uint16_t wow_pulse_interval_high;
-	uint16_t wow_pulse_interval_low;
-#endif
 	enum hdd_wext_control private_wext_control;
 	bool sap_internal_restart;
 	enum restart_beaconing_on_ch_avoid_rule
@@ -11024,7 +10536,6 @@ struct hdd_config {
 	bool is_force_1x1;
 	uint8_t enable_rts_sifsbursting;
 	uint8_t max_mpdus_inampdu;
-	enum pmo_auto_pwr_detect_failure_mode auto_pwr_save_fail_mode;
 	uint8_t ito_repeat_count;
 	bool enable_11d_in_world_mode;
 	/* 5G preference parameters for boosting RSSI */
@@ -11049,9 +10560,6 @@ struct hdd_config {
 	uint32_t wlm_latency_flags_moderate;
 	uint32_t wlm_latency_flags_low;
 	uint32_t wlm_latency_flags_ultralow;
-#ifdef WLAN_FEATURE_PACKET_FILTERING
-	uint8_t packet_filters_bitmap;
-#endif
 	uint8_t enable_phy_reg_retention;
 	uint8_t dfs_beacon_tx_enhanced;
 	uint32_t btm_offload_config;

+ 0 - 1
core/hdd/inc/wlan_hdd_main.h

@@ -1975,7 +1975,6 @@ struct hdd_context {
 	enum twt_status twt_state;
 #endif
 #ifdef FEATURE_WLAN_APF
-	bool apf_supported;
 	uint32_t apf_version;
 	bool apf_enabled_v2;
 #endif

+ 1 - 1
core/hdd/src/wlan_hdd_apf.c

@@ -637,7 +637,7 @@ __wlan_hdd_cfg80211_apf_offload(struct wiphy *wiphy,
 		return -EINVAL;
 	}
 
-	if (!hdd_ctx->apf_supported) {
+	if (!ucfg_pmo_is_apf_enabled(hdd_ctx->psoc)) {
 		hdd_err("APF is not supported or disabled through INI");
 		return -ENOTSUPP;
 	}

+ 2 - 232
core/hdd/src/wlan_hdd_cfg.c

@@ -726,13 +726,6 @@ struct reg_table_entry g_registry_table[] = {
 		      CFG_IDLE_TIME_MIN,
 		      CFG_IDLE_TIME_MAX),
 
-	REG_VARIABLE(CFG_MAX_PS_POLL_NAME, WLAN_PARAM_Integer,
-		     struct hdd_config, nMaxPsPoll,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_MAX_PS_POLL_DEFAULT,
-		     CFG_MAX_PS_POLL_MIN,
-		     CFG_MAX_PS_POLL_MAX),
-
 	REG_VARIABLE(CFG_MAX_TX_POWER_NAME, WLAN_PARAM_Integer,
 		     struct hdd_config, nTxPowerCap,
 		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
@@ -1348,20 +1341,6 @@ struct reg_table_entry g_registry_table[] = {
 		     CFG_QOS_WMM_BURST_SIZE_DEFN_MIN,
 		     CFG_QOS_WMM_BURST_SIZE_DEFN_MAX),
 
-	REG_VARIABLE(CFG_ENABLE_HOST_ARPOFFLOAD_NAME, WLAN_PARAM_Integer,
-		     struct hdd_config, fhostArpOffload,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_ENABLE_HOST_ARPOFFLOAD_DEFAULT,
-		     CFG_ENABLE_HOST_ARPOFFLOAD_MIN,
-		     CFG_ENABLE_HOST_ARPOFFLOAD_MAX),
-
-	REG_VARIABLE(CFG_HW_FILTER_MODE_BITMAP_NAME, WLAN_PARAM_Integer,
-		     struct hdd_config, hw_filter_mode_bitmap,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_HW_FILTER_MODE_BITMAP_DEFAULT,
-		     CFG_HW_FILTER_MODE_BITMAP_MIN,
-		     CFG_HW_FILTER_MODE_BITMAP_MAX),
-
 #ifdef FEATURE_WLAN_RA_FILTERING
 	REG_VARIABLE(CFG_RA_FILTER_ENABLE_NAME, WLAN_PARAM_Integer,
 		     struct hdd_config, IsRArateLimitEnabled,
@@ -1378,13 +1357,6 @@ struct reg_table_entry g_registry_table[] = {
 		     CFG_RA_RATE_LIMIT_INTERVAL_MAX),
 #endif
 
-	REG_VARIABLE(CFG_ENABLE_HOST_SSDP_NAME, WLAN_PARAM_Integer,
-		     struct hdd_config, ssdp,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_ENABLE_HOST_SSDP_DEFAULT,
-		     CFG_ENABLE_HOST_SSDP_MIN,
-		     CFG_ENABLE_HOST_SSDP_MAX),
-
 #ifdef FEATURE_RUNTIME_PM
 	REG_VARIABLE(CFG_ENABLE_RUNTIME_PM, WLAN_PARAM_Integer,
 		     struct hdd_config, runtime_pm,
@@ -1392,23 +1364,8 @@ struct reg_table_entry g_registry_table[] = {
 		     CFG_ENABLE_RUNTIME_PM_DEFAULT,
 		     CFG_ENABLE_RUNTIME_PM_MIN,
 		     CFG_ENABLE_RUNTIME_PM_MAX),
-
-	REG_VARIABLE(CFG_RUNTIME_PM_DELAY_NAME, WLAN_PARAM_Integer,
-		     struct hdd_config, runtime_pm_delay,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_RUNTIME_PM_DELAY_DEFAULT,
-		     CFG_RUNTIME_PM_DELAY_MIN,
-		     CFG_RUNTIME_PM_DELAY_MAX),
 #endif
 
-
-	REG_VARIABLE(CFG_ENABLE_HOST_NSOFFLOAD_NAME, WLAN_PARAM_Integer,
-		     struct hdd_config, fhostNSOffload,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_ENABLE_HOST_NSOFFLOAD_DEFAULT,
-		     CFG_ENABLE_HOST_NSOFFLOAD_MIN,
-		     CFG_ENABLE_HOST_NSOFFLOAD_MAX),
-
 	REG_VARIABLE(CFG_QOS_WMM_TS_INFO_ACK_POLICY_NAME, WLAN_PARAM_HexInteger,
 		     struct hdd_config, tsInfoAckPolicy,
 		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
@@ -1629,13 +1586,6 @@ struct reg_table_entry g_registry_table[] = {
 		     CFG_ENABLE_DFS_PNO_CHNL_SCAN_MIN,
 		     CFG_ENABLE_DFS_PNO_CHNL_SCAN_MAX),
 
-	REG_VARIABLE(CFG_ENABLE_DYNAMIC_DTIM_NAME, WLAN_PARAM_Integer,
-		     struct hdd_config, enableDynamicDTIM,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_ENABLE_DYNAMIC_DTIM_DEFAULT,
-		     CFG_ENABLE_DYNAMIC_DTIM_MIN,
-		     CFG_ENABLE_DYNAMIC_DTIM_MAX),
-
 	REG_VARIABLE(CFG_SHORT_GI_40MHZ_NAME, WLAN_PARAM_Integer,
 		     struct hdd_config, ShortGI40MhzEnable,
 		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
@@ -1771,20 +1721,6 @@ struct reg_table_entry g_registry_table[] = {
 		     CFG_THROTTLE_DUTY_CYCLE_LEVEL3_MIN,
 		     CFG_THROTTLE_DUTY_CYCLE_LEVEL3_MAX),
 
-	REG_VARIABLE(CFG_ENABLE_MODULATED_DTIM_NAME, WLAN_PARAM_Integer,
-		     struct hdd_config, enableModulatedDTIM,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_ENABLE_MODULATED_DTIM_DEFAULT,
-		     CFG_ENABLE_MODULATED_DTIM_MIN,
-		     CFG_ENABLE_MODULATED_DTIM_MAX),
-
-	REG_VARIABLE(CFG_MC_ADDR_LIST_ENABLE_NAME, WLAN_PARAM_Integer,
-		     struct hdd_config, fEnableMCAddrList,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_MC_ADDR_LIST_ENABLE_DEFAULT,
-		     CFG_MC_ADDR_LIST_ENABLE_MIN,
-		     CFG_MC_ADDR_LIST_ENABLE_MAX),
-
 	REG_VARIABLE(CFG_VHT_CHANNEL_WIDTH, WLAN_PARAM_Integer,
 		     struct hdd_config, vhtChannelWidth,
 		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
@@ -2134,13 +2070,6 @@ struct reg_table_entry g_registry_table[] = {
 		     CFG_ENABLE_IP_TCP_UDP_CHKSUM_OFFLOAD_DISABLE,
 		     CFG_ENABLE_IP_TCP_UDP_CHKSUM_OFFLOAD_ENABLE),
 
-	REG_VARIABLE(CFG_POWERSAVE_OFFLOAD_NAME, WLAN_PARAM_Integer,
-		     struct hdd_config, enablePowersaveOffload,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
-		     CFG_POWERSAVE_OFFLOAD_DEFAULT,
-		     CFG_POWERSAVE_OFFLOAD_MIN,
-		     CFG_POWERSAVE_OFFLOAD_MAX),
-
 	REG_VARIABLE(CFG_ENABLE_FW_UART_PRINT_NAME, WLAN_PARAM_Integer,
 		     struct hdd_config, enablefwprint,
 		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
@@ -2206,13 +2135,6 @@ struct reg_table_entry g_registry_table[] = {
 		     CFG_VHT_MPDU_LEN_MIN,
 		     CFG_VHT_MPDU_LEN_MAX),
 
-	REG_VARIABLE(CFG_WOW_STATUS_NAME, WLAN_PARAM_Integer,
-		     struct hdd_config, wowEnable,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_WOW_STATUS_DEFAULT,
-		     CFG_WOW_ENABLE_MIN,
-		     CFG_WOW_ENABLE_MAX),
-
 	REG_VARIABLE(CFG_COALESING_IN_IBSS_NAME, WLAN_PARAM_Integer,
 		     struct hdd_config, isCoalesingInIBSSAllowed,
 		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
@@ -2676,84 +2598,6 @@ struct reg_table_entry g_registry_table[] = {
 		     CFG_ENABLE_SAP_SUSPEND_MIN,
 		     CFG_ENABLE_SAP_SUSPEND_MAX),
 
-#ifdef WLAN_FEATURE_EXTWOW_SUPPORT
-	REG_VARIABLE(CFG_EXTWOW_GO_TO_SUSPEND, WLAN_PARAM_Integer,
-		     struct hdd_config, extWowGotoSuspend,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_EXTWOW_GO_TO_SUSPEND_DEFAULT,
-		     CFG_EXTWOW_GO_TO_SUSPEND_MIN,
-		     CFG_EXTWOW_GO_TO_SUSPEND_MAX),
-
-	REG_VARIABLE(CFG_EXTWOW_APP1_WAKE_PIN_NUMBER, WLAN_PARAM_Integer,
-		     struct hdd_config, extWowApp1WakeupPinNumber,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_EXTWOW_APP1_WAKE_PIN_NUMBER_DEFAULT,
-		     CFG_EXTWOW_APP1_WAKE_PIN_NUMBER_MIN,
-		     CFG_EXTWOW_APP1_WAKE_PIN_NUMBER_MAX),
-
-	REG_VARIABLE(CFG_EXTWOW_APP2_WAKE_PIN_NUMBER, WLAN_PARAM_Integer,
-		     struct hdd_config, extWowApp2WakeupPinNumber,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_EXTWOW_APP2_WAKE_PIN_NUMBER_DEFAULT,
-		     CFG_EXTWOW_APP2_WAKE_PIN_NUMBER_MIN,
-		     CFG_EXTWOW_APP2_WAKE_PIN_NUMBER_MAX),
-
-	REG_VARIABLE(CFG_EXTWOW_KA_INIT_PING_INTERVAL, WLAN_PARAM_Integer,
-		     struct hdd_config, extWowApp2KAInitPingInterval,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_EXTWOW_KA_INIT_PING_INTERVAL_DEFAULT,
-		     CFG_EXTWOW_KA_INIT_PING_INTERVAL_MIN,
-		     CFG_EXTWOW_KA_INIT_PING_INTERVAL_MAX),
-
-	REG_VARIABLE(CFG_EXTWOW_KA_MIN_PING_INTERVAL, WLAN_PARAM_Integer,
-		     struct hdd_config, extWowApp2KAMinPingInterval,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_EXTWOW_KA_MIN_PING_INTERVAL_DEFAULT,
-		     CFG_EXTWOW_KA_MIN_PING_INTERVAL_MIN,
-		     CFG_EXTWOW_KA_MIN_PING_INTERVAL_MAX),
-
-	REG_VARIABLE(CFG_EXTWOW_KA_MAX_PING_INTERVAL, WLAN_PARAM_Integer,
-		     struct hdd_config, extWowApp2KAMaxPingInterval,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_EXTWOW_KA_MAX_PING_INTERVAL_DEFAULT,
-		     CFG_EXTWOW_KA_MAX_PING_INTERVAL_MIN,
-		     CFG_EXTWOW_KA_MAX_PING_INTERVAL_MAX),
-
-	REG_VARIABLE(CFG_EXTWOW_KA_INC_PING_INTERVAL, WLAN_PARAM_Integer,
-		     struct hdd_config, extWowApp2KAIncPingInterval,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_EXTWOW_KA_INC_PING_INTERVAL_DEFAULT,
-		     CFG_EXTWOW_KA_INC_PING_INTERVAL_MIN,
-		     CFG_EXTWOW_KA_INC_PING_INTERVAL_MAX),
-
-	REG_VARIABLE(CFG_EXTWOW_TCP_SRC_PORT, WLAN_PARAM_Integer,
-		     struct hdd_config, extWowApp2TcpSrcPort,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_EXTWOW_TCP_SRC_PORT_DEFAULT,
-		     CFG_EXTWOW_TCP_SRC_PORT_MIN,
-		     CFG_EXTWOW_TCP_SRC_PORT_MAX),
-
-	REG_VARIABLE(CFG_EXTWOW_TCP_DST_PORT, WLAN_PARAM_Integer,
-		     struct hdd_config, extWowApp2TcpDstPort,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_EXTWOW_TCP_DST_PORT_DEFAULT,
-		     CFG_EXTWOW_TCP_DST_PORT_MIN,
-		     CFG_EXTWOW_TCP_DST_PORT_MAX),
-
-	REG_VARIABLE(CFG_EXTWOW_TCP_TX_TIMEOUT, WLAN_PARAM_Integer,
-		     struct hdd_config, extWowApp2TcpTxTimeout,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_EXTWOW_TCP_TX_TIMEOUT_DEFAULT,
-		     CFG_EXTWOW_TCP_TX_TIMEOUT_MIN,
-		     CFG_EXTWOW_TCP_TX_TIMEOUT_MAX),
-
-	REG_VARIABLE(CFG_EXTWOW_TCP_RX_TIMEOUT, WLAN_PARAM_Integer,
-		     struct hdd_config, extWowApp2TcpRxTimeout,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_EXTWOW_TCP_RX_TIMEOUT_DEFAULT,
-		     CFG_EXTWOW_TCP_RX_TIMEOUT_MIN,
-		     CFG_EXTWOW_TCP_RX_TIMEOUT_MAX),
-#endif
 	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,
@@ -2912,13 +2756,6 @@ struct reg_table_entry g_registry_table[] = {
 		     CFG_GRO_ENABLED_MIN,
 		     CFG_GRO_ENABLED_MAX),
 
-	REG_VARIABLE(CFG_APF_PACKET_FILTER_OFFLOAD, WLAN_PARAM_Integer,
-		     struct hdd_config, apf_packet_filter_enable,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_APF_PACKET_FILTER_OFFLOAD_DEFAULT,
-		     CFG_APF_PACKET_FILTER_OFFLOAD_MIN,
-		     CFG_APF_PACKET_FILTER_OFFLOAD_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,
@@ -2933,13 +2770,6 @@ struct reg_table_entry g_registry_table[] = {
 		     CFG_MAX_MSDUS_PER_RXIND_MIN,
 		     CFG_MAX_MSDUS_PER_RXIND_MAX),
 
-	REG_VARIABLE(CFG_ACTIVE_MODE_OFFLOAD, WLAN_PARAM_Integer,
-		     struct hdd_config, active_mode_offload,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_ACTIVE_MODE_OFFLOAD_DEFAULT,
-		     CFG_ACTIVE_MODE_OFFLOAD_MIN,
-		     CFG_ACTIVE_MODE_OFFLOAD_MAX),
-
 	REG_VARIABLE(CFG_FINE_TIME_MEAS_CAPABILITY, WLAN_PARAM_HexInteger,
 		struct hdd_config, fine_time_meas_cap,
 		VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
@@ -2969,37 +2799,6 @@ struct reg_table_entry g_registry_table[] = {
 		     CFG_ETSI13_SRD_CHAN_IN_MASTER_MODE_MIN,
 		     CFG_ETSI13_SRD_CHAN_IN_MASTER_MODE_MAX),
 
-#ifdef WLAN_FEATURE_WOW_PULSE
-	REG_VARIABLE(CFG_WOW_PULSE_SUPPORT_NAME, WLAN_PARAM_Integer,
-		struct hdd_config, wow_pulse_support,
-		VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		CFG_WOW_PULSE_SUPPORT_DEFAULT,
-		CFG_WOW_PULSE_SUPPORT_MIN,
-		CFG_WOW_PULSE_SUPPORT_MAX),
-
-	REG_VARIABLE(CFG_WOW_PULSE_PIN_NAME, WLAN_PARAM_Integer,
-		struct hdd_config, wow_pulse_pin,
-		VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		CFG_WOW_PULSE_PIN_DEFAULT,
-		CFG_WOW_PULSE_PIN_MIN,
-		CFG_WOW_PULSE_PIN_MAX),
-
-	REG_VARIABLE(CFG_WOW_PULSE_INTERVAL_LOW_NAME, WLAN_PARAM_Integer,
-		struct hdd_config, wow_pulse_interval_low,
-		VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		CFG_WOW_PULSE_INTERVAL_LOW_DEFAULT,
-		CFG_WOW_PULSE_INTERVAL_LOW_MIN,
-		CFG_WOW_PULSE_INTERVAL_LOW_MAX),
-
-	REG_VARIABLE(CFG_WOW_PULSE_INTERVAL_HIGH_NAME, WLAN_PARAM_Integer,
-		struct hdd_config, wow_pulse_interval_high,
-		VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		CFG_WOW_PULSE_INTERVAL_HIGH_DEFAULT,
-		CFG_WOW_PULSE_INTERVAL_HIGH_MIN,
-		CFG_WOW_PULSE_INTERVAL_HIGH_MAX),
-#endif
-
-
 	REG_VARIABLE(CFG_CE_CLASSIFY_ENABLE_NAME, WLAN_PARAM_Integer,
 		     struct hdd_config, ce_classify_enabled,
 		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
@@ -3711,13 +3510,6 @@ struct reg_table_entry g_registry_table[] = {
 		CFG_TX_ORPHAN_ENABLE_MIN,
 		CFG_TX_ORPHAN_ENABLE_MAX),
 
-	REG_VARIABLE(CFG_AUTO_DETECT_POWER_FAIL_MODE_NAME, WLAN_PARAM_Integer,
-		struct hdd_config, auto_pwr_save_fail_mode,
-		VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		CFG_AUTO_DETECT_POWER_FAIL_MODE_DEFAULT,
-		CFG_AUTO_DETECT_POWER_FAIL_MODE_MIN,
-		CFG_AUTO_DETECT_POWER_FAIL_MODE_MAX),
-
 	REG_VARIABLE(CFG_ITO_REPEAT_COUNT_NAME, WLAN_PARAM_Integer,
 		struct hdd_config, ito_repeat_count,
 		VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
@@ -3858,15 +3650,6 @@ struct reg_table_entry g_registry_table[] = {
 		     CFG_LATENCY_FLAGS_ULTRALOW_MAX),
 
 
-#ifdef WLAN_FEATURE_PACKET_FILTERING
-	REG_VARIABLE(CFG_ENABLE_PACKET_FILTERS_NAME, WLAN_PARAM_Integer,
-		struct hdd_config, packet_filters_bitmap,
-		VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		CFG_ENABLE_PACKET_FILTERS_DEFAULT,
-		CFG_ENABLE_PACKET_FILTERS_MIN,
-		CFG_ENABLE_PACKET_FILTERS_MAX),
-#endif /* WLAN_FEATURE_PACKET_FILTERING */
-
 	REG_VARIABLE(CFG_DFS_BEACON_TX_ENHANCED, WLAN_PARAM_Integer,
 		struct hdd_config, dfs_beacon_tx_enhanced,
 		VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
@@ -4983,8 +4766,8 @@ static void hdd_override_all_ps(struct hdd_context *hdd_ctx)
 	cfg_ini->is_ps_enabled = 0;
 	hdd_disable_runtime_pm(cfg_ini);
 	hdd_disable_auto_shutdown(cfg_ini);
-	cfg_ini->enablePowersaveOffload = 0;
-	cfg_ini->wowEnable = 0;
+	ucfg_pmo_set_power_save_mode(hdd_ctx->psoc, PS_NOT_SUPPORTED);
+	ucfg_pmo_set_wow_enable(hdd_ctx->psoc, PMO_WOW_DISABLE_BOTH);
 }
 
 /**
@@ -5558,12 +5341,6 @@ bool hdd_update_config_cfg(struct hdd_context *hdd_ctx)
 		hdd_err("Couldn't pass on WNI_CFG_PASSIVE_MAXIMUM_CHANNEL_TIME to CFG");
 	}
 
-	if (sme_cfg_set_int(mac_handle, WNI_CFG_MAX_PS_POLL,
-		     config->nMaxPsPoll) == QDF_STATUS_E_FAILURE) {
-		status = false;
-		hdd_err("Couldn't pass on WNI_CFG_MAX_PS_POLL to CFG");
-	}
-
 	if (sme_cfg_set_int(mac_handle, WNI_CFG_PS_DATA_INACTIVITY_TIMEOUT,
 		    config->nDataInactivityTimeout) == QDF_STATUS_E_FAILURE) {
 		status = false;
@@ -5577,7 +5354,6 @@ bool hdd_update_config_cfg(struct hdd_context *hdd_ctx)
 		hdd_err("Fail to pass WNI_CFG_PS_WOW_DATA_INACTIVITY_TO CFG");
 	}
 
-
 	if (sme_cfg_set_int(mac_handle, WNI_CFG_AP_KEEP_ALIVE_TIMEOUT,
 		    config->apKeepAlivePeriod) == QDF_STATUS_E_FAILURE) {
 		status = false;
@@ -5609,12 +5385,6 @@ bool hdd_update_config_cfg(struct hdd_context *hdd_ctx)
 		hdd_err("Couldn't pass on WNI_CFG_HEART_BEAT_THRESHOLD to CFG");
 	}
 
-	if (sme_cfg_set_int(mac_handle, WNI_CFG_ENABLE_MC_ADDR_LIST,
-		    config->fEnableMCAddrList) == QDF_STATUS_E_FAILURE) {
-		status = false;
-		hdd_err("Couldn't pass on WNI_CFG_ENABLE_MC_ADDR_LIST to CFG");
-	}
-
 	if (sme_cfg_set_int(mac_handle, WNI_CFG_ENABLE_MCC_ADAPTIVE_SCHED,
 		    config->enableMCCAdaptiveScheduler) ==
 		    QDF_STATUS_E_FAILURE) {

+ 6 - 3
core/hdd/src/wlan_hdd_cfg80211.c

@@ -121,6 +121,8 @@
 #include "wlan_mlme_public_struct.h"
 #include "wlan_extscan_ucfg_api.h"
 #include "wlan_mlme_ucfg_api.h"
+#include "wlan_pmo_cfg.h"
+#include "cfg_ucfg_api.h"
 
 #include "wlan_crypto_global_api.h"
 #include "wlan_nl_to_crypto_params.h"
@@ -5554,7 +5556,7 @@ __wlan_hdd_cfg80211_wifi_configuration_set(struct wiphy *wiphy,
 		override_li = nla_get_u32(
 			tb[QCA_WLAN_VENDOR_ATTR_CONFIG_LISTEN_INTERVAL]);
 
-		if (override_li > CFG_ENABLE_DYNAMIC_DTIM_MAX) {
+		if (override_li > cfg_max(CFG_PMO_ENABLE_DYNAMIC_DTIM)) {
 			hdd_err_rl("Invalid value for listen interval - %d",
 				   override_li);
 			return -EINVAL;
@@ -7167,12 +7169,13 @@ __wlan_hdd_cfg80211_set_ns_offload(struct wiphy *wiphy,
 	status = wlan_hdd_validate_context(hdd_ctx);
 	if (0 != status)
 		return status;
-	if (!hdd_ctx->config->fhostNSOffload) {
+
+	if (!ucfg_pmo_is_ns_offloaded(hdd_ctx->psoc)) {
 		hdd_err("ND Offload not supported");
 		return -EINVAL;
 	}
 
-	if (!hdd_ctx->config->active_mode_offload) {
+	if (!ucfg_pmo_is_active_mode_offloaded(hdd_ctx->psoc)) {
 		hdd_warn("Active mode offload is disabled");
 		return -EINVAL;
 	}

+ 1 - 1
core/hdd/src/wlan_hdd_debugfs_offload.c

@@ -61,7 +61,7 @@ wlan_hdd_mc_addr_list_info_debugfs(struct hdd_context *hdd_ctx,
 	struct pmo_mc_addr_list mc_addr_list = {0};
 	QDF_STATUS status;
 
-	if (!hdd_ctx->config->fEnableMCAddrList) {
+	if (!ucfg_pmo_is_mc_addr_list_enabled(hdd_ctx->psoc)) {
 		ret = scnprintf(buf, buf_avail_len,
 				"\nMC addr ini is disabled\n");
 		if (ret > 0)

+ 0 - 2
core/hdd/src/wlan_hdd_ftm.c

@@ -73,8 +73,6 @@ int hdd_update_cds_config_ftm(struct hdd_context *hdd_ctx)
 	}
 
 	cds_cfg->driver_type = QDF_DRIVER_TYPE_MFG;
-	cds_cfg->powersave_offload_enabled =
-			hdd_ctx->config->enablePowersaveOffload;
 	hdd_lpass_populate_cds_config(cds_cfg, hdd_ctx);
 	cds_cfg->sub_20_channel_width = WLAN_SUB_20_CH_WIDTH_NONE;
 	cds_cfg->self_recovery_enabled = hdd_ctx->config->enableSelfRecovery;

+ 39 - 32
core/hdd/src/wlan_hdd_ioctl.c

@@ -1840,7 +1840,7 @@ static int hdd_enable_ext_wow(struct hdd_adapter *adapter,
 		goto exit;
 	}
 
-	if (hdd_ctx->config->extWowGotoSuspend) {
+	if (ucfg_pmo_extwow_is_goto_suspend_enabled(hdd_ctx->psoc)) {
 		hdd_info("Received ready to ExtWoW. Going to suspend");
 
 		rc = wlan_hdd_cfg80211_suspend_wlan(hdd_ctx->wiphy, NULL);
@@ -1857,6 +1857,7 @@ static int hdd_enable_ext_wow(struct hdd_adapter *adapter,
 			goto exit;
 		}
 	}
+
 exit:
 	osif_request_put(request);
 	return rc;
@@ -1868,6 +1869,7 @@ static int hdd_enable_ext_wow_parser(struct hdd_adapter *adapter, int vdev_id,
 	tSirExtWoWParams params;
 	struct hdd_context *hdd_ctx = WLAN_HDD_GET_CTX(adapter);
 	int rc;
+	uint8_t pin1, pin2;
 
 	rc = wlan_hdd_validate_context(hdd_ctx);
 	if (rc)
@@ -1896,9 +1898,9 @@ static int hdd_enable_ext_wow_parser(struct hdd_adapter *adapter, int vdev_id,
 	}
 
 	params.vdev_id = vdev_id;
-	params.wakeup_pin_num = hdd_ctx->config->extWowApp1WakeupPinNumber |
-				(hdd_ctx->config->extWowApp2WakeupPinNumber
-					<< 8);
+	pin1 = ucfg_pmo_extwow_app1_wakeup_pin_num(hdd_ctx->psoc);
+	pin2 = ucfg_pmo_extwow_app2_wakeup_pin_num(hdd_ctx->psoc);
+	params.wakeup_pin_num = pin1 | (pin2 << 8);
 
 	return hdd_enable_ext_wow(adapter, &params);
 }
@@ -2028,33 +2030,38 @@ static int hdd_set_app_type2_parser(struct hdd_adapter *adapter,
 	qdf_mem_copy(params.rc4_key, rc4_key, params.rc4_key_len);
 
 	params.vdev_id = adapter->session_id;
-	params.tcp_src_port = (params.tcp_src_port != 0) ?
-		params.tcp_src_port : hdd_ctx->config->extWowApp2TcpSrcPort;
-	params.tcp_dst_port = (params.tcp_dst_port != 0) ?
-		params.tcp_dst_port : hdd_ctx->config->extWowApp2TcpDstPort;
-	params.keepalive_init = (params.keepalive_init != 0) ?
-		params.keepalive_init : hdd_ctx->config->
-						extWowApp2KAInitPingInterval;
-	params.keepalive_min =
-		(params.keepalive_min != 0) ?
-			params.keepalive_min :
-			hdd_ctx->config->extWowApp2KAMinPingInterval;
-	params.keepalive_max =
-		(params.keepalive_max != 0) ?
-			params.keepalive_max :
-			hdd_ctx->config->extWowApp2KAMaxPingInterval;
-	params.keepalive_inc =
-		(params.keepalive_inc != 0) ?
-			params.keepalive_inc :
-			hdd_ctx->config->extWowApp2KAIncPingInterval;
-	params.tcp_tx_timeout_val =
-		(params.tcp_tx_timeout_val != 0) ?
-			params.tcp_tx_timeout_val :
-			hdd_ctx->config->extWowApp2TcpTxTimeout;
-	params.tcp_rx_timeout_val =
-		(params.tcp_rx_timeout_val != 0) ?
-			params.tcp_rx_timeout_val :
-			hdd_ctx->config->extWowApp2TcpRxTimeout;
+
+	if (!params.tcp_src_port)
+		params.tcp_src_port =
+		  ucfg_pmo_extwow_app2_tcp_src_port(hdd_ctx->psoc);
+
+	if (!params.tcp_dst_port)
+		params.tcp_dst_port =
+		  ucfg_pmo_extwow_app2_tcp_dst_port(hdd_ctx->psoc);
+
+	if (!params.keepalive_init)
+		params.keepalive_init =
+		  ucfg_pmo_extwow_app2_init_ping_interval(hdd_ctx->psoc);
+
+	if (!params.keepalive_min)
+		params.keepalive_min =
+		  ucfg_pmo_extwow_app2_min_ping_interval(hdd_ctx->psoc);
+
+	if (!params.keepalive_max)
+		params.keepalive_max =
+		  ucfg_pmo_extwow_app2_max_ping_interval(hdd_ctx->psoc);
+
+	if (!params.keepalive_inc)
+		params.keepalive_inc =
+		  ucfg_pmo_extwow_app2_inc_ping_interval(hdd_ctx->psoc);
+
+	if (!params.tcp_tx_timeout_val)
+		params.tcp_tx_timeout_val =
+		  ucfg_pmo_extwow_app2_tcp_tx_timeout(hdd_ctx->psoc);
+
+	if (!params.tcp_rx_timeout_val)
+		params.tcp_rx_timeout_val =
+		  ucfg_pmo_extwow_app2_tcp_rx_timeout(hdd_ctx->psoc);
 
 	hdd_debug("%pM %.16s %u %u %u %u %u %u %u %u %u %u %u %u %u",
 		  gateway_mac, rc4_key, params.ip_id,
@@ -6301,7 +6308,7 @@ static int hdd_set_rx_filter(struct hdd_adapter *adapter, bool action,
 		return -EINVAL;
 	}
 
-	if (!hdd_ctx->config->fEnableMCAddrList) {
+	if (!ucfg_pmo_is_mc_addr_list_enabled(hdd_ctx->psoc)) {
 		hdd_warn("mc addr ini is disabled");
 		return -EINVAL;
 	}

+ 38 - 87
core/hdd/src/wlan_hdd_main.c

@@ -1248,6 +1248,7 @@ static void hdd_update_tgt_services(struct hdd_context *hdd_ctx,
 				    struct wma_tgt_services *cfg)
 {
 	struct hdd_config *config = hdd_ctx->config;
+	bool arp_offload_enable;
 #ifdef FEATURE_WLAN_TDLS
 	bool tdls_support;
 	bool tdls_off_channel;
@@ -1269,8 +1270,10 @@ static void hdd_update_tgt_services(struct hdd_context *hdd_ctx,
 		config->dot11Mode = eHDD_DOT11_MODE_AUTO;
 
 	/* ARP offload: override user setting if invalid  */
-	config->fhostArpOffload &= cfg->arp_offload;
-
+	arp_offload_enable =
+			ucfg_pmo_is_arp_offload_enabled(hdd_ctx->psoc);
+	ucfg_pmo_set_arp_offload_enabled(hdd_ctx->psoc,
+					 arp_offload_enable & cfg->arp_offload);
 #ifdef FEATURE_WLAN_SCAN_PNO
 	/* PNO offload */
 	hdd_debug("PNO Capability in f/w = %d", cfg->pno_offload);
@@ -1892,29 +1895,6 @@ static int hdd_generate_macaddr_auto(struct hdd_context *hdd_ctx)
 	return 0;
 }
 
-#ifdef FEATURE_WLAN_APF
-/**
- * hdd_update_apf_support() - Update APF supported flag in hdd context
- * @hdd_ctx: Pointer to hdd_ctx
- * @cfg: target configuration
- *
- * Update the APF support flag in HDD Context using INI and target config.
- *
- * Return: None
- */
-static void hdd_update_apf_support(struct hdd_context *hdd_ctx,
-				   struct wma_tgt_cfg *cfg)
-{
-	hdd_ctx->apf_supported = (cfg->apf_enabled &&
-				  hdd_ctx->config->apf_packet_filter_enable);
-}
-#else
-static void hdd_update_apf_support(struct hdd_context *hdd_ctx,
-				   struct wma_tgt_cfg *cfg)
-{
-}
-#endif
-
 /**
  * hdd_update_ra_rate_limit() - Update RA rate limit from target
  *  configuration to cfg_ini in HDD
@@ -2128,10 +2108,7 @@ void hdd_update_tgt_cfg(hdd_handle_t hdd_handle, struct wma_tgt_cfg *cfg)
 	if (QDF_IS_STATUS_ERROR(status))
 		hdd_err("fw update WNI_CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED to CFG fails");
 
-	hdd_update_apf_support(hdd_ctx, cfg);
-
-	hdd_debug("Target APF %d Host APF %d 8ss fw support %d txBFCsnValue %d",
-		  cfg->apf_enabled, hdd_ctx->config->apf_packet_filter_enable,
+	hdd_debug("Target 8ss fw support %d txBFCsnValue %d",
 		  cfg->tx_bfee_8ss_enabled, hdd_ctx->config->txBFCsnValue);
 
 	/*
@@ -8241,24 +8218,25 @@ static void hdd_init_offloaded_packets_ctx(struct hdd_context *hdd_ctx)
  */
 static int wlan_hdd_set_wow_pulse(struct hdd_context *phddctx, bool enable)
 {
-	struct hdd_config *pcfg_ini = phddctx->config;
 	struct wow_pulse_mode wow_pulse_set_info;
 	QDF_STATUS status;
 
 	hdd_debug("wow pulse enable flag is %d", enable);
 
-	if (false == phddctx->config->wow_pulse_support)
+	if (!ucfg_pmo_is_wow_pulse_enabled(phddctx->psoc))
 		return 0;
 
 	/* prepare the request to send to SME */
 	if (enable == true) {
 		wow_pulse_set_info.wow_pulse_enable = true;
 		wow_pulse_set_info.wow_pulse_pin =
-				pcfg_ini->wow_pulse_pin;
-		wow_pulse_set_info.wow_pulse_interval_low =
-				pcfg_ini->wow_pulse_interval_low;
+			ucfg_pmo_get_wow_pulse_pin(phddctx->psoc);
+
 		wow_pulse_set_info.wow_pulse_interval_high =
-				pcfg_ini->wow_pulse_interval_high;
+		    ucfg_pmo_get_wow_pulse_interval_high(phddctx->psoc);
+
+		wow_pulse_set_info.wow_pulse_interval_low =
+		    ucfg_pmo_get_wow_pulse_interval_low(phddctx->psoc);
 	} else {
 		wow_pulse_set_info.wow_pulse_enable = false;
 		wow_pulse_set_info.wow_pulse_pin = 0;
@@ -9236,10 +9214,6 @@ static struct hdd_context *hdd_context_create(struct device *dev)
 		  hdd_ctx->config->timer_multiplier);
 	qdf_timer_set_multiplier(hdd_ctx->config->timer_multiplier);
 
-
-	if (hdd_ctx->config->fhostNSOffload)
-		hdd_ctx->ns_offload_enable = true;
-
 	cds_set_fatal_event(hdd_ctx->config->enable_fatal_event);
 
 	hdd_override_ini_config(hdd_ctx);
@@ -9633,27 +9607,7 @@ static int hdd_update_cds_config(struct hdd_context *hdd_ctx)
 	}
 
 	cds_cfg->driver_type = QDF_DRIVER_TYPE_PRODUCTION;
-	if (!hdd_ctx->config->nMaxPsPoll ||
-			!hdd_ctx->config->enablePowersaveOffload) {
-		cds_cfg->powersave_offload_enabled =
-			hdd_ctx->config->enablePowersaveOffload;
-	} else {
-		if ((hdd_ctx->config->enablePowersaveOffload ==
-				PS_QPOWER_NODEEPSLEEP) ||
-				(hdd_ctx->config->enablePowersaveOffload ==
-				 PS_LEGACY_NODEEPSLEEP))
-			cds_cfg->powersave_offload_enabled =
-				PS_LEGACY_NODEEPSLEEP;
-		else
-			cds_cfg->powersave_offload_enabled =
-				PS_LEGACY_DEEPSLEEP;
-		hdd_info("Qpower disabled in cds config, %d",
-				cds_cfg->powersave_offload_enabled);
-	}
-	cds_cfg->sta_dynamic_dtim = hdd_ctx->config->enableDynamicDTIM;
-	cds_cfg->sta_mod_dtim = hdd_ctx->config->enableModulatedDTIM;
 	cds_cfg->sta_maxlimod_dtim = hdd_ctx->config->fMaxLIModulatedDTIM;
-	cds_cfg->wow_enable = hdd_ctx->config->wowEnable;
 
 	/*
 	 * Copy the DFS Phyerr Filtering Offload status.
@@ -9662,14 +9616,10 @@ static int hdd_update_cds_config(struct hdd_context *hdd_ctx)
 	 */
 	cds_cfg->dfs_phyerr_filter_offload =
 		hdd_ctx->config->fDfsPhyerrFilterOffload;
-	if (hdd_ctx->config->ssdp)
-		cds_cfg->ssdp = hdd_ctx->config->ssdp;
 
 	cds_cfg->force_target_assert_enabled =
 		hdd_ctx->config->crash_inject_enabled;
 
-	cds_cfg->enable_mc_list = hdd_ctx->config->fEnableMCAddrList;
-
 	ucfg_mlme_get_sap_max_offload_peers(hdd_ctx->psoc, &value);
 	cds_cfg->ap_maxoffload_peers = value;
 	ucfg_mlme_get_sap_max_offload_reorder_buffs(hdd_ctx->psoc,
@@ -9727,8 +9677,6 @@ static int hdd_update_cds_config(struct hdd_context *hdd_ctx)
 	cds_cfg->enable_rxthread = hdd_ctx->enable_rxthread;
 	cds_cfg->ce_classify_enabled =
 		hdd_ctx->config->ce_classify_enabled;
-	cds_cfg->apf_packet_filter_enable =
-		hdd_ctx->config->apf_packet_filter_enable;
 	cds_cfg->self_gen_frm_pwr = hdd_ctx->config->self_gen_frm_pwr;
 	ucfg_mlme_get_sap_max_peers(hdd_ctx->psoc, &value);
 	cds_cfg->max_station = value;
@@ -9740,8 +9688,6 @@ static int hdd_update_cds_config(struct hdd_context *hdd_ctx)
 	cds_cfg->fw_timeout_crash = hdd_ctx->config->fw_timeout_crash;
 	cds_cfg->active_uc_apf_mode = hdd_ctx->config->active_uc_apf_mode;
 	cds_cfg->active_mc_bc_apf_mode = hdd_ctx->config->active_mc_bc_apf_mode;
-	cds_cfg->auto_power_save_fail_mode =
-		hdd_ctx->config->auto_pwr_save_fail_mode;
 
 	cds_cfg->ito_repeat_count = hdd_ctx->config->ito_repeat_count;
 	cds_cfg->bandcapability = hdd_ctx->config->nBandCapability;
@@ -10879,6 +10825,7 @@ int hdd_configure_cds(struct hdd_context *hdd_ctx)
 	uint16_t num_11ag_tx_chains = 0;
 	struct policy_mgr_dp_cbacks dp_cbs = {0};
 	bool value;
+	enum pmo_auto_pwr_detect_failure_mode auto_power_fail_mode;
 
 	mac_handle = hdd_ctx->mac_handle;
 
@@ -11008,8 +10955,11 @@ int hdd_configure_cds(struct hdd_context *hdd_ctx)
 
 	sme_cli_set_command(0, WMI_PDEV_PARAM_GCMP_SUPPORT_ENABLE,
 			    hdd_ctx->config->gcmp_enabled, PDEV_CMD);
+
+	auto_power_fail_mode =
+		ucfg_pmo_get_auto_power_fail_mode(hdd_ctx->psoc);
 	sme_cli_set_command(0, WMI_PDEV_AUTO_DETECT_POWER_FAILURE,
-			    hdd_ctx->config->auto_pwr_save_fail_mode, PDEV_CMD);
+			    auto_power_fail_mode, PDEV_CMD);
 
 
 	if (hdd_ctx->config->enable_phy_reg_retention)
@@ -12785,17 +12735,24 @@ QDF_STATUS hdd_component_psoc_open(struct wlan_objmgr_psoc *psoc)
 
 	status = ucfg_fwol_psoc_open(psoc);
 	if (QDF_IS_STATUS_ERROR(status))
-		goto err;
+		goto err_fwol;
+
+	status = ucfg_pmo_psoc_open(psoc);
+	if (QDF_IS_STATUS_ERROR(status))
+		goto err_pmo;
 
 	return status;
 
-err:
+err_pmo:
+	ucfg_fwol_psoc_close(psoc);
+err_fwol:
 	ucfg_mlme_psoc_close(psoc);
 	return status;
 }
 
 void hdd_component_psoc_close(struct wlan_objmgr_psoc *psoc)
 {
+	ucfg_pmo_psoc_close(psoc);
 	ucfg_fwol_psoc_close(psoc);
 	ucfg_mlme_psoc_close(psoc);
 }
@@ -13675,7 +13632,8 @@ static void hdd_populate_runtime_cfg(struct hdd_context *hdd_ctx,
 				     struct hif_config_info *cfg)
 {
 	cfg->enable_runtime_pm = hdd_ctx->config->runtime_pm;
-	cfg->runtime_pm_delay = hdd_ctx->config->runtime_pm_delay;
+	cfg->runtime_pm_delay =
+		ucfg_pmo_get_runtime_pm_delay(hdd_ctx->psoc);
 }
 #else
 static void hdd_populate_runtime_cfg(struct hdd_context *hdd_ctx,
@@ -13753,6 +13711,9 @@ int hdd_update_config(struct hdd_context *hdd_ctx)
 {
 	int ret;
 
+	if (ucfg_pmo_is_ns_offloaded(hdd_ctx->psoc))
+		hdd_ctx->ns_offload_enable = true;
+
 	hdd_update_ol_config(hdd_ctx);
 	hdd_update_hif_config(hdd_ctx);
 	if (QDF_GLOBAL_FTM_MODE == hdd_get_conparam())
@@ -13799,6 +13760,9 @@ static int hdd_update_pmo_config(struct hdd_context *hdd_ctx)
 {
 	struct pmo_psoc_cfg psoc_cfg;
 	QDF_STATUS status;
+	enum pmo_wow_enable_type wow_enable;
+
+	ucfg_pmo_get_psoc_config(hdd_ctx->psoc, &psoc_cfg);
 
 	/*
 	 * Value of hdd_ctx->wowEnable can be,
@@ -13808,27 +13772,14 @@ static int hdd_update_pmo_config(struct hdd_context *hdd_ctx)
 	 * 3 - Enable both magic patter and pattern byte match on
 	 *     all interfaces.
 	 */
-	psoc_cfg.magic_ptrn_enable =
-		(hdd_ctx->config->wowEnable & 0x01) ? true : false;
+	wow_enable = ucfg_pmo_get_wow_enable(hdd_ctx->psoc);
+	psoc_cfg.magic_ptrn_enable = (wow_enable & 0x01) ? true : false;
 	psoc_cfg.ptrn_match_enable_all_vdev =
-		(hdd_ctx->config->wowEnable & 0x02) ? true : false;
-	psoc_cfg.apf_enable = hdd_ctx->config->apf_packet_filter_enable;
-	psoc_cfg.arp_offload_enable = hdd_ctx->config->fhostArpOffload;
-	psoc_cfg.hw_filter_mode_bitmap = hdd_ctx->config->hw_filter_mode_bitmap;
-	psoc_cfg.ns_offload_enable_dynamic = hdd_ctx->config->fhostNSOffload;
-	psoc_cfg.ns_offload_enable_static = hdd_ctx->config->fhostNSOffload;
+				(wow_enable & 0x02) ? true : false;
 	psoc_cfg.packet_filter_enabled = !hdd_ctx->config->disablePacketFilter;
-	psoc_cfg.ssdp = hdd_ctx->config->ssdp;
-	psoc_cfg.enable_mc_list = hdd_ctx->config->fEnableMCAddrList;
-	psoc_cfg.active_mode_offload = hdd_ctx->config->active_mode_offload;
 	psoc_cfg.ap_arpns_support = hdd_ctx->ap_arpns_support;
 	psoc_cfg.d0_wow_supported = wma_d0_wow_is_supported();
-	psoc_cfg.sta_dynamic_dtim = hdd_ctx->config->enableDynamicDTIM;
-	psoc_cfg.sta_mod_dtim = hdd_ctx->config->enableModulatedDTIM;
 	psoc_cfg.sta_max_li_mod_dtim = hdd_ctx->config->fMaxLIModulatedDTIM;
-	psoc_cfg.power_save_mode = hdd_ctx->config->enablePowersaveOffload;
-	psoc_cfg.auto_power_save_fail_mode =
-		hdd_ctx->config->auto_pwr_save_fail_mode;
 
 	hdd_ra_populate_pmo_config(&psoc_cfg, hdd_ctx);
 	hdd_lpass_populate_pmo_config(&psoc_cfg, hdd_ctx);

+ 2 - 2
core/hdd/src/wlan_hdd_packet_filter.c

@@ -42,7 +42,7 @@ int hdd_enable_default_pkt_filters(struct hdd_adapter *adapter)
 		return 0;
 	}
 
-	filters = hdd_ctx->config->packet_filters_bitmap;
+	filters = ucfg_pmo_get_pkt_filter_bitmap(hdd_ctx->psoc);
 
 	while (filters != 0) {
 		if (filters & 0x1) {
@@ -79,7 +79,7 @@ int hdd_disable_default_pkt_filters(struct hdd_adapter *adapter)
 		return 0;
 	}
 
-	filters = hdd_ctx->config->packet_filters_bitmap;
+	filters = ucfg_pmo_get_pkt_filter_bitmap(hdd_ctx->psoc);
 
 	while (filters != 0) {
 		if (filters & 0x1) {

+ 4 - 5
core/hdd/src/wlan_hdd_power.c

@@ -802,9 +802,8 @@ static int __wlan_hdd_ipv4_changed(struct notifier_block *nb,
 		hdd_debug("invoking sme_dhcp_done_ind");
 		sme_dhcp_done_ind(hdd_ctx->mac_handle, adapter->session_id);
 
-		if (!hdd_ctx->config->fhostArpOffload) {
-			hdd_debug("Offload not enabled ARPOffload=%d",
-				  hdd_ctx->config->fhostArpOffload);
+		if (!ucfg_pmo_is_arp_offload_enabled(hdd_ctx->psoc)) {
+			hdd_debug("Offload not enabled");
 			goto exit;
 		}
 
@@ -2131,7 +2130,7 @@ int hdd_set_qpower_config(struct hdd_context *hddctx,
 {
 	QDF_STATUS status;
 
-	if (!hddctx->config->enablePowersaveOffload) {
+	if (!ucfg_pmo_get_power_save_mode(hddctx->psoc)) {
 		hdd_err("qpower is disabled in configuration");
 		return -EINVAL;
 	}
@@ -2148,7 +2147,7 @@ int hdd_set_qpower_config(struct hdd_context *hddctx,
 		return -EINVAL;
 	}
 
-	if (hddctx->config->nMaxPsPoll) {
+	if (ucfg_pmo_get_max_ps_poll(hddctx->psoc)) {
 		if ((qpower == PS_QPOWER_NODEEPSLEEP) ||
 				(qpower == PS_LEGACY_NODEEPSLEEP))
 			qpower = PS_LEGACY_NODEEPSLEEP;

+ 5 - 3
core/hdd/src/wlan_hdd_wext.c

@@ -104,6 +104,8 @@
 #include "wlan_mlme_public_struct.h"
 #include "cfg_ucfg_api.h"
 #include "cfg_mlme_threshold.h"
+#include "wlan_pmo_cfg.h"
+#include "wlan_pmo_ucfg_api.h"
 
 #define HDD_FINISH_ULA_TIME_OUT         800
 #define HDD_SET_MCBC_FILTERS_TO_FW      1
@@ -5198,14 +5200,14 @@ static int __iw_setint_getnone(struct net_device *dev,
 		ret = hdd_handle_pdev_reset(adapter, set_value);
 		break;
 	case WE_SET_MODULATED_DTIM:
-		if ((set_value < CFG_ENABLE_MODULATED_DTIM_MIN) ||
-				(set_value > CFG_ENABLE_MODULATED_DTIM_MAX)) {
+		if ((set_value < cfg_max(CFG_PMO_ENABLE_MODULATED_DTIM)) ||
+		    (set_value > cfg_max(CFG_PMO_ENABLE_MODULATED_DTIM))) {
 			hdd_err("Invalid gEnableModuleDTIM value %d",
 				set_value);
 			return -EINVAL;
 		}
 
-		hdd_ctx->config->enableModulatedDTIM = set_value;
+		ucfg_pmo_set_sta_mod_dtim(hdd_ctx->psoc, set_value);
 		break;
 	default:
 		hdd_debug("Invalid sub command %d", sub_cmd);

+ 0 - 17
core/mac/inc/sir_api.h

@@ -5654,23 +5654,6 @@ enum powersave_qpower_mode {
 	QPOWER_DUTY_CYCLING = 2
 };
 
-/**
- * enum powersave_qpower_mode: powersave_mode
- * @PS_NOT_SUPPORTED: Power save is not supported
- * @PS_LEGACY_NODEEPSLEEP: Legacy power save enabled and deep sleep disabled
- * @PS_QPOWER_NODEEPSLEEP: QPOWER enabled and deep sleep disabled
- * @PS_LEGACY_DEEPSLEEP: Legacy power save enabled and deep sleep enabled
- * @PS_QPOWER_DEEPSLEEP: QPOWER enabled and deep sleep enabled
- * @PS_DUTY_CYCLING_QPOWER: QPOWER enabled in duty cycling mode
- */
-enum powersave_mode {
-	PS_NOT_SUPPORTED = 0,
-	PS_LEGACY_NODEEPSLEEP = 1,
-	PS_QPOWER_NODEEPSLEEP = 2,
-	PS_LEGACY_DEEPSLEEP = 3,
-	PS_QPOWER_DEEPSLEEP = 4,
-	PS_DUTY_CYCLING_QPOWER = 5
-};
 #ifdef FEATURE_LFR_SUBNET_DETECTION
 /**
  * struct gateway_param_update_req - gateway parameter update request

+ 0 - 22
core/mac/inc/wni_cfg.h

@@ -111,14 +111,9 @@ enum {
 	WNI_CFG_VHT_160MHZ_UTILIZATION,
 	WNI_CFG_MPDU_DENSITY,
 	WNI_CFG_MAX_RX_AMPDU_FACTOR,
-	WNI_CFG_MAX_PS_POLL,
 	WNI_CFG_SCAN_IN_POWERSAVE,
 	WNI_CFG_WOWLAN_UCAST_PATTERN_FILTER_ENABLE,
 	WNI_CFG_WOWLAN_CHANNEL_SWITCH_ENABLE,
-	WNI_CFG_WOWLAN_DEAUTH_ENABLE,
-	WNI_CFG_WOWLAN_DISASSOC_ENABLE,
-	WNI_CFG_WOWLAN_MAX_MISSED_BEACON,
-	WNI_CFG_WOWLAN_MAX_SLEEP_PERIOD,
 	WNI_CFG_IBSS_AUTO_BSSID,
 	WNI_CFG_WPS_ENABLE,
 	WNI_CFG_WPS_STATE,
@@ -134,7 +129,6 @@ enum {
 	WNI_CFG_ASSOC_STA_LIMIT,
 	WNI_CFG_ENABLE_LTE_COEX,
 	WNI_CFG_AP_KEEP_ALIVE_TIMEOUT,
-	WNI_CFG_ENABLE_MC_ADDR_LIST,
 	WNI_CFG_ENABLE_MCC_ADAPTIVE_SCHED,
 	WNI_CFG_DISABLE_LDPC_WITH_TXBF_AP,
 	WNI_CFG_AP_LINK_MONITOR_TIMEOUT,
@@ -871,10 +865,6 @@ enum {
 #define WNI_CFG_SHORT_GI_40MHZ_ENABLE    1
 #define WNI_CFG_SHORT_GI_40MHZ_DISABLE    0
 
-#define WNI_CFG_MAX_PS_POLL_STAMIN    0
-#define WNI_CFG_MAX_PS_POLL_STAMAX    255
-#define WNI_CFG_MAX_PS_POLL_STADEF    0
-
 #define WNI_CFG_SCAN_IN_POWERSAVE_STAMIN    0
 #define WNI_CFG_SCAN_IN_POWERSAVE_STAMAX    1
 #define WNI_CFG_SCAN_IN_POWERSAVE_STADEF    1
@@ -895,14 +885,6 @@ enum {
 #define WNI_CFG_WOWLAN_DISASSOC_ENABLE_STAMAX    1
 #define WNI_CFG_WOWLAN_DISASSOC_ENABLE_STADEF    1
 
-#define WNI_CFG_WOWLAN_MAX_MISSED_BEACON_STAMIN    0
-#define WNI_CFG_WOWLAN_MAX_MISSED_BEACON_STAMAX    65535
-#define WNI_CFG_WOWLAN_MAX_MISSED_BEACON_STADEF    40
-
-#define WNI_CFG_WOWLAN_MAX_SLEEP_PERIOD_STAMIN    0
-#define WNI_CFG_WOWLAN_MAX_SLEEP_PERIOD_STAMAX    65535
-#define WNI_CFG_WOWLAN_MAX_SLEEP_PERIOD_STADEF    65535
-
 #define WNI_CFG_IBSS_AUTO_BSSID_STAMIN    0
 #define WNI_CFG_IBSS_AUTO_BSSID_STAMAX    1
 #define WNI_CFG_IBSS_AUTO_BSSID_STADEF    1
@@ -962,10 +944,6 @@ enum {
 #define WNI_CFG_AP_KEEP_ALIVE_TIMEOUT_STAMAX    65535
 #define WNI_CFG_AP_KEEP_ALIVE_TIMEOUT_STADEF    20
 
-#define WNI_CFG_ENABLE_MC_ADDR_LIST_STAMIN    0
-#define WNI_CFG_ENABLE_MC_ADDR_LIST_STAMAX    1
-#define WNI_CFG_ENABLE_MC_ADDR_LIST_STADEF    0
-
 #define WNI_CFG_ENABLE_MCC_ADAPTIVE_SCHED_STAMIN    0
 #define WNI_CFG_ENABLE_MCC_ADAPTIVE_SCHED_STAMAX    1
 #define WNI_CFG_ENABLE_MCC_ADAPTIVE_SCHED_STADEF    0

+ 0 - 49
core/mac/src/cfg/cfgUtil/cfg.txt

@@ -2638,20 +2638,6 @@ NONE
 #ENUM ENABLE  1
 #ENUM DISABLE 0
 
-
-* *********************************************************
-*
-* Power Save Configuration
-*
-WNI_CFG_MAX_PS_POLL    I    4    5
-V    RW    NP
-LIM
-0     255     0
-NV    RW    NP
-LIM
-0     255     0
-
-
 WNI_CFG_NUM_BEACON_PER_RSSI_AVERAGE    I    4    5
 V    RW    NP
 LIM
@@ -2736,28 +2722,6 @@ NONE
 0     1     0
 
 
-WNI_CFG_WOWLAN_MAX_MISSED_BEACON   I    4    5
-V    RW    NP
-NONE
-0    65535    40
-NV    RW    NP
-NONE
-0    65535    40
-
-*
-* Timeout value in units of us. It requests
-* hardware to unconditionally wake up after
-* it has stayed in WoWLAN mode for some time.
-*
-WNI_CFG_WOWLAN_MAX_SLEEP_PERIOD   I    4    5
-V    RW    NP
-NONE
-0    65535    65535
-NV    RW    NP
-NONE
-0    65535    65535
-
-
 *
 * BA timeout in TUs, set to 1 minute = approx 58593 TUs
 * 16 bit wide
@@ -3642,19 +3606,6 @@ V    RW    NP
 HAL
 1    65535    20
 
-*
-* MC Addr List power control will be enabled if value is set to 1
-*
-*
-*
-WNI_CFG_ENABLE_MC_ADDR_LIST  I   4   0
-V    RW    NP
-HAL
-0    1     0
-V    RW    NP
-HAL
-0    1     0
-
 *
 * UC Filter will be enabled if value is set to 1
 *

+ 0 - 6
core/mac/src/cfg/cfg_param_name.c

@@ -126,13 +126,8 @@ const char *cfg_get_string(uint16_t cfg_id)
 	CASE_RETURN_STRING(WNI_CFG_VHT_160MHZ_UTILIZATION);
 	CASE_RETURN_STRING(WNI_CFG_MPDU_DENSITY);
 	CASE_RETURN_STRING(WNI_CFG_MAX_RX_AMPDU_FACTOR);
-	CASE_RETURN_STRING(WNI_CFG_MAX_PS_POLL);
 	CASE_RETURN_STRING(WNI_CFG_WOWLAN_UCAST_PATTERN_FILTER_ENABLE);
 	CASE_RETURN_STRING(WNI_CFG_WOWLAN_CHANNEL_SWITCH_ENABLE);
-	CASE_RETURN_STRING(WNI_CFG_WOWLAN_DEAUTH_ENABLE);
-	CASE_RETURN_STRING(WNI_CFG_WOWLAN_DISASSOC_ENABLE);
-	CASE_RETURN_STRING(WNI_CFG_WOWLAN_MAX_MISSED_BEACON);
-	CASE_RETURN_STRING(WNI_CFG_WOWLAN_MAX_SLEEP_PERIOD);
 	CASE_RETURN_STRING(WNI_CFG_IBSS_AUTO_BSSID);
 	CASE_RETURN_STRING(WNI_CFG_WPS_ENABLE);
 	CASE_RETURN_STRING(WNI_CFG_WPS_STATE);
@@ -148,7 +143,6 @@ const char *cfg_get_string(uint16_t cfg_id)
 	CASE_RETURN_STRING(WNI_CFG_ASSOC_STA_LIMIT);
 	CASE_RETURN_STRING(WNI_CFG_ENABLE_LTE_COEX);
 	CASE_RETURN_STRING(WNI_CFG_AP_KEEP_ALIVE_TIMEOUT);
-	CASE_RETURN_STRING(WNI_CFG_ENABLE_MC_ADDR_LIST);
 	CASE_RETURN_STRING(WNI_CFG_ENABLE_MCC_ADAPTIVE_SCHED);
 	CASE_RETURN_STRING(WNI_CFG_DISABLE_LDPC_WITH_TXBF_AP);
 	CASE_RETURN_STRING(WNI_CFG_AP_LINK_MONITOR_TIMEOUT);

+ 0 - 31
core/mac/src/cfg/cfg_proc_msg.c

@@ -493,12 +493,6 @@ cgstatic cfg_static[CFG_PARAM_MAX_NUM] = {
 	WNI_CFG_MAX_RX_AMPDU_FACTOR_STAMIN,
 	WNI_CFG_MAX_RX_AMPDU_FACTOR_STAMAX,
 	WNI_CFG_MAX_RX_AMPDU_FACTOR_STAMAX},
-	{WNI_CFG_MAX_PS_POLL,
-	CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
-	CFG_CTL_NTF_LIM,
-	WNI_CFG_MAX_PS_POLL_STAMIN,
-	WNI_CFG_MAX_PS_POLL_STAMAX,
-	WNI_CFG_MAX_PS_POLL_STADEF},
 	{WNI_CFG_SCAN_IN_POWERSAVE,
 	CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
 	CFG_CTL_NTF_LIM,
@@ -515,26 +509,6 @@ cgstatic cfg_static[CFG_PARAM_MAX_NUM] = {
 	WNI_CFG_WOWLAN_CHANNEL_SWITCH_ENABLE_STAMIN,
 	WNI_CFG_WOWLAN_CHANNEL_SWITCH_ENABLE_STAMAX,
 	WNI_CFG_WOWLAN_CHANNEL_SWITCH_ENABLE_STADEF},
-	{WNI_CFG_WOWLAN_DEAUTH_ENABLE,
-	CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
-	WNI_CFG_WOWLAN_DEAUTH_ENABLE_STAMIN,
-	WNI_CFG_WOWLAN_DEAUTH_ENABLE_STAMAX,
-	WNI_CFG_WOWLAN_DEAUTH_ENABLE_STADEF},
-	{WNI_CFG_WOWLAN_DISASSOC_ENABLE,
-	CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
-	WNI_CFG_WOWLAN_DISASSOC_ENABLE_STAMIN,
-	WNI_CFG_WOWLAN_DISASSOC_ENABLE_STAMAX,
-	WNI_CFG_WOWLAN_DISASSOC_ENABLE_STADEF},
-	{WNI_CFG_WOWLAN_MAX_MISSED_BEACON,
-	CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
-	WNI_CFG_WOWLAN_MAX_MISSED_BEACON_STAMIN,
-	WNI_CFG_WOWLAN_MAX_MISSED_BEACON_STAMAX,
-	WNI_CFG_WOWLAN_MAX_MISSED_BEACON_STADEF},
-	{WNI_CFG_WOWLAN_MAX_SLEEP_PERIOD,
-	CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
-	WNI_CFG_WOWLAN_MAX_SLEEP_PERIOD_STAMIN,
-	WNI_CFG_WOWLAN_MAX_SLEEP_PERIOD_STAMAX,
-	WNI_CFG_WOWLAN_MAX_SLEEP_PERIOD_STADEF},
 	{WNI_CFG_IBSS_AUTO_BSSID,
 	CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
 	WNI_CFG_IBSS_AUTO_BSSID_STAMIN,
@@ -617,11 +591,6 @@ cgstatic cfg_static[CFG_PARAM_MAX_NUM] = {
 	WNI_CFG_AP_KEEP_ALIVE_TIMEOUT_STAMIN,
 	WNI_CFG_AP_KEEP_ALIVE_TIMEOUT_STAMAX,
 	WNI_CFG_AP_KEEP_ALIVE_TIMEOUT_STADEF},
-	{WNI_CFG_ENABLE_MC_ADDR_LIST,
-	CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
-	WNI_CFG_ENABLE_MC_ADDR_LIST_STAMIN,
-	WNI_CFG_ENABLE_MC_ADDR_LIST_STAMAX,
-	WNI_CFG_ENABLE_MC_ADDR_LIST_STADEF},
 	{WNI_CFG_ENABLE_MCC_ADAPTIVE_SCHED,
 	CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
 	WNI_CFG_ENABLE_MCC_ADAPTIVE_SCHED_STAMIN,

+ 0 - 6
core/wma/inc/wma.h

@@ -693,7 +693,6 @@ struct wma_version_info {
  * @wow_enable_cmd_sent: is wow enable command sent to fw
  * @deauth_enable: is deauth wakeup enable/disable
  * @disassoc_enable: is disassoc wakeup enable/disable
- * @bmiss_enable: is bmiss wakeup enable/disable
  * @gtk_pdev_enable: is GTK based wakeup enable/disable
  * @gtk_err_enable: is GTK error wakeup enable/disable
  * @lphb_cache: lphb cache
@@ -707,7 +706,6 @@ struct wma_wow {
 	bool wow_enable_cmd_sent;
 	bool deauth_enable;
 	bool disassoc_enable;
-	bool bmiss_enable;
 	bool gtk_err_enable[WMA_MAX_SUPPORTED_BSS];
 };
 
@@ -1110,8 +1108,6 @@ struct wma_valid_channels {
  * @pe_roam_synch_cb: pe callback for firmware Roam Sync events
  * @wmi_cmd_rsp_wake_lock: wmi command response wake lock
  * @wmi_cmd_rsp_runtime_lock: wmi command response bus lock
- * @apf_enabled: Is APF enabled in firmware?
- * @apf_packet_filter_enable: Is APF filter enabled om host?
  * @active_uc_apf_mode: Setting that determines how APF is applied in
  *   active mode for uc packets
  * @active_mc_bc_apf_mode: Setting that determines how APF is applied in
@@ -1261,8 +1257,6 @@ typedef struct {
 		enum sir_roam_op_code reason);
 	qdf_wake_lock_t wmi_cmd_rsp_wake_lock;
 	qdf_runtime_lock_t wmi_cmd_rsp_runtime_lock;
-	bool apf_enabled;
-	bool apf_packet_filter_enable;
 	enum active_apf_mode active_uc_apf_mode;
 	enum active_apf_mode active_mc_bc_apf_mode;
 	struct wma_ini_config ini_config;

+ 0 - 1
core/wma/inc/wma_tgt_cfg.h

@@ -198,7 +198,6 @@ struct wma_tgt_cfg {
 #endif
 	uint8_t ap_arpns_support;
 	uint32_t fine_time_measurement_cap;
-	bool apf_enabled;
 #ifdef FEATURE_WLAN_RA_FILTERING
 	bool is_ra_rate_limit_enabled;
 #endif

+ 4 - 16
core/wma/src/wma_dev_if.c

@@ -2419,23 +2419,11 @@ struct cdp_vdev *wma_vdev_attach(tp_wma_handle wma_handle,
 	wma_handle->interfaces[vdev_id].ptrn_match_enable =
 		wma_handle->ptrn_match_enable_all_vdev ? true : false;
 
-	if (wlan_cfg_get_int(mac, WNI_CFG_WOWLAN_DEAUTH_ENABLE, &cfg_val)
-	    != QDF_STATUS_SUCCESS)
-		wma_handle->wow.deauth_enable = true;
-	else
-		wma_handle->wow.deauth_enable = cfg_val ? true : false;
-
-	if (wlan_cfg_get_int(mac, WNI_CFG_WOWLAN_DISASSOC_ENABLE, &cfg_val)
-	    != QDF_STATUS_SUCCESS)
-		wma_handle->wow.disassoc_enable = true;
-	else
-		wma_handle->wow.disassoc_enable = cfg_val ? true : false;
+	wma_handle->wow.deauth_enable =
+		ucfg_pmo_is_wowlan_deauth_enabled(wma_handle->psoc);
 
-	if (wlan_cfg_get_int(mac, WNI_CFG_WOWLAN_MAX_MISSED_BEACON, &cfg_val)
-	    != QDF_STATUS_SUCCESS)
-		wma_handle->wow.bmiss_enable = true;
-	else
-		wma_handle->wow.bmiss_enable = cfg_val ? true : false;
+	wma_handle->wow.disassoc_enable =
+		ucfg_pmo_is_wowlan_disassoc_enabled(wma_handle->psoc);
 
 	qdf_mem_copy(wma_handle->interfaces[vdev_id].addr,
 		     self_sta_req->self_mac_addr,

+ 15 - 15
core/wma/src/wma_main.c

@@ -3138,6 +3138,7 @@ QDF_STATUS wma_open(struct wlan_objmgr_psoc *psoc,
 	bool val = 0;
 	void *cds_context;
 	target_resource_config *wlan_res_cfg;
+	enum pmo_wow_enable_type wow_enable;
 
 	WMA_LOGD("%s: Enter", __func__);
 
@@ -3292,10 +3293,9 @@ QDF_STATUS wma_open(struct wlan_objmgr_psoc *psoc,
 
 	wma_handle->max_station = cds_cfg->max_station;
 	wma_handle->max_bssid = cds_cfg->max_bssid;
-	wma_handle->ssdp = cds_cfg->ssdp;
-	wma_handle->enable_mc_list = cds_cfg->enable_mc_list;
-	wma_handle->apf_packet_filter_enable =
-		cds_cfg->apf_packet_filter_enable;
+	wma_handle->ssdp = ucfg_pmo_is_ssdp_enabled(wma_handle->psoc);
+	wma_handle->enable_mc_list =
+		ucfg_pmo_is_mc_addr_list_enabled(wma_handle->psoc);
 	wma_handle->active_uc_apf_mode = cds_cfg->active_uc_apf_mode;
 	wma_handle->active_mc_bc_apf_mode = cds_cfg->active_mc_bc_apf_mode;
 	wma_handle->link_stats_results = NULL;
@@ -3506,10 +3506,12 @@ QDF_STATUS wma_open(struct wlan_objmgr_psoc *psoc,
 	 * 3 - Legacy Powersave + Deepsleep Enabled
 	 * 4 - QPower + Deepsleep Enabled
 	 */
-	wma_handle->powersave_mode = cds_cfg->powersave_offload_enabled;
+	wma_handle->powersave_mode =
+			ucfg_pmo_power_save_offload_enabled(wma_handle->psoc);
 	wma_handle->staMaxLIModDtim = cds_cfg->sta_maxlimod_dtim;
-	wma_handle->staModDtim = cds_cfg->sta_mod_dtim;
-	wma_handle->staDynamicDtim = cds_cfg->sta_dynamic_dtim;
+	wma_handle->staModDtim = ucfg_pmo_get_sta_mod_dtim(wma_handle->psoc);
+	wma_handle->staDynamicDtim =
+			ucfg_pmo_get_sta_dynamic_dtim(wma_handle->psoc);
 
 	/*
 	 * Value of cds_cfg->wow_enable can be,
@@ -3519,10 +3521,11 @@ QDF_STATUS wma_open(struct wlan_objmgr_psoc *psoc,
 	 * 3 - Enable both magic patter and pattern byte match on
 	 *     all interfaces.
 	 */
+	wow_enable = ucfg_pmo_get_wow_enable(wma_handle->psoc);
 	wma_handle->wow.magic_ptrn_enable =
-		(cds_cfg->wow_enable & 0x01) ? true : false;
+		(wow_enable & 0x01) ? true : false;
 	wma_handle->ptrn_match_enable_all_vdev =
-		(cds_cfg->wow_enable & 0x02) ? true : false;
+		(wow_enable & 0x02) ? true : false;
 
 	/* register for install key completion event */
 	wmi_unified_register_event_handler(wma_handle->wmi_handle,
@@ -3599,7 +3602,7 @@ QDF_STATUS wma_open(struct wlan_objmgr_psoc *psoc,
 	wma_handle->bandcapability = cds_cfg->bandcapability;
 
 	/* Register PWR_SAVE_FAIL event only in case of recovery(1) */
-	if (cds_cfg->auto_power_save_fail_mode ==
+	if (ucfg_pmo_get_auto_power_fail_mode(wma_handle->psoc) ==
 	    PMO_FW_TO_SEND_WOW_IND_ON_PWR_FAILURE) {
 		wmi_unified_register_event_handler(wma_handle->wmi_handle,
 			wmi_pdev_chip_pwr_save_failure_detect_event_id,
@@ -5557,7 +5560,6 @@ static void wma_update_hdd_cfg(tp_wma_handle wma_handle)
 	tgt_cfg.lpss_support = wma_handle->lpss_support;
 #endif /* WLAN_FEATURE_LPSS */
 	tgt_cfg.ap_arpns_support = wma_handle->ap_arpns_support;
-	tgt_cfg.apf_enabled = wma_handle->apf_enabled;
 	tgt_cfg.dfs_cac_offload = wma_handle->is_dfs_offloaded;
 	tgt_cfg.rcpi_enabled = wma_handle->rcpi_enabled;
 	wma_update_ra_rate_limit(wma_handle, &tgt_cfg);
@@ -5651,11 +5653,11 @@ static void wma_init_scan_fw_mode_config(struct wlan_objmgr_psoc *psoc,
 #ifdef FEATURE_WLAN_RA_FILTERING
 static void wma_update_ra_limit(tp_wma_handle wma_handle)
 {
-	if (wma_handle->apf_enabled)
+	if (ucfg_pmo_is_apf_enabled(wma_handle->psoc))
 		wma_handle->IsRArateLimitEnabled = false;
 }
 #else
-static void wma_update_ra__limit(tp_wma_handle handle)
+static void wma_update_ra_limit(tp_wma_handle handle)
 {
 }
 #endif
@@ -5885,8 +5887,6 @@ int wma_rx_service_ready_event(void *handle, uint8_t *cmd_param_info,
 	wma_handle->ap_arpns_support =
 		wmi_service_enabled(wmi_handle, wmi_service_ap_arpns_offload);
 
-	wma_handle->apf_enabled = (wma_handle->apf_packet_filter_enable &&
-		wmi_service_enabled(wmi_handle, wmi_service_apf_offload));
 	wma_update_ra_limit(wma_handle);
 
 	if (wmi_service_enabled(wmi_handle, wmi_service_csa_offload)) {

+ 7 - 14
core/wma/src/wma_power.c

@@ -52,6 +52,7 @@
 #include "ol_fw.h"
 
 #include "wma_internal.h"
+#include "wlan_pmo_ucfg_api.h"
 
 /**
  * wma_unified_modem_power_state() - set modem power state to fw
@@ -583,28 +584,20 @@ static QDF_STATUS wma_set_force_sleep(tp_wma_handle wma,
 		rx_wake_policy = WMI_STA_PS_RX_WAKE_POLICY_POLL_UAPSD;
 		tx_wake_threshold = WMI_STA_PS_TX_WAKE_THRESHOLD_NEVER;
 
-		if (wlan_cfg_get_int(mac, WNI_CFG_MAX_PS_POLL,
-				     &cfg_data_val) != QDF_STATUS_SUCCESS) {
-			QDF_TRACE(QDF_MODULE_ID_WMA, QDF_TRACE_LEVEL_ERROR,
-				  "Failed to get value for WNI_CFG_MAX_PS_POLL");
-		}
-		if (cfg_data_val)
-			pspoll_count = (uint32_t) cfg_data_val;
+		if (ucfg_pmo_get_max_ps_poll(mac->psoc))
+			pspoll_count =
+				(uint32_t)ucfg_pmo_get_max_ps_poll(mac->psoc);
 		else
 			pspoll_count = WMA_DEFAULT_MAX_PSPOLL_BEFORE_WAKE;
 
 		psmode = WMI_STA_PS_MODE_ENABLED;
 	} else {
 		/* Ps Poll Wake Policy */
-		if (wlan_cfg_get_int(mac, WNI_CFG_MAX_PS_POLL,
-				     &cfg_data_val) != QDF_STATUS_SUCCESS) {
-			QDF_TRACE(QDF_MODULE_ID_WMA, QDF_TRACE_LEVEL_ERROR,
-				  "Failed to get value for WNI_CFG_MAX_PS_POLL");
-		}
-		if (cfg_data_val) {
+		if (ucfg_pmo_get_max_ps_poll(mac->psoc)) {
 			/* Ps Poll is enabled */
 			rx_wake_policy = WMI_STA_PS_RX_WAKE_POLICY_POLL_UAPSD;
-			pspoll_count = (uint32_t) cfg_data_val;
+			pspoll_count =
+				(uint32_t)ucfg_pmo_get_max_ps_poll(mac->psoc);
 			tx_wake_threshold = WMI_STA_PS_TX_WAKE_THRESHOLD_NEVER;
 		} else {
 			rx_wake_policy = WMI_STA_PS_RX_WAKE_POLICY_WAKE;