xref: /wlan-driver/qcacld-3.0/components/pmo/dispatcher/inc/wlan_pmo_common_cfg.h (revision 5113495b16420b49004c444715d2daae2066e7dc) !
1 /*
2  * Copyright (c) 2012-2021 The Linux Foundation. All rights reserved.
3  * Copyright (c) 2021-2024 Qualcomm Innovation Center, Inc. All rights reserved.
4  *
5  * Permission to use, copy, modify, and/or distribute this software for
6  * any purpose with or without fee is hereby granted, provided that the
7  * above copyright notice and this permission notice appear in all
8  * copies.
9  *
10  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
11  * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
12  * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
13  * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
14  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
15  * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
16  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
17  * PERFORMANCE OF THIS SOFTWARE.
18  */
19 
20 #ifndef WLAN_PMO_COMMON_CFG_H__
21 #define WLAN_PMO_COMMON_CFG_H__
22 
23 #include "wlan_pmo_common_public_struct.h"
24 
25 #ifdef CONNECTION_ROAMING_CFG
26 # define CONDTIMSKIPPING_NUMBER_MIN 0
27 # define CONDTIMSKIPPING_NUMBER_MAX 10
28 # define CONDTIMSKIPPING_NUMBER_DEFAULT 3
29 #else
30 # define CONDTIMSKIPPING_NUMBER_MIN 0
31 # define CONDTIMSKIPPING_NUMBER_MAX 10
32 # define CONDTIMSKIPPING_NUMBER_DEFAULT 0
33 #endif
34 
35 /*
36  * <ini>
37  * hostArpOffload - Enable/disable host ARP offload
38  * @Min: 0
39  * @Max: 1
40  * @Default: 1
41  *
42  * This ini is used to enable/disable firmware's capability of sending ARP
43  * response to clients.
44  *
45  * Usage: External
46  *
47  * </ini>
48  */
49 #define CFG_PMO_ENABLE_HOST_ARPOFFLOAD CFG_INI_BOOL( \
50 	"hostArpOffload", \
51 	1, \
52 	"enable/disable host ARP offload")
53 
54 /*
55  * <ini>
56  * gHwFilterMode - configure hardware filter for DTIM mode
57  * @Min: 0
58  * @Max: 3
59  * @Default: 1
60  *
61  * The hardware filter is only effective in DTIM mode. Use this configuration
62  * to blanket drop broadcast/multicast packets at the hardware level, without
63  * waking up the firmware
64  *
65  * Takes a bitmap of frame types to drop
66  * @E.g.
67  *	# disable feature
68  *	gHwFilterMode=0
69  *	# drop all broadcast frames, except ARP (default)
70  *	gHwFilterMode=1
71  *	# drop all multicast frames, except ICMPv6
72  *	gHwFilterMode=2
73  *	# drop all broadcast and multicast frames, except ARP and ICMPv6
74  *	gHwFilterMode=3
75  *
76  * Related: N/A
77  *
78  * Usage: Internal/External
79  *
80  * </ini>
81  */
82 #define CFG_PMO_HW_FILTER_MODE CFG_INI_UINT( \
83 	"gHwFilterMode", \
84 	0, \
85 	3, \
86 	1, \
87 	CFG_VALUE_OR_DEFAULT, \
88 	"hardware filter for DTIM mode")
89 
90 /*
91  * <ini>
92  * ssdp - Enable/disable SSDP
93  * @Min: 0
94  * @Max: 1
95  * @Default: 1
96  *
97  * This ini is used to enable/disable Simple Service Discovery Protocol(SSDP).
98  *
99  * Usage: External
100  *
101  * </ini>
102  */
103 #define CFG_PMO_ENABLE_HOST_SSDP CFG_INI_BOOL( \
104 	"ssdp", \
105 	1, \
106 	"Enable/disable ssdp")
107 
108 /*
109  * <ini>
110  * hostNSOffload - Enable/disable NS offload
111  * @Min: 0
112  * @Max: 1
113  * @Default: 1
114  *
115  * This ini is used to enable/disable NS offload.
116  *
117  * Usage: External
118  *
119  * </ini>
120  */
121 #define CFG_PMO_ENABLE_HOST_NSOFFLOAD CFG_INI_BOOL( \
122 	"hostNSOffload", \
123 	1, \
124 	"Enable/disable NS offload")
125 
126 /*
127  * <ini>
128  * CFG_PMO_ENABLE_IGMP_OFFLOAD - Enable/disable igmp offload
129  * @Min: 0
130  * @Max: 1
131  * @Default: 0
132  *
133  * This ini is used to enable/disable igmp offload feature to fw.
134  *
135  * Usage: External
136  *
137  * </ini>
138  */
139 #define CFG_PMO_ENABLE_IGMP_OFFLOAD CFG_INI_BOOL( \
140 	"igmp_offload_enable", \
141 	0, \
142 	"Enable/disable IGMP offload")
143 
144 /*
145  * <ini>
146  * gEnableDynamicDTIM - Enable Dynamic DTIM
147  * @Min: 0
148  * @Max: 10
149  * @Default: 0
150  *
151  * This ini is used to enable/disable dynamic DTIM.
152  *
153  * 0 - Disable Dynamic DTIM
154  * 1 to 10 - SLM will switch to DTIM specified here when host suspends and
155  *          switch DTIM1 when host resumes
156  *
157  * Usage: External
158  *
159  * </ini>
160  */
161 #define CFG_PMO_ENABLE_DYNAMIC_DTIM CFG_INI_UINT( \
162 	"gEnableDynamicDTIM", \
163 	0, \
164 	10, \
165 	0, \
166 	CFG_VALUE_OR_DEFAULT, \
167 	"Enable Dynamic DTIM")
168 
169 /*
170  * <ini>
171  * gEnableModulatedDTIM/ConDTIMSkipping_Number - Enable/Disable modulated DTIM
172  * feature
173  * @Min: 0
174  * @Max: 10
175  * @Default: 0
176  *
177  * This ini is used to enable/disable modulated DTIM feature.
178  *
179  * 0 - Disable modulated DTIM.
180  * 1 to 10 - The maximum No. of modulated DTIM period used for calculating the
181  * target listen interval.
182  *
183  * The target listen interval will be updated to firmware when host driver is
184  * setting the suspend DTIM parameters.
185  *
186  * This configuration will be ignored when dynamic DTIM is enabled(by
187  * gEnableDynamicDTIM).
188  *
189  * Usage: External
190  *
191  * </ini>
192  */
193 
194 /*
195  * <ini>
196  * gEnableModulatedDTIM/ConDTIMSkipping_Number - Enable/Disable modulated DTIM
197  * feature
198  * @Min: 0
199  * @Max: 10
200  * @Default: 0
201  *
202  * This ini is used to enable/disable modulated DTIM feature.
203  *
204  * 0 - Disable modulated DTIM.
205  * 1 to 10 - The maximum No. of modulated DTIM period used for calculating the
206  * target listen interval.
207  *
208  * The target listen interval will be updated to firmware when host driver is
209  * setting the suspend DTIM parameters.
210  *
211  * This configuration will be ignored when dynamic DTIM is enabled(by
212  * gEnableDynamicDTIM).
213  *
214  * Usage: External
215  *
216  * </ini>
217  */
218 #define CFG_PMO_ENABLE_MODULATED_DTIM CFG_INI_UINT( \
219 	"gEnableModulatedDTIM ConDTIMSkipping_Number", \
220 	CONDTIMSKIPPING_NUMBER_MIN, \
221 	CONDTIMSKIPPING_NUMBER_MAX, \
222 	CONDTIMSKIPPING_NUMBER_DEFAULT, \
223 	CFG_VALUE_OR_DEFAULT, \
224 	"Enable/disable modulated DTIM feature")
225 
226 /*
227  * <ini>
228  * gMCAddrListEnable - Enable/disable multicast MAC address list feature
229  * @Min: 0
230  * @Max: 1
231  * @Default: 1
232  *
233  * This ini is used to enable/disable multicast MAC address list feature.
234  * Default: Enable
235  *
236  * Related: None
237  *
238  * Supported Feature: STA
239  *
240  * Usage: Internal/External
241  *
242  * </ini>
243  */
244 #define CFG_PMO_MC_ADDR_LIST_ENABLE CFG_INI_BOOL( \
245 	"gMCAddrListEnable", \
246 	1, \
247 	"Enable/disable multicast MAC address list feature")
248 
249 /*
250  * <ini>
251  * gOptimizedPowerManagement - Optimized Power Management
252  * @Min: 0
253  * @Max: 2
254  * @Default: 1
255  *
256  * This ini is used to set Optimized Power Management configuration:
257  * Current values of gOptimizedPowerManagement:
258  * 0 -> Disable optimized power management
259  * 1 -> Enable optimized power management
260  * 2 -> User Defined
261  *
262  * Related: None
263  *
264  * Supported Feature: Optimized Power Management
265  *
266  * Usage: External
267  *
268  * </ini>
269  */
270 #define CFG_PMO_POWERSAVE_MODE CFG_INI_UINT( \
271 	"gOptimizedPowerManagement", \
272 	0, \
273 	2, \
274 	1, \
275 	CFG_VALUE_OR_DEFAULT, \
276 	"Optimized Power Management")
277 
278 /*
279  * <ini>
280  * enable_mod_dtim_on_system_suspend - enable modulated DTIM
281  * on system suspend display off case
282  * @Min: 0
283  * @Max: 1
284  * @Default: 0
285  *
286  * This ini is used to set modulated DTIM configuration:
287  * Current values of enable_mod_dtim_on_system_suspend:
288  * 0 -> Modulated DTIM will be enabled for every wow entry
289  *      (RTPM wow + System suspend wow)
290  * 1 -> Enable modulated  DTIM only for System suspend wow.
291  *      For RTPM wow, the device will stay in DTIM 1 (non-modulated DTIM)
292  *
293  * Related: None
294  *
295  * Supported Feature: Modulated DTIM
296  *
297  * Usage: External
298  *
299  * </ini>
300  */
301 #define CFG_PMO_MOD_DTIM_ON_SYS_SUSPEND CFG_INI_BOOL( \
302 	"enable_mod_dtim_on_system_suspend", \
303 	0, \
304 	"Modulated DTIM on System suspend wow")
305 
306 /*
307  * <ini>
308  * gEnableForcedDTIM - Enable/Disable forced DTIM feature
309  * @Min: 0
310  * @Max: 1
311  * @Default: 0
312  *
313  * This ini is used to enable/disable forced DTIM feature.
314  *
315  * 0 - Disable forced DTIM.
316  * 1 - Enable forced DTIM
317  *
318  *
319  * Usage: External
320  *
321  * </ini>
322  */
323 #define CFG_PMO_ENABLE_FORCED_DTIM CFG_INI_BOOL( \
324 	"gEnableForcedDTIM", \
325 	0, \
326 	"Enable/disable Forced DTIM feature")
327 
328 /*
329  * <ini>
330  * gMaxPsPoll - Max powersave poll
331  * @Min: 0
332  * @Max: 255
333  * @Default: 0
334  *
335  * This ini is used to set max powersave poll.
336  *
337  * Usage: External
338  *
339  * </ini>
340  */
341 #define CFG_PMO_MAX_PS_POLL CFG_INI_UINT( \
342 		"gMaxPsPoll", \
343 		0, \
344 		255, \
345 		0, \
346 		CFG_VALUE_OR_DEFAULT, \
347 		"Max powersave poll")
348 
349 /*
350  * <ini>
351  * gEnableWoW - Enable/Disable WoW
352  * @Min: 0
353  * @Max: 3
354  * @Default: 3
355  *
356  * This ini is used to enable/disable WoW. Configurations are as follows:
357  * 0 - Disable both magic pattern match and pattern byte match.
358  * 1 - Enable magic pattern match on all interfaces.
359  * 2 - Enable pattern byte match on all interfaces.
360  * 3 - Enable both magic pattern and pattern byte match on all interfaces.
361  *
362  * Related: None
363  *
364  * Supported Feature: Power Save
365  *
366  * Usage: External
367  *
368  * </ini>
369  */
370 #define CFG_PMO_WOW_ENABLE CFG_INI_UINT("gEnableWoW", \
371 					0, 3, 3, \
372 					CFG_VALUE_OR_DEFAULT, \
373 					"Enable WoW Support")
374 
375 /*
376  * <ini>
377  * gSuspendMode - Suspend mode configuration
378  * @Min: 0
379  * @Max: 3
380  * @Default: 2
381  *
382  * This ini is used to set suspend mode. Configurations are as follows:
383  * 0 - Does not support suspend.
384  * 1 - Legency suspend mode, PDEV suspend.
385  * 2 - WOW suspend mode.
386  * 3 - Shutdown wlan while suspend.
387  *
388  * Related: None
389  *
390  * Supported Feature: Power Save
391  *
392  * Usage: External
393  *
394  * </ini>
395  */
396 #define CFG_PMO_SUSPEND_MODE CFG_INI_UINT("gSuspendMode", \
397 					  0, 3, 2, \
398 					  CFG_VALUE_OR_DEFAULT, \
399 					  "Suspend mode")
400 
401 /*
402  * <ini>
403  * gActiveModeOffload - Active offload mode configuration
404  * @Min: 0
405  * @Max: 1
406  * @Default: 1
407  *
408  * When set to 1 active mode offload will be enabled.
409  *
410  * If active mode offload is enabled then all applicable data offload/filtering
411  * is enabled immediately in FW once config is available in WLAN driver and FW
412  * caches this configuration across suspend/resume;
413  * If active mode offload is disabled then all applicable data offload/filtering
414  * is enabled during cfg80211 suspend and disabled during cfg80211 resume.
415  *
416  * Supported Feature: Active mode offload
417  *
418  * Usage: External
419  *
420  * </ini>
421  */
422 #define CFG_PMO_ACTIVE_MODE CFG_INI_BOOL("gActiveModeOffload", \
423 					 1, \
424 					 "Enable active mode offload")
425 
426 /*
427  * <ini>
428  * g_auto_detect_power_failure_mode - Auto detect power save failure mode
429  * @Min: PMO_FW_TO_CRASH_ON_PWR_FAILURE
430  * @Max: PMO_AUTO_PWR_FAILURE_DETECT_DISABLE
431  * @Default: PMO_FW_TO_CRASH_ON_PWR_FAILURE
432  *
433  * Specifies the behavior of FW in case of CHIP_POWER_SAVE_FAIL_DETECTED event
434  *
435  * Supported Feature: Auto detect power save failure
436  *
437  * Usage: External
438  *
439  * </ini>
440  */
441 #define CFG_PMO_PWR_FAILURE CFG_INI_UINT("g_auto_detect_power_failure_mode", \
442 					 PMO_FW_TO_CRASH_ON_PWR_FAILURE, \
443 					 PMO_AUTO_PWR_FAILURE_DETECT_DISABLE, \
444 					 PMO_FW_TO_CRASH_ON_PWR_FAILURE, \
445 					 CFG_VALUE_OR_DEFAULT, \
446 					 "Auto detect power save failure mode")
447 
448 /*
449  * <ini>
450  * gEnableSapSuspend - Enable/disable SAP Suspend
451  * @Min: 0
452  * @Max: 1
453  * @Default: 0
454  *
455  *
456  * Related: None
457  *
458  * Supported Feature: SAP
459  *
460  * Usage: External
461  *
462  * </ini>
463  */
464 #define CFG_ENABLE_SAP_SUSPEND CFG_INI_BOOL( \
465 			"gEnableSapSuspend", \
466 			1, \
467 			"Enable/disable SAP Suspend")
468 
469 /*
470  * <ini>
471  * g_wow_data_inactivity_timeout - Data activity timeout in wow mode.
472  * @Min: 1
473  * @Max: 255
474  * @Default: 50
475  *
476  * This ini is used to set data inactivity timeout in wow mode and
477  * the value is honored in firmware when User defined OPM is set
478  *
479  * Supported Feature: inactivity timeout in wow mode
480  *
481  * Usage: External
482  *
483  * </ini>
484  */
485 #define CFG_PMO_WOW_DATA_INACTIVITY_TIMEOUT CFG_INI_UINT( \
486 		"g_wow_data_inactivity_timeout", \
487 		1, \
488 		255, \
489 		50, \
490 		CFG_VALUE_OR_DEFAULT, \
491 		"Data activity timeout in wow mode")
492 /*
493  * <ini>
494  * g_wow_spec_wake_interval - OPM Speculative wake interval in wow mode.
495  * @Min: 0
496  * @Max: 255
497  * @Default: 0
498  *
499  * This ini is used to set OPM speculative wake interval in wow mode and
500  * the value is honored in firmware when User defined OPM is set
501  *
502  * Supported Feature: OPM Speculative wake interval in wow mode
503  *
504  * Usage: External
505  *
506  * </ini>
507  */
508 #define CFG_PMO_WOW_SPEC_WAKE_INTERVAL CFG_INI_UINT( \
509 		"g_wow_spec_wake_interval", \
510 		0, \
511 		255, \
512 		0, \
513 		CFG_VALUE_OR_DEFAULT, \
514 		"Speculative wake interval in wow mode")
515 /*
516  * <ini>
517  * gRArateLimitInterval - RA rate limit interval
518  * @Min: 60
519  * @Max: 3600
520  * @Default: 60
521  * This ini is used to set RA rate limit interval.
522  *
523  * Usage: External
524  *
525  * </ini>
526  */
527 #define CFG_RA_RATE_LIMIT_INTERVAL CFG_INI_UINT( \
528 	"gRArateLimitInterval", \
529 	60, \
530 	3600, \
531 	60, \
532 	CFG_VALUE_OR_DEFAULT, \
533 	"RA rate limit interval")
534 
535 /*
536  * <ini>
537  * enable_bus_suspend_in_sap_mode - enable PCIe bus suspend as part of
538  * platform system suspend for SAP with one or more clients connected
539  * @Min: 0
540  * @Max: 1
541  * @Default: 1
542  *
543  * This ini is used to PCIe bus suspend as part of platform system suspend for
544  * SAP with one or more clients connected
545  *
546  * 0: PCIe Bus suspend is not supported in SAP mode with one or more clients
547  * connected
548  * 1: PCIe Bus suspend is supported in SAP mode with one or more clients
549  * connected
550  * Related: SAP clients connected bus suspend(D3 WoW) is only supported
551  *          when IPA is disabled
552  *
553  * Supported Feature: Power Save
554  *
555  * Usage: Internal
556  *
557  * </ini>
558  */
559 #define CFG_ENABLE_BUS_SUSPEND_IN_SAP_MODE CFG_INI_BOOL( \
560 		"enable_bus_suspend_in_sap_mode", \
561 		1, \
562 		"This ini is used to enable bus suspend in SAP mode")
563 
564 /*
565  * <ini>
566  * enable_bus_suspend_in_go_mode - enable PCIe bus suspend as part of
567  * platform system suspend for P2PGO with one or more clients connected
568  * @Min: 0
569  * @Max: 1
570  * @Default: 1
571  *
572  * This ini is used to PCIe bus suspend as part of platform system suspend for
573  * P2PGO with one or more clients connected
574  *
575  * 0: PCIe Bus suspend is not supported in P2PGO mode with one or more clients
576  * connected
577  * 1: PCIe Bus suspend is supported in P2PGO mode with one or more clients
578  * connected
579  * Related: P2P GO clients connected bus suspend(D3 WoW) is only supported
580  *          when IPA is disabled
581  *
582  * Supported Feature: Power Save
583  *
584  * Usage: Internal
585  *
586  * </ini>
587  */
588 #define CFG_ENABLE_BUS_SUSPEND_IN_GO_MODE CFG_INI_BOOL( \
589 		"enable_bus_suspend_in_go_mode", \
590 		1, \
591 		"This ini is used to enable bus suspend in P2PGO mode")
592 
593 /*
594  * <ini>
595  * igmp_version_support - Configure igmp version
596  * @Min: 0x00000000
597  * @Max: 0x7
598  * @Default: 0x7
599  *
600  * This ini is used to configure version while offloading igmp
601  *
602  * Bit 0: support igmp version 1
603  * Bit 1: support igmp version 2
604  * Bit 2: support igmp version 3
605  */
606 #define CFG_IGMP_VERSION_SUPPORT CFG_INI_UINT( \
607 		"igmp_version_support", \
608 		0x00000000, \
609 		0x7, \
610 		0x7, \
611 		CFG_VALUE_OR_DEFAULT, \
612 		"configure igmp offload support version")
613 
614 /*
615  * <ini>
616  * disconnect_sap_tdls_in_wow - disconnect sap tdls in wow
617  * @Min: 0
618  * @Max: 1
619  * @Default: 0
620  *
621  * Due to the limitation on third party platform, add ini to take
622  * special care of the below wow case to avoid fw crash.
623  * The sap/p2p_go shall kick out all the connected sta/p2p_gc and
624  * then go to suspend considering d0wow/d3wow is not supported.
625  * Teardown tdls link proactively since auto sleep mechanism not
626  * supported.
627  *
628  * Usage: External
629  *
630  * </ini>
631  */
632 #define CFG_DISCONNECT_SAP_TDLS_IN_WOW CFG_INI_BOOL( \
633 		"disconnect_sap_tdls_in_wow", \
634 		0, \
635 		"disconnect sap tdls in wow")
636 
637 /*
638  * <ini>
639  * action_on_page_fault - Host action on page fault wakeup event
640  * @Min: PMO_PF_HOST_ACTION_NO_OP
641  * @Max: PMO_PF_HOST_ACTION_MAX - 1
642  * @Default: PMO_PF_HOST_ACTION_NO_OP
643  *
644  * This INI is used to determine host behavior on WOW_REASON_PAGE_FAULT wakeup
645  * event.
646  * For ex: If action is to trigger SSR, min_pagefault_wakeups_for_action = 30,
647  * interval_for_pagefault_wakeup_counts = 180000 (3 mins) and
648  * ssr_frequency_on_pagefault = 3600000 (1hr), in this case host will trigger
649  * the SSR if it receives 30 wakeups because of pagefaults in 3 mins, host will
650  * trigger SSR only once in 1 hr. Once the SSR is triggered, host will not
651  * trigger next SSR for next 1 hr even if it receives 30 wakeups from fw because
652  * of pagefaults. This 1 hr time is getting monitored from last SSR.
653  *
654  * </ini>
655  */
656 #define CFG_HOST_ACTION_ON_PAGEFAULT CFG_INI_UINT( \
657 		"action_on_page_fault", \
658 		PMO_PF_HOST_ACTION_NO_OP, \
659 		PMO_PF_HOST_ACTION_MAX - 1, \
660 		PMO_PF_HOST_ACTION_NO_OP, \
661 		CFG_VALUE_OR_DEFAULT, \
662 		"Host action on FW pagefault event")
663 
664 /*
665  * <ini>
666  * min_pagefault_wakeups_for_action - Min number of pagefaults wakeups to
667  * initiate host action.
668  * @Min: 2
669  * @Max: 255
670  * @Default: 30
671  *
672  * This ini is used to get the count of max pagefault wakeups to reach before
673  * host takes action.
674  * If the count is reached within the wakeup time interval host will either
675  * trigger SSR (within the limits of SSR trigger freq) or may notify APPS or
676  * ignore if no action is set.
677  * For ex: If SSR on pagefault = 1, min_pagefault_wakeups_for_action = 30,
678  * interval_for_pagefault_wakeup_counts = 180000 (3 mins) and
679  * ssr_frequency_on_pagefault = 3600000 (1hr), in this case host will trigger
680  * the SSR if it receives 30 wakeups because of pagefaults in 3 mins, host will
681  * trigger SSR only once in 1 hr. Once the SSR is triggered, host will not
682  * trigger next SSR for next 1 hr even if it receives 30 wakeups from fw because
683  * of pagefaults. This 1 hr time is getting monitored from last SSR.
684  */
685 #define CFG_MIN_PAGEFAULT_WAKEUPS_FOR_ACTION CFG_INI_UINT( \
686 		"min_pagefault_wakeups_for_action", \
687 		2, \
688 		255, \
689 		30, \
690 		CFG_VALUE_OR_DEFAULT, \
691 		"Max number of pagefaults wakeups to trigger SSR")
692 
693 /*
694  * <ini>
695  * interval_for_pagefault_wakeup_counts - Time in ms in which
696  * min_pagefault_wakeups_for_action needs to be monitored
697  * @Min: 60000 (1min)
698  * @Max: 18000000 (5hrs)
699  * @Default: 180000 (3 mins)
700  *
701  * This ini define time in ms in which min_pagefault_wakeups_for_host action
702  * needs to be monitored. If in interval_for_pagefault_wakeup_counts ms,
703  * min_pagefault_wakeups_for_action is reached host will trigger the action.
704  * SSR is triggered only once in ssr_frequency_on_pagefault interval.
705  * For ex: If SSR on pagefault = 1, min_pagefault_wakeups_for_action = 30,
706  * interval_for_pagefault_wakeup_counts = 180000 (3 mins) and
707  * ssr_frequency_on_pagefault = 3600000 (1hr), in this case host will trigger
708  * the SSR if it receives 30 wakeups because of pagefaults in 3 mins, host will
709  * trigger SSR only once in 1 hr. Once the SSR is triggered, host will not
710  * trigger next SSR for next 1 hr even if it receives 30 wakeups from fw because
711  * of pagefaults. This 1 hr time is getting monitored from last SSR.
712  */
713 #define CFG_INTERVAL_FOR_PAGEFAULT_WAKEUP_COUNT CFG_INI_UINT( \
714 	"interval_for_pagefault_wakeup_counts", \
715 	60000, \
716 	18000000, \
717 	180000, \
718 	CFG_VALUE_OR_DEFAULT, \
719 	"Interval in which min_pagefault_wakeups_for_ssr needs to be monitored")
720 
721 /*
722  * <ini>
723  * ssr_frequency_on_pagefault - Time in ms in which host needs to trigger the
724  * next SSR
725  * @Min: 60000
726  * @Max: 7200000
727  * @Default: 3600000 (1 hr)
728  *
729  * This ini define time in ms in which next SSR needs to be triggered if
730  * min_pagefault_wakeups_for_action is reached in
731  * interval_for_pagefault_wakeup_counts time.
732  * INIs max_pagefault_wakeups_for_ssr, interval_for_pagefault_wakeup_counts and
733  * ssr_frequency_on_pagefault needs to be considered together.
734  * For ex: If enable_ssr_on_page_fault = 1, min_pagefault_wakeups_for_ssr = 30,
735  * interval_for_pagefault_wakeup_counts = 180000 (3 mins) and
736  * ssr_frequency_on_pagefault = 3600000 (1hr), in this case host will trigger
737  * the SSR if it receives 30 wakeups because of pagefaults in 3 mins, host will
738  * trigger SSR only once in 1 hr. Once the SSR is triggered, host will not
739  * trigger next SSR for next 1 hr even if it receives 30 wakeups from fw because
740  * of pagefaults. This 1 hr time is getting monitored from last SSR.
741  */
742 #define CFG_SSR_FREQUENCY_ON_PAGEFAULT CFG_INI_UINT( \
743 	"ssr_frequency_on_pagefault", \
744 	60000, \
745 	7200000, \
746 	3600000, \
747 	CFG_VALUE_OR_DEFAULT, \
748 	"Interval in which min_pagefault_wakeups_for_ssr needs to be monitored")
749 
750 /*
751  * <ini>
752  * gEnableIcmpOffload - Enable/disable ICMP offload
753  * @Min: 0
754  * @Max: 1
755  * @Default: 0
756  *
757  * This ini is used to enable/disable firmware's capability of sending ICMP
758  * response to clients.
759  *
760  * Supported Feature: STA
761  *
762  * Usage: External
763  *
764  * </ini>
765  */
766 #define CFG_ENABLE_ICMP_OFFLOAD CFG_INI_BOOL( \
767 	"gEnableIcmpOffload", \
768 	0, \
769 	"enable/disable ICMP offload")
770 
771 #define CFG_PMO_COMMON_ALL \
772 	CFG(CFG_ENABLE_SAP_SUSPEND) \
773 	CFG(CFG_PMO_ENABLE_HOST_ARPOFFLOAD) \
774 	CFG(CFG_PMO_HW_FILTER_MODE) \
775 	CFG(CFG_PMO_ENABLE_HOST_SSDP) \
776 	CFG(CFG_PMO_ENABLE_HOST_NSOFFLOAD) \
777 	CFG(CFG_PMO_ENABLE_IGMP_OFFLOAD) \
778 	CFG(CFG_PMO_ENABLE_DYNAMIC_DTIM) \
779 	CFG(CFG_PMO_ENABLE_MODULATED_DTIM) \
780 	CFG(CFG_PMO_ENABLE_FORCED_DTIM) \
781 	CFG(CFG_PMO_MC_ADDR_LIST_ENABLE) \
782 	CFG(CFG_PMO_POWERSAVE_MODE) \
783 	CFG(CFG_PMO_MAX_PS_POLL) \
784 	CFG(CFG_PMO_WOW_ENABLE) \
785 	CFG(CFG_PMO_SUSPEND_MODE) \
786 	CFG(CFG_PMO_ACTIVE_MODE) \
787 	CFG(CFG_PMO_PWR_FAILURE) \
788 	CFG(CFG_PMO_WOW_DATA_INACTIVITY_TIMEOUT) \
789 	CFG(CFG_PMO_WOW_SPEC_WAKE_INTERVAL) \
790 	CFG(CFG_RA_RATE_LIMIT_INTERVAL) \
791 	CFG(CFG_PMO_MOD_DTIM_ON_SYS_SUSPEND) \
792 	CFG(CFG_ENABLE_BUS_SUSPEND_IN_SAP_MODE) \
793 	CFG(CFG_ENABLE_BUS_SUSPEND_IN_GO_MODE)\
794 	CFG(CFG_DISCONNECT_SAP_TDLS_IN_WOW) \
795 	CFG(CFG_IGMP_VERSION_SUPPORT) \
796 	CFG(CFG_ENABLE_ICMP_OFFLOAD) \
797 	CFG(CFG_HOST_ACTION_ON_PAGEFAULT) \
798 	CFG(CFG_MIN_PAGEFAULT_WAKEUPS_FOR_ACTION) \
799 	CFG(CFG_INTERVAL_FOR_PAGEFAULT_WAKEUP_COUNT) \
800 	CFG(CFG_SSR_FREQUENCY_ON_PAGEFAULT)
801 
802 #endif /* WLAN_PMO_COMMON_CFG_H__ */
803