1 /*
2  * Copyright (c) 2012-2021 The Linux Foundation. All rights reserved.
3  * Copyright (c) 2022-2023 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 /**
21  * DOC: This file contains centralized definitions of converged configuration.
22  */
23 
24 #ifndef __CFG_FWOL_GENERIC_H
25 #define __CFG_FWOL_GENERIC_H
26 
27 
28 /*
29  *
30  * <ini>
31  * gEnableANI - Enable Adaptive Noise Immunity
32  * @Min: 0
33  * @Max: 1
34  * @Default: 1
35  *
36  * This ini is used to enable or disable Adaptive Noise Immunity.
37  *
38  * Related: None
39  *
40  * Supported Feature: ANI
41  *
42  * Usage: External
43  *
44  * </ini>
45  */
46 #define CFG_ENABLE_ANI CFG_INI_BOOL( \
47 		"gEnableANI", \
48 		1, \
49 		"Enable/Disable Adaptive Noise Immunity")
50 
51 /*
52  * <ini>
53  * gSetRTSForSIFSBursting - set rts for sifs bursting
54  * @Min: 0
55  * @Max: 1
56  * @Default: 0
57  *
58  * This ini set rts for sifs bursting
59  *
60  * Usage: External
61  *
62  * </ini>
63  */
64 #define CFG_SET_RTS_FOR_SIFS_BURSTING CFG_INI_BOOL( \
65 		"gSetRTSForSIFSBursting", \
66 		0, \
67 		"Set rts for sifs bursting")
68 
69 #ifdef WLAN_FEATURE_OFDM_SCRAMBLER_SEED
70 /*
71  * <ini>
72  * gEnableUpdateScramSeed - Enable/Disable OFDM scambler seed
73  * @Min: 0
74  * @Max: 1
75  * @Default: 0
76  *
77  * Usage: External
78  *
79  * </ini>
80  */
81 #define CFG_ENABLE_OFDM_SCRAMBLER_SEED CFG_INI_BOOL( \
82 	"gEnableUpdateScramSeed", \
83 	false, \
84 	"Enable OFDM Scrambler Seed")
85 
86 #define ENABLE_OFDM_SCRAMBLER_SEED CFG(CFG_ENABLE_OFDM_SCRAMBLER_SEED)
87 #else
88 #define ENABLE_OFDM_SCRAMBLER_SEED
89 #endif
90 
91 /*
92  * <ini>
93  * sifs_burst_mask - Set sifs burst mask
94  * @Min: 0
95  * @Max: 3
96  * @Default: 1
97  *
98  * This ini is used to set 11n and legacy(non 11n/wmm)
99  * sifs burst. Especially under running multi stream
100  * traffic test case, it can be useful to let the low
101  * priority AC, or legacy mode device, or the specified
102  * AC to aggressively contend air medium, then have a
103  * obvious improvement of throughput. Bit0 is the switch
104  * of sifs burst, it must be set if want to enable sifs
105  * burst, Bit1 is for legacy mode.
106  * Supported configuration:
107  * 0: disabled
108  * 1: enabled, but disabled for legacy mode
109  * 3: all enabled
110  *
111  * Usage: External
112  *
113  * </ini>
114  */
115 #define CFG_SET_SIFS_BURST CFG_INI_UINT( \
116 		"sifs_burst_mask", \
117 		0, \
118 		3, \
119 		1, \
120 		CFG_VALUE_OR_DEFAULT, \
121 		"Set SIFS burst mask")
122 
123 /*
124  * <ini>
125  * gMaxMPDUsInAMPDU - max mpdus in ampdu
126  * @Min: 0
127  * @Max: 64
128  * @Default: 0
129  *
130  * This ini configure max mpdus in ampdu
131  *
132  * Usage: External
133  *
134  * </ini>
135  */
136 #define CFG_MAX_MPDUS_IN_AMPDU CFG_INI_INT( \
137 		"gMaxMPDUsInAMPDU", \
138 		0, \
139 		64, \
140 		0, \
141 		CFG_VALUE_OR_DEFAULT, \
142 		"This ini configure max mpdus in ampdu")
143 
144 /*
145  * <ini>
146  * gEnableFastPwrTransition - Configuration for fast power transition
147  * @Min: 0
148  * @Max: 2
149  * @Default: 0
150  *
151  * This ini supported values:
152  * 0x0: Phy register retention disabled (Higher timeline, Good for power)
153  * 0x1: Phy register retention statically enabled
154  * 0x2: Phy register retention enabled/disabled dynamically
155  *
156  * Usage: Internal
157  *
158  * </ini>
159  */
160 #define CFG_ENABLE_PHY_REG CFG_INI_UINT( \
161 		"gEnableFastPwrTransition", \
162 		0x0, \
163 		0x2, \
164 		0x0, \
165 		CFG_VALUE_OR_DEFAULT, \
166 		"Configuration for fast power transition")
167 
168 /*
169  * <ini>
170  * gUpperBrssiThresh - Sets Upper threshold for beacon RSSI
171  * @Min: 36
172  * @Max: 66
173  * @Default: 46
174  *
175  * This ini sets Upper beacon threshold for beacon RSSI in FW
176  * Used to reduced RX chainmask in FW, once this threshold is
177  * reached FW will switch to 1X1 (Single chain).
178  *
179  * Supported Feature: STA
180  *
181  * Usage: External
182  *
183  * </ini>
184  */
185 #define CFG_UPPER_BRSSI_THRESH CFG_INI_UINT( \
186 		"gUpperBrssiThresh", \
187 		36, \
188 		66, \
189 		46, \
190 		CFG_VALUE_OR_DEFAULT, \
191 		"Sets Upper threshold for beacon RSSI")
192 
193 /*
194  * <ini>
195  * gLowerBrssiThresh - Sets Lower threshold for beacon RSSI
196  * @Min: 6
197  * @Max: 36
198  * @Default: 26
199  *
200  * This ini sets Lower beacon threshold for beacon RSSI in FW
201  * Used to increase RX chainmask in FW, once this threshold is
202  * reached FW will switch to 2X2 chain.
203  *
204  * Supported Feature: STA
205  *
206  * Usage: External
207  *
208  * </ini>
209  */
210 #define CFG_LOWER_BRSSI_THRESH CFG_INI_UINT( \
211 		"gLowerBrssiThresh", \
212 		6, \
213 		36, \
214 		26, \
215 		CFG_VALUE_OR_DEFAULT, \
216 		"Sets Lower threshold for beacon RSSI")
217 
218 /*
219  * <ini>
220  * gDtim1ChRxEnable - Enable/Disable DTIM 1Chrx feature
221  * @Min: 0
222  * @Max: 1
223  * @Default: 1
224  *
225  * This ini Enables or Disables DTIM 1CHRX feature in FW
226  * If this flag is set FW enables shutting off one chain
227  * while going to power save.
228  *
229  * Supported Feature: STA
230  *
231  * Usage: External
232  *
233  * </ini>
234  */
235 #define CFG_DTIM_1CHRX_ENABLE CFG_INI_BOOL( \
236 		"gDtim1ChRxEnable", \
237 		1, \
238 		"Enable/Disable DTIM 1Chrx feature")
239 
240 /*
241  * <ini>
242  * gEnableAlternativeChainmask - Enable Co-Ex Alternative Chainmask
243  * @Min: 0
244  * @Max: 1
245  * @Default: 0
246  *
247  * This ini is used to enable/disable the Co-ex Alternative Chainmask
248  * feature via the wmi_pdev_param_alternative_chainmask_scheme
249  * firmware parameter.
250  *
251  * Related: None
252  *
253  * Supported Feature: STA
254  *
255  * Usage: Internal/External
256  *
257  * </ini>
258  */
259 #define CFG_ENABLE_COEX_ALT_CHAINMASK CFG_INI_BOOL( \
260 		"gEnableAlternativeChainmask", \
261 		0, \
262 		"Enable Co-Ex Alternative Chainmask")
263 
264 /*
265  * <ini>
266  * gEnableSmartChainmask - Enable Smart Chainmask
267  * @Min: 0
268  * @Max: 1
269  * @Default: 0
270  *
271  * This ini is used to enable/disable the Smart Chainmask feature via
272  * the wmi_pdev_param_smart_chainmask_scheme firmware parameter.
273  *
274  * Related: None
275  *
276  * Supported Feature: STA
277  *
278  * Usage: Internal/External
279  *
280  * </ini>
281  */
282 #define CFG_ENABLE_SMART_CHAINMASK CFG_INI_BOOL( \
283 		"gEnableSmartChainmask", \
284 		0, \
285 		"Enable/disable the Smart Chainmask feature")
286 
287 /*
288  * <ini>
289  * gEnableRTSProfiles - It will use configuring different RTS profiles
290  * @Min: 0
291  * @Max: 66
292  * @Default: 33
293  *
294  * This ini used for configuring different RTS profiles
295  * to firmware.
296  * Following are the valid values for the rts profile:
297  * RTSCTS_DISABLED				0
298  * NOT_ALLOWED					1
299  * NOT_ALLOWED					2
300  * RTSCTS_DISABLED				16
301  * RTSCTS_ENABLED_4_SECOND_RATESERIES		17
302  * CTS2SELF_ENABLED_4_SECOND_RATESERIES		18
303  * RTSCTS_DISABLED				32
304  * RTSCTS_ENABLED_4_SWRETRIES			33
305  * CTS2SELF_ENABLED_4_SWRETRIES			34
306  * NOT_ALLOWED					48
307  * NOT_ALLOWED					49
308  * NOT_ALLOWED					50
309  * RTSCTS_DISABLED				64
310  * RTSCTS_ENABLED_4_ALL_RATESERIES		65
311  * CTS2SELF_ENABLED_4_ALL_RATESERIES		66
312  *
313  * Related: None
314  *
315  * Supported Feature: STA
316  *
317  * Usage: Internal/External
318  *
319  * </ini>
320  */
321 #define CFG_ENABLE_FW_RTS_PROFILE CFG_INI_INT( \
322 		"gEnableRTSProfiles", \
323 		0, \
324 		66, \
325 		33, \
326 		CFG_VALUE_OR_DEFAULT, \
327 		"It is used to configure different RTS profiles")
328 
329 /* <ini>
330  * gFwDebugLogLevel - Firmware debug log level
331  * @Min: 0
332  * @Max: 255
333  * @Default: 3
334  *
335  * This option controls the level of firmware debug log. Default value is
336  * DBGLOG_WARN, which is to enable error and warning logs.
337  *
338  * Related: None
339  *
340  * Supported Features: Debugging
341  *
342  * Usage: Internal
343  *
344  * </ini>
345  */
346 #define CFG_ENABLE_FW_DEBUG_LOG_LEVEL CFG_INI_INT( \
347 		"gFwDebugLogLevel", \
348 		0, \
349 		255, \
350 		3, \
351 		CFG_VALUE_OR_DEFAULT, \
352 		"enable error and warning logs by default")
353 
354 /* <ini>
355  * gFwDebugLogType - Firmware debug log type
356  * @Min: 0
357  * @Max: 255
358  * @Default: 3
359  *
360  * This option controls how driver is to give the firmware logs to net link
361  * when cnss_diag service is started.
362  *
363  * Related: None
364  *
365  * Supported Features: Debugging
366  *
367  * Usage: Internal
368  *
369  * </ini>
370  */
371 #define CFG_ENABLE_FW_LOG_TYPE CFG_INI_INT( \
372 		"gFwDebugLogType", \
373 		0, \
374 		255, \
375 		3, \
376 		CFG_VALUE_OR_DEFAULT, \
377 		"Default value to be given to the net link cnss_diag service")
378 
379 /*
380  * <ini>
381  * gFwDebugModuleLoglevel - modulized firmware debug log level
382  * @Min: N/A
383  * @Max: N/A
384  * @Default: N/A
385  *
386  * This ini is used to set modulized firmware debug log level.
387  * FW module log level input string format looks like below:
388  * gFwDebugModuleLoglevel="<FW Module ID>,<Log Level>,..."
389  * For example:
390  * gFwDebugModuleLoglevel="1,0,2,1,3,2,4,3,5,4,6,5,7,6"
391  * The above input string means:
392  * For FW module ID 1 enable log level 0
393  * For FW module ID 2 enable log level 1
394  * For FW module ID 3 enable log level 2
395  * For FW module ID 4 enable log level 3
396  * For FW module ID 5 enable log level 4
397  * For FW module ID 6 enable log level 5
398  * For FW module ID 7 enable log level 6
399  * For valid values of log levels check enum DBGLOG_LOG_LVL and
400  * for valid values of module ids check enum WLAN_MODULE_ID.
401  *
402  * Related: None
403  *
404  * Supported Feature: Debugging
405  *
406  * Usage: Internal/External
407  *
408  * </ini>
409  */
410 
411 #define FW_MODULE_LOG_LEVEL_STRING_LENGTH  (512)
412 #define CFG_ENABLE_FW_MODULE_LOG_LEVEL CFG_INI_STRING( \
413 	"gFwDebugModuleLoglevel", \
414 	0, \
415 	FW_MODULE_LOG_LEVEL_STRING_LENGTH, \
416 	"1,1,2,1,3,1,4,1,5,1,11,1,9,1,13,1,14,1,17,1,18,1,19,1,22,1,26,1,28,1,"\
417 	"29,1,31,1,36,1,38,1,46,1,47,1,50,1,52,1,53,1,56,1,60,1,61,1,113,1", \
418 	"Set modulized firmware debug log level")
419 
420 /*
421  * <ini>
422  * gFwDebugWowModuleLoglevel - modulized firmware wow debug log level
423  * @Min: N/A
424  * @Max: N/A
425  * @Default: N/A
426  *
427  * This ini is used to set modulized firmware wow debug log level.
428  * FW module log level input string format looks like below:
429  * gFwDebugWowModuleLoglevel="<FW Module ID>,<Log Level>,..."
430  * For example:
431  * gFwDebugWowModuleLoglevel="1,0,2,1,3,2,4,3,5,4,6,5,7,6"
432  * The above input string means:
433  * For FW module ID 1 enable log level 0
434  * For FW module ID 2 enable log level 1
435  * For FW module ID 3 enable log level 2
436  * For FW module ID 4 enable log level 3
437  * For FW module ID 5 enable log level 4
438  * For FW module ID 6 enable log level 5
439  * For FW module ID 7 enable log level 6
440  * For valid values of log levels check enum DBGLOG_LOG_LVL and
441  * for valid values of module ids check enum WLAN_MODULE_ID.
442  *
443  * Related: None
444  *
445  * Supported Feature: Debugging
446  *
447  * Usage: External
448  *
449  * </ini>
450  */
451 #define CFG_ENABLE_FW_WOW_MODULE_LOG_LEVEL CFG_INI_STRING( \
452 	"gFwDebugWowModuleLoglevel", \
453 	0, \
454 	FW_MODULE_LOG_LEVEL_STRING_LENGTH, \
455 	"1,3,5,3,18,1,19,3,31,1,36,1,57,3", \
456 	"Set modulized firmware wow debug log level")
457 
458 #ifdef FEATURE_WLAN_RA_FILTERING
459 /* <ini>
460  * gRAFilterEnable
461  * @Min: 0
462  * @Max: 1
463  * @Default: 1
464  *
465  * Related: None
466  *
467  * Usage: Internal
468  *
469  * </ini>
470  */
471 #define CFG_RA_FILTER_ENABLE CFG_INI_BOOL( \
472 		"gRAFilterEnable", \
473 		1, \
474 		"Enable RA Filter")
475 #else
476 #define CFG_RA_FILTER_ENABLE
477 #endif
478 
479 /* <ini>
480  * gtsf_gpio_pin
481  * @Min: 0
482  * @Max: 254
483  * @Default: 255
484  *
485  * GPIO pin to toggle when capture tsf
486  *
487  * Related: None
488  *
489  * Usage: Internal
490  *
491  * </ini>
492  */
493 #define CFG_SET_TSF_GPIO_PIN CFG_INI_INT( \
494 		"gtsf_gpio_pin", \
495 		0, \
496 		255, \
497 		255, \
498 		CFG_VALUE_OR_DEFAULT, \
499 		"GPIO pin to toggle when capture tsf")
500 
501 #ifdef WLAN_FEATURE_TSF_PLUS_EXT_GPIO_IRQ
502 /* <ini>
503  * gtsf_irq_host_gpio_pin
504  * @Min: 0
505  * @Max: 254
506  * @Default: 255
507  *
508  * TSF irq GPIO pin of host platform
509  *
510  * Related: None
511  *
512  * Usage: Internal
513  *
514  * </ini>
515  */
516 #define CFG_SET_TSF_IRQ_HOST_GPIO_PIN CFG_INI_INT( \
517 		"gtsf_irq_host_gpio_pin", \
518 		0, \
519 		255, \
520 		255, \
521 		CFG_VALUE_OR_DEFAULT, \
522 		"TSF irq GPIO pin of host platform")
523 
524 #define __CFG_SET_TSF_IRQ_HOST_GPIO_PIN CFG(CFG_SET_TSF_IRQ_HOST_GPIO_PIN)
525 #else
526 #define __CFG_SET_TSF_IRQ_HOST_GPIO_PIN
527 #endif
528 
529 #ifdef WLAN_FEATURE_TSF_PLUS_EXT_GPIO_SYNC
530 /*
531  * <ini>
532  * gtsf_sync_host_gpio_pin
533  * @Min: 0
534  * @Max: 254
535  * @Default: 255
536  *
537  * TSF sync GPIO pin of host platform
538  *
539  * The driver will use this gpio on host platform
540  * to drive the TSF sync pin on wlan chip.
541  * Toggling this gpio  will generate a strobe to fw
542  * for latching TSF.
543  *
544  * Related: None
545  *
546  * Usage: External
547  *
548  * </ini>
549  */
550 #define CFG_SET_TSF_SYNC_HOST_GPIO_PIN CFG_INI_UINT( \
551 		"gtsf_sync_host_gpio_pin", \
552 		0, \
553 		254, \
554 		255, \
555 		CFG_VALUE_OR_DEFAULT, \
556 		"TSF sync GPIO pin of host platform")
557 
558 #define __CFG_SET_TSF_SYNC_HOST_GPIO_PIN CFG(CFG_SET_TSF_SYNC_HOST_GPIO_PIN)
559 #else
560 #define __CFG_SET_TSF_SYNC_HOST_GPIO_PIN
561 #endif
562 
563 #if defined(WLAN_FEATURE_TSF) && defined(WLAN_FEATURE_TSF_PLUS)
564 /* <ini>
565  * g_enable_tsf_sync: Enable TSF sync feature
566  * @Min: 0
567  * @Max: 1
568  * @Default: 0
569  *
570  * Enable/disable periodic sync of TSF with firmware.
571  *
572  * Related: None
573  *
574  * Usage: External
575  *
576  * </ini>
577  */
578 #define CFG_TSF_SYNC_ENABLE CFG_INI_BOOL( \
579 		"g_enable_tsf_sync", \
580 		0, \
581 		"Enable TSF sync feature")
582 
583 /* <ini>
584  * gtsf_ptp_options: TSF Plus feature options
585  * @Min: 0
586  * @Max: 0xff
587  * @Default: 0xf
588  *
589  * CFG_SET_TSF_PTP_OPT_RX                    (0x1)
590  * CFG_SET_TSF_PTP_OPT_TX                    (0x2)
591  * CFG_SET_TSF_PTP_OPT_RAW                   (0x4)
592  * CFG_SET_TSF_DBG_FS                        (0x8)
593  * CFG_SET_TSF_PTP_OPT_TSF64_TX              (0x10)
594  * CFG_SET_TSF_PTP_SYNC_PERIOD               (0x20)
595  *
596  * Related: None
597  *
598  * Usage: Internal
599  *
600  * </ini>
601  */
602 #define CFG_SET_TSF_PTP_OPT_RX                    (0x1)
603 #define CFG_SET_TSF_PTP_OPT_TX                    (0x2)
604 #define CFG_SET_TSF_PTP_OPT_RAW                   (0x4)
605 #define CFG_SET_TSF_DBG_FS                        (0x8)
606 #define CFG_SET_TSF_PTP_OPT_TSF64_TX              (0x10)
607 #define CFG_SET_TSF_PTP_SYNC_PERIOD               (0x20)
608 
609 #define CFG_SET_TSF_PTP_OPT CFG_INI_UINT( \
610 		"gtsf_ptp_options", \
611 		0, \
612 		0xff, \
613 		0x2f, \
614 		CFG_VALUE_OR_DEFAULT, \
615 		"TSF Plus feature options")
616 
617 #define __CFG_SET_TSF_PTP_OPT \
618 		CFG(CFG_SET_TSF_PTP_OPT) \
619 		CFG(CFG_TSF_SYNC_ENABLE)
620 #else
621 #define __CFG_SET_TSF_PTP_OPT
622 #endif
623 
624 #if defined(WLAN_FEATURE_TSF_ACCURACY)
625 /* <ini>
626  * g_tsf_accuracy_configs: Enable TSF Accuracy Feature config parameters
627  * @Min: N/A
628  * @Max: N/A
629  * @Default: N/A
630  *
631  * This ini is to configure TSF Accuracy parameters.
632  * The list of mandate CFG_TSF_ACCURACY_CONFIG_LEN elements of type integer are
633  * specified with (,) delimiter.
634  * Param1: Enable/Disable TSF Accuracy Feature.
635  * Param2: GPIO to toggle on TSF sync done
636  * Param3: GPIO to raise pulse on specified period(TSF time domain)
637  * Param4: Periodicity of TSF pulse in milli seconds
638  * For example:
639  * g_tsf_accuracy_configs=1,430,431,100
640  *
641  * Related: None
642  *
643  * Usage: External
644  *
645  * </ini>
646  */
647 #define CFG_TSF_ACCURACY_CONFIG_LEN 4
648 #define CFG_TSF_ACCURACY_CONFIG_STR_LEN 128
649 #define CFG_TSF_ACCURACY_CONFIGS_DEF "0, -1, -1, 0"
650 #define CFG_TSF_ACCURACY_CONFIGS CFG_INI_STRING( \
651 		"g_tsf_accuracy_configs", \
652 		0, \
653 		CFG_TSF_ACCURACY_CONFIG_STR_LEN, \
654 		CFG_TSF_ACCURACY_CONFIGS_DEF, \
655 		"Configure TSF Accuracy parameters")
656 
657 #define __CFG_TSF_ACCURACY_CONFIGS \
658 		CFG(CFG_TSF_ACCURACY_CONFIGS)
659 #else
660 #define __CFG_TSF_ACCURACY_CONFIGS
661 #endif
662 
663 #ifdef DHCP_SERVER_OFFLOAD
664 /* <ini>
665  * gDHCPServerOffloadEnable
666  * @Min: 0
667  * @Max: 1
668  * @Default: 0
669  *
670  * DHCP Server offload support
671  *
672  * Related: None
673  *
674  * Usage: Internal
675  *
676  * </ini>
677  */
678 #define CFG_DHCP_SERVER_OFFLOAD_SUPPORT CFG_INI_BOOL( \
679 		"gDHCPServerOffloadEnable", \
680 		0, \
681 		"DHCP Server offload support")
682 
683 /* <ini>
684  * gDHCPMaxNumClients
685  * @Min: 1
686  * @Max: 8
687  * @Default: 8
688  *
689  * Number of DHCP server offload clients
690  *
691  * Related: None
692  *
693  * Usage: Internal
694  *
695  * </ini>
696  */
697 #define CFG_DHCP_SERVER_OFFLOAD_NUM_CLIENT CFG_INI_INT( \
698 		"gDHCPMaxNumClients", \
699 		1, \
700 		8, \
701 		8, \
702 		CFG_VALUE_OR_DEFAULT, \
703 		"Number of DHCP server offload clients")
704 
705 #define CFG_FWOL_DHCP \
706 		CFG(CFG_DHCP_SERVER_OFFLOAD_SUPPORT) \
707 		CFG(CFG_DHCP_SERVER_OFFLOAD_NUM_CLIENT)
708 
709 #else
710 #define CFG_FWOL_DHCP
711 #endif
712 
713 #ifdef WLAN_FEATURE_SAE
714 /*
715  * <ini>
716  * sae_enabled - Enable/Disable SAE support in driver
717  * @Min: 0
718  * @Max: 1
719  * @Default: 1
720  *
721  * This ini is used to enable/disable SAE support in driver
722  * Driver will update config to supplicant based on this config.
723  *
724  * Related: None
725  *
726  * Supported Feature: SAE
727  * Usage: External
728  *
729  * </ini>
730  */
731 
732 #define CFG_IS_SAE_ENABLED CFG_INI_BOOL( \
733 		"sae_enabled", \
734 		1, \
735 		"SAE feature control")
736 #define __CFG_IS_SAE_ENABLED CFG(CFG_IS_SAE_ENABLED)
737 #else
738 #define __CFG_IS_SAE_ENABLED
739 #endif
740 
741 /*
742  * <ini>
743  * gcmp_enabled - ini to enable/disable GCMP
744  * @Min: 0
745  * @Max: 1
746  * @Default: 1
747  *
748  * Currently Firmware update the sequence number for each TID with 2^3
749  * because of security issues. But with this PN mechanism, throughput drop
750  * is observed. With this ini FW takes the decision to trade off between
751  * security and throughput
752  *
753  * Supported Feature: STA/SAP/P2P
754  *
755  * Usage: External
756  *
757  * </ini>
758  */
759 
760 #define CFG_ENABLE_GCMP CFG_INI_BOOL( \
761 		"gcmp_enabled", \
762 		1, \
763 		"GCMP Feature control param")
764 
765 /*
766  * <ini>
767  * gTxSchDelay - Enable/Disable Tx sch delay
768  * @Min: 0
769  * @Max: 5
770  * @Default: 0
771  *
772  * Usage: Internal/External
773  *
774  * </ini>
775  */
776 #define CFG_TX_SCH_DELAY CFG_INI_UINT( \
777 		"gTxSchDelay", \
778 		0, \
779 		5, \
780 		0, \
781 		CFG_VALUE_OR_DEFAULT, \
782 		"Enable/Disable Tx sch delay")
783 
784 /*
785  * <ini>
786  * gEnableSecondaryRate - Enable/Disable Secondary Retry Rate feature subset
787  *
788  * @Min: 0x0
789  * @Max: 0x3F
790  * @Default: 0x17
791  *
792  * It is a 32 bit value such that the various bits represent as below -
793  * Bit-0 : is Enable/Disable Control for "PPDU Secondary Retry Support"
794  * Bit-1 : is Enable/Disable Control for "RTS Black/White-listing Support"
795  * Bit-2 : is Enable/Disable Control for "Higher MCS retry restriction
796  *         on XRETRY failures"
797  * Bit 3-5 : is "Xretry threshold" to use
798  * Bit 3~31 : reserved for future use.
799  *
800  * Usage: External
801  *
802  * </ini>
803  */
804 #define CFG_ENABLE_SECONDARY_RATE CFG_INI_UINT( \
805 		"gEnableSecondaryRate", \
806 		0, \
807 		0x3f, \
808 		0x17, \
809 		CFG_VALUE_OR_DEFAULT, \
810 		"Secondary Retry Rate feature subset control")
811 
812 /*
813  * <ini>
814  * sap_xlna_bypass - Enable/Disable xLNA bypass
815  * @Min: 0
816  * @Max: 1
817  * @Default: 0
818  *
819  * This ini is used to enable/disable SAP xLNA bypass in the FW
820  *
821  * Related: None
822  *
823  * Supported Feature: SAP
824  *
825  * Usage: Internal
826  *
827  * </ini>
828  */
829 
830 #define CFG_SET_SAP_XLNA_BYPASS CFG_INI_BOOL( \
831 		"xlna_bypass", \
832 		0, \
833 		"SAP xLNA bypass control")
834 
835 /*
836  * <ini>
837  * g_enable_ilp - ILP HW Block Configuration
838  * @Min: 0
839  * @Max: 3
840  * @Default: 2
841  *
842  * This ini is used to configure ILP HW block with various options
843  * 0: disable
844  * 1: perf settings
845  * 2: max power saving
846  * 3: balanced settings
847  *
848  * Related: none
849  *
850  * Supported Feature: STA/SAP
851  *
852  * Usage: Internal
853  *
854  * <ini>
855  */
856 
857 #define CFG_SET_ENABLE_ILP CFG_INI_UINT( \
858 		"g_enable_ilp", \
859 		0, \
860 		3, \
861 		1, \
862 		CFG_VALUE_OR_DEFAULT, \
863 		"ILP configuration")
864 
865 /*
866  *
867  * <ini>
868  * sap_sho_config - Bitmap to Enable/Disable SAP HW offload
869  * @Min: 0
870  * @Max: 3
871  * @Default: 0
872  *
873  * This INI is used to configure sap hw offload.
874  *
875  * bit-0: enable/disable SHO
876  * bit-1: enable for Sta connected state as well.
877  * bit-2 to bit-31: Reserved
878  *
879  * Related: None
880  *
881  * Supported Feature: SAP
882  * Usage: External
883  *
884  * </ini>
885  */
886 #define CFG_SAP_SHO_CONFIG CFG_INI_UINT(\
887 		"sap_sho_config", \
888 		0, \
889 		3, \
890 		1, \
891 		CFG_VALUE_OR_DEFAULT, \
892 		"enable SHO config")
893 
894 /*
895  * <ini>
896  * g_disable_hw_assist - Flag to disable HW assist feature
897  * @Default: 0
898  *
899  * This ini is used to enable/disable the HW assist feature in FW
900  *
901  * Related: none
902  *
903  * Supported Feature: STA/SAP
904  *
905  * Usage: External
906  *
907  * <ini>
908  */
909 
910 #define CFG_DISABLE_HW_ASSIST CFG_INI_BOOL( \
911 		"g_disable_hw_assist", \
912 		0, \
913 		"Disable HW assist feature in FW")
914 
915 /*
916  * <ini>
917  * g_enable_pci_gen - To enable pci gen switch
918  * @Default: 1
919  *
920  * Related: None
921  *
922  * Supported Feature: PCI
923  *
924  * Usage: External
925  *
926  * </ini>
927  */
928 
929 #define CFG_ENABLE_PCI_GEN CFG_INI_BOOL( \
930 		"g_enable_pci_gen", \
931 		1, \
932 		"enable pci gen")
933 
934 /*
935  * <ini>
936  * pcie_config - Ini to control pcie gen and lane params
937  * @Min: 0
938  * @Max: 4
939  * @Default: 0
940  *
941  * This ini is used to control to pcie gen and lane params
942  * 0 - FW controlled
943  * 1 - Force PCIe Gen and lane to max supported value
944  * 2 - Configure PCIE Gen and Lane based on MCS and BW
945  * 3 - Configure PCIE Gen and Lane based on TXRX tput using traffic monitor
946  * 4 - Allow PCIE Gen Speed and Lane width to be configured by host via
947  *     OEM data commands.
948  *
949  * Related: g_enable_pci_gen
950  *
951  * Supported Feature: PCI
952  *
953  * Usage: External
954  *
955  * </ini>
956  */
957 #define CFG_PCIE_CONFIG CFG_INI_UINT( \
958 				"pcie_config", \
959 				0, \
960 				4, \
961 				0, \
962 				CFG_VALUE_OR_DEFAULT, \
963 				"to control pcie gen and lane")
964 
965 #define CFG_FWOL_GENERIC_ALL \
966 	CFG_FWOL_DHCP \
967 	CFG(CFG_ENABLE_ANI) \
968 	CFG(CFG_SET_RTS_FOR_SIFS_BURSTING) \
969 	CFG(CFG_SET_SIFS_BURST) \
970 	CFG(CFG_MAX_MPDUS_IN_AMPDU) \
971 	CFG(CFG_ENABLE_PHY_REG) \
972 	CFG(CFG_UPPER_BRSSI_THRESH) \
973 	CFG(CFG_LOWER_BRSSI_THRESH) \
974 	CFG(CFG_DTIM_1CHRX_ENABLE) \
975 	CFG(CFG_ENABLE_COEX_ALT_CHAINMASK) \
976 	CFG(CFG_ENABLE_SMART_CHAINMASK) \
977 	CFG(CFG_ENABLE_FW_RTS_PROFILE) \
978 	CFG(CFG_ENABLE_FW_DEBUG_LOG_LEVEL) \
979 	CFG(CFG_ENABLE_FW_LOG_TYPE) \
980 	CFG(CFG_ENABLE_FW_MODULE_LOG_LEVEL) \
981 	CFG(CFG_RA_FILTER_ENABLE) \
982 	CFG(CFG_SET_TSF_GPIO_PIN) \
983 	__CFG_SET_TSF_IRQ_HOST_GPIO_PIN \
984 	__CFG_SET_TSF_SYNC_HOST_GPIO_PIN \
985 	__CFG_SET_TSF_PTP_OPT \
986 	__CFG_TSF_ACCURACY_CONFIGS \
987 	__CFG_IS_SAE_ENABLED \
988 	CFG(CFG_ENABLE_GCMP) \
989 	CFG(CFG_TX_SCH_DELAY) \
990 	CFG(CFG_ENABLE_SECONDARY_RATE) \
991 	CFG(CFG_SET_SAP_XLNA_BYPASS) \
992 	CFG(CFG_SET_ENABLE_ILP) \
993 	CFG(CFG_ENABLE_FW_WOW_MODULE_LOG_LEVEL) \
994 	CFG(CFG_SAP_SHO_CONFIG) \
995 	CFG(CFG_DISABLE_HW_ASSIST) \
996 	CFG(CFG_ENABLE_PCI_GEN) \
997 	CFG(CFG_PCIE_CONFIG) \
998 	ENABLE_OFDM_SCRAMBLER_SEED
999 
1000 #endif
1001