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 /**
21  * DOC: This file contains centralized definitions of converged configuration.
22  */
23 
24 #ifndef __HDD_CONFIG_H
25 #define __HDD_CONFIG_H
26 
27 #include "hdd_sar_safety_config.h"
28 
29 #if defined(CONFIG_HL_SUPPORT)
30 #include "wlan_tgt_def_config_hl.h"
31 #else
32 #include "wlan_tgt_def_config.h"
33 #endif
34 
35 #define CFG_QDF_TRACE_ENABLE_DEFAULT (0xffff)
36 #include <wlan_action_oui_public_struct.h>
37 
38 /**
39  * enum hdd_wext_control - knob for wireless extensions
40  * @hdd_wext_disabled: interface is completely disabled. An access
41  *      control error log will be generated for each attempted use.
42  * @hdd_wext_deprecated: interface is available but should not be
43  *      used. An access control warning log will be generated for each
44  *      use.
45  * @hdd_wext_enabled: interface is available without restriction. No
46  *      access control logs will be generated.
47  *
48  * enum hdd_wext_control is used to enable coarse grained control on
49  * wireless extensions ioctls. This control is used by configuration
50  * item private_wext_control.
51  *
52  */
53 enum hdd_wext_control {
54 	hdd_wext_disabled = 0,
55 	hdd_wext_deprecated = 1,
56 	hdd_wext_enabled = 2,
57 };
58 
59 /*
60  * <ini>
61  * private_wext_control - Private wireless extensions control
62  * @Min: 0
63  * @Max: 2
64  * @Default: 1
65  *
66  * Values are per enum hdd_wext_control.
67  * This ini is used to control access to private wireless extensions
68  * ioctls SIOCIWFIRSTPRIV (0x8BE0) thru SIOCIWLASTPRIV (0x8BFF). The
69  * functionality provided by some of these ioctls has been superseded
70  * by cfg80211 (either standard commands or vendor commands), but many
71  * of the private ioctls do not have a cfg80211-based equivalent, so
72  * by default support for these ioctls is deprecated.
73  *
74  * Related: None
75  *
76  * Supported Feature: All
77  *
78  * Usage: Internal/External
79  *
80  * </ini>
81  */
82 #define CFG_PRIVATE_WEXT_CONTROL CFG_INI_UINT( \
83 			"private_wext_control", \
84 			hdd_wext_disabled, \
85 			hdd_wext_enabled, \
86 			hdd_wext_deprecated, \
87 			CFG_VALUE_OR_DEFAULT, \
88 			"Private WEXT Control")
89 
90 enum hdd_dot11_mode {
91 	eHDD_DOT11_MODE_AUTO = 0,       /* covers all things we support */
92 	eHDD_DOT11_MODE_abg,    /* 11a/b/g only, no HT, no proprietary */
93 	eHDD_DOT11_MODE_11b,
94 	eHDD_DOT11_MODE_11g,
95 	eHDD_DOT11_MODE_11n,
96 	eHDD_DOT11_MODE_11g_ONLY,
97 	eHDD_DOT11_MODE_11n_ONLY,
98 	eHDD_DOT11_MODE_11b_ONLY,
99 	eHDD_DOT11_MODE_11ac_ONLY,
100 	eHDD_DOT11_MODE_11ac,
101 	eHDD_DOT11_MODE_11a,
102 	eHDD_DOT11_MODE_11ax_ONLY,
103 	eHDD_DOT11_MODE_11ax,
104 #ifdef WLAN_FEATURE_11BE
105 	eHDD_DOT11_MODE_11be,
106 	eHDD_DOT11_MODE_11be_ONLY,
107 #endif
108 };
109 
110 /*
111  * <ini>
112  * gDot11Mode - Phymode of vdev
113  * @Min: 0 (auto)
114  * @Max: 12 (11ax)
115  * @Default: 12 (11ax)
116  *
117  * This ini is used to set Phy Mode (auto, b, g, n, etc/) Valid values are
118  * 0-12, with 0 = Auto, 12 = 11ax.
119  *
120  * Related: None.
121  *
122  * Supported Feature: SAP
123  *
124  * Usage: Internal/External
125  *
126  * </ini>
127  */
128  #define CFG_HDD_DOT11_MODE CFG_INI_UINT( \
129 			"gDot11Mode", \
130 			eHDD_DOT11_MODE_AUTO, \
131 			eHDD_DOT11_MODE_11ax, \
132 			eHDD_DOT11_MODE_11ax, \
133 			CFG_VALUE_OR_DEFAULT, \
134 			"dot11 mode")
135 
136 #ifdef FEATURE_SET
137   /*
138    * <ini>
139    * get_wifi_features  - Get wifi features info from fw
140    * @Min: 0
141    * @Max: 1
142    * @Default: 0
143    *
144    * This ini is used to enable feature to get wifi supported features from fw
145    *
146    * Related: None
147    *
148    * Supported Feature: All
149    *
150    * Usage: External
151    *
152    * </ini>
153    */
154 #define CFG_GET_WIFI_FEATURES CFG_INI_BOOL( \
155 		"get_wifi_features", \
156 		0, \
157 		"Get wifi features")
158 #define CFG_GET_WIFI_FEATURES_ALL CFG(CFG_GET_WIFI_FEATURES)
159 #else
160 #define CFG_GET_WIFI_FEATURES_ALL
161 #endif
162 
163 #ifdef FEATURE_RUNTIME_PM
164 /*
165  * <ini>
166  * cpu_cxpc_threshold - PM QOS threshold
167  * @Min: 0
168  * @Max: 15000
169  * @Default: 10000
170  *
171  * This ini is used to set PM QOS threshold value
172  *
173  * Related: None.
174  *
175  * Supported Feature: ALL
176  *
177  * Usage: External
178  *
179  * </ini>
180  */
181  #define CFG_CPU_CXPC_THRESHOLD CFG_INI_UINT( \
182 			"cpu_cxpc_threshold", \
183 			0, \
184 			15000, \
185 			10000, \
186 			CFG_VALUE_OR_DEFAULT, \
187 			"PM QOS threshold")
188 #define CFG_CPU_CXPC_THRESHOLD_ALL CFG(CFG_CPU_CXPC_THRESHOLD)
189 #else
190 #define CFG_CPU_CXPC_THRESHOLD_ALL
191 #endif
192 
193 #ifdef QCA_WIFI_EMULATION
194 #define CFG_INTERFACE_CHANGE_WAIT_DEFAULT	300000
195 #else
196 #ifdef SHUTDOWN_WLAN_IN_SYSTEM_SUSPEND
197 #define CFG_INTERFACE_CHANGE_WAIT_DEFAULT	10000
198 #else
199 #define CFG_INTERFACE_CHANGE_WAIT_DEFAULT	250
200 #endif
201 #endif
202 
203 /*
204  * <ini>
205  * gInterfaceChangeWait - Interface change wait
206  * @Min: 0,
207  * @Max: 500000
208  * @Default: 10000 (300000 for emulation)
209  *
210  * Timer waiting for interface up from the upper layer. If
211  * this timer expires all the cds modules shall be closed.
212  * Time Units: ms
213  *
214  * Value 0 can be used to disable idle module stop.
215  *
216  * Related: None
217  *
218  * Supported Feature: All
219  *
220  * </ini>
221  */
222 #define CFG_INTERFACE_CHANGE_WAIT CFG_INI_UINT( \
223 			"gInterfaceChangeWait", \
224 			0, \
225 			500000, \
226 			CFG_INTERFACE_CHANGE_WAIT_DEFAULT, \
227 			CFG_VALUE_OR_DEFAULT, \
228 			"Interface change wait")
229 
230 #ifdef QCA_WIFI_EMULATION
231 #define CFG_TIMER_MULTIPLIER_DEFAULT	100
232 #else
233 #define CFG_TIMER_MULTIPLIER_DEFAULT	1
234 #endif
235 
236 /*
237  * <ini>
238  * gTimerMultiplier - Scale QDF timers by this value
239  * @Min: 1
240  * @Max: 0xFFFFFFFF
241  * @Default: 1 (100 for emulation)
242  *
243  * To assist in debugging emulation setups, scale QDF timers by this factor.
244  *
245  * @E.g.
246  *	# QDF timers expire in real time
247  *	gTimerMultiplier=1
248  *	# QDF timers expire after 100 times real time
249  *	gTimerMultiplier=100
250  *
251  * Related: None
252  *
253  * Usage: Internal
254  *
255  * </ini>
256  */
257 #define CFG_TIMER_MULTIPLIER CFG_INI_UINT( \
258 			"gTimerMultiplier", \
259 			1, \
260 			0xFFFFFFFF, \
261 			CFG_TIMER_MULTIPLIER_DEFAULT, \
262 			CFG_VALUE_OR_DEFAULT, \
263 			"Timer Multiplier")
264 
265 #define CFG_BUG_ON_REINIT_FAILURE_DEFAULT 0
266 /*
267  * <ini>
268  * g_bug_on_reinit_failure  - Enable/Disable bug on reinit
269  * @Min: 0
270  * @Max: 1
271  * @Default: 1
272  *
273  * This ini is used to debug ssr reinit failure issues by raising vos bug so
274  * dumps can be collected.
275  * g_bug_on_reinit_failure = 0 wlan driver will only recover after driver
276  * unload and load
277  * g_bug_on_reinit_failure = 1 raise vos bug to collect dumps
278  *
279  * Related: gEnableSSR
280  *
281  * Supported Feature: SSR
282  *
283  * Usage: External
284  *
285  * </ini>
286  */
287 #define CFG_BUG_ON_REINIT_FAILURE CFG_INI_BOOL( \
288 		"g_bug_on_reinit_failure", \
289 		CFG_BUG_ON_REINIT_FAILURE_DEFAULT, \
290 		"BUG on reinit failure")
291 
292 /*
293  * <ini>
294  * gEnableDumpCollect - It will use for collect the dumps
295  * @Min: 0
296  * @Max: 1
297  * @Default: 1
298  *
299  * This ini is used to set collect default dump
300  *
301  * Related: None
302  *
303  * Supported Feature: STA
304  *
305  * Usage: Internal/External
306  *
307  * </ini>
308  */
309 #define CFG_ENABLE_RAMDUMP_COLLECTION CFG_INI_BOOL( \
310 			"gEnableDumpCollect", \
311 			1, \
312 			"Enable dump collect")
313 
314 #if defined(MDM_PLATFORM) && !defined(FEATURE_MULTICAST_HOST_FW_MSGS)
315 #define CFG_MULTICAST_HOST_FW_MSGS_DEFAULT	0
316 #else
317 #define CFG_MULTICAST_HOST_FW_MSGS_DEFAULT	1
318 #endif
319 
320 /*
321  * <ini>
322  * gMulticastHostFwMsgs - Multicast host FW messages
323  * @Min: 0
324  * @Max: 1
325  * @Default: 0 for MDM platform and 1 for other
326  *
327  * </ini>
328  */
329 #define CFG_MULTICAST_HOST_FW_MSGS CFG_INI_UINT( \
330 			"gMulticastHostFwMsgs", \
331 			0, \
332 			1, \
333 			CFG_MULTICAST_HOST_FW_MSGS_DEFAULT, \
334 			CFG_VALUE_OR_DEFAULT, \
335 			"Multicast host FW msgs")
336 
337 #ifdef WLAN_LOGGING_SOCK_SVC_ENABLE
338 /*
339  * <ini>
340  * wlanLoggingEnable - Wlan logging enable
341  * @Min: 0
342  * @Max: 1
343  * @Default: 1
344  *
345  * </ini>
346  */
347 #define CFG_WLAN_LOGGING_SUPPORT CFG_INI_BOOL( \
348 				"wlanLoggingEnable", \
349 				1, \
350 				"Wlan logging enable")
351 
352 /*
353  * <ini>
354  * host_log_custom_nl_proto - Host log netlink protocol
355  * @Min: 0
356  * @Max: 32
357  * @Default: 2
358  *
359  * This ini is used to set host log netlink protocol. The default
360  * value is 2 (NETLINK_USERSOCK), customer should avoid selecting the
361  * netlink protocol that already used on their platform by other
362  * applications or services. By choosing the non-default value(2),
363  * Customer need to change the netlink protocol of application receive
364  * tool(cnss_diag) accordingly. Available values could be:
365  *
366  * host_log_custom_nl_proto = 0 -	NETLINK_ROUTE, Routing/device hook
367  * host_log_custom_nl_proto = 1 -	NETLINK_UNUSED, Unused number
368  * host_log_custom_nl_proto = 2 -	NETLINK_USERSOCK, Reserved for user
369  *					mode socket protocols
370  * host_log_custom_nl_proto = 3 -	NETLINK_FIREWALL, Unused number,
371  *					formerly ip_queue
372  * host_log_custom_nl_proto = 4 -	NETLINK_SOCK_DIAG, socket monitoring
373  * host_log_custom_nl_proto = 5 -	NETLINK_NFLOG, netfilter/iptables ULOG
374  * host_log_custom_nl_proto = 6 -	NETLINK_XFRM, ipsec
375  * host_log_custom_nl_proto = 7 -	NETLINK_SELINUX, SELinux event
376  *					notifications
377  * host_log_custom_nl_proto = 8 -	NETLINK_ISCSI, Open-iSCSI
378  * host_log_custom_nl_proto = 9 -	NETLINK_AUDIT, auditing
379  * host_log_custom_nl_proto = 10 -	NETLINK_FIB_LOOKUP
380  * host_log_custom_nl_proto = 11 -	NETLINK_CONNECTOR
381  * host_log_custom_nl_proto = 12 -	NETLINK_NETFILTER, netfilter subsystem
382  * host_log_custom_nl_proto = 13 -	NETLINK_IP6_FW
383  * host_log_custom_nl_proto = 14 -	NETLINK_DNRTMSG, DECnet routing messages
384  * host_log_custom_nl_proto = 15 -	NETLINK_KOBJECT_UEVENT, Kernel
385  *					messages to userspace
386  * host_log_custom_nl_proto = 16 -	NETLINK_GENERIC, leave room for
387  *					NETLINK_DM (DM Events)
388  * host_log_custom_nl_proto = 18 -	NETLINK_SCSITRANSPORT, SCSI Transports
389  * host_log_custom_nl_proto = 19 -	NETLINK_ECRYPTFS
390  * host_log_custom_nl_proto = 20 -	NETLINK_RDMA
391  * host_log_custom_nl_proto = 21 -	NETLINK_CRYPTO, Crypto layer
392  * host_log_custom_nl_proto = 22 -	NETLINK_SMC, SMC monitoring
393  *
394  * The max value is: MAX_LINKS which is 32
395  *
396  * Related: None
397  *
398  * Supported Feature: STA
399  *
400  * Usage: Internal/External
401  *
402  * </ini>
403  */
404 #define CFG_HOST_LOG_CUSTOM_NETLINK_PROTO CFG_INI_UINT( \
405 	"host_log_custom_nl_proto", \
406 	0, \
407 	32, \
408 	2, \
409 	CFG_VALUE_OR_DEFAULT, \
410 	"host log custom netlink protocol")
411 
412 /*
413  * <ini>
414  * wlanConsoleLogLevelsBitmap - Bitmap to enable/disable console log levels
415  * @Min: 0x00000000
416  * @Max: 0x000003ff
417  * @Default: 0x0000001e
418  *
419  * This INI is used to enable/disable console logs for specific log level.
420  *
421  * bit-0: Reserved
422  * bit-1: QDF_TRACE_LEVEL_FATAL
423  * bit-2: QDF_TRACE_LEVEL_ERROR
424  * bit-3: QDF_TRACE_LEVEL_WARN
425  * bit-4: QDF_TRACE_LEVEL_INFO
426  * bit-5: QDF_TRACE_LEVEL_INFO_HIGH
427  * bit-6: QDF_TRACE_LEVEL_INFO_MED
428  * bit-7: QDF_TRACE_LEVEL_INFO_LOW
429  * bit-8: QDF_TRACE_LEVEL_DEBUG
430  * bit-9: QDF_TRACE_LEVEL_TRACE
431  * bit-10 to bit-31: Reserved
432  *
433  * </ini>
434  */
435 #define CFG_WLAN_LOGGING_CONSOLE_SUPPORT CFG_INI_UINT( \
436 				"wlanConsoleLogLevelsBitmap", \
437 				0x00000000, \
438 				0x000003ff, \
439 				0x0000001e, \
440 				CFG_VALUE_OR_DEFAULT, \
441 				"Wlan logging to console")
442 
443 #define CFG_WLAN_LOGGING_SUPPORT_ALL \
444 	CFG(CFG_WLAN_LOGGING_SUPPORT) \
445 	CFG(CFG_WLAN_LOGGING_CONSOLE_SUPPORT) \
446 	CFG(CFG_HOST_LOG_CUSTOM_NETLINK_PROTO)
447 #else
448 #define CFG_WLAN_LOGGING_SUPPORT_ALL
449 #endif
450 
451 #ifdef FEATURE_WLAN_AUTO_SHUTDOWN
452 /*
453  * <ini>
454  * gWlanAutoShutdown - Wlan auto shutdown timer value
455  * @Min: 0
456  * @Max: 86400
457  * @Default: 0
458  *
459  * This ini specifies the seconds of WLAN inactivity firmware has to wait
460  * before indicating WLAN idle event to driver. Upon receiving firmware's
461  * WLAN idle indication, driver may indicate similar event to upper layer
462  * daemons(SCM, or any other components working to achieve the same purpose),
463  * who may choose what to do next, e.g. whether to unload driver module or not.
464  * 0 indicates no auto shutdown will take place.
465  *
466  * </ini>
467  */
468 #define CFG_WLAN_AUTO_SHUTDOWN CFG_INI_UINT( \
469 			"gWlanAutoShutdown", \
470 			0, \
471 			86400, \
472 			0, \
473 			CFG_VALUE_OR_DEFAULT, \
474 			"Wlan auto shutdown")
475 #define CFG_WLAN_AUTO_SHUTDOWN_ALL \
476 	CFG(CFG_WLAN_AUTO_SHUTDOWN)
477 #else
478 #define CFG_WLAN_AUTO_SHUTDOWN_ALL
479 #endif
480 
481 /*
482  * <ini>
483  * gEnablefwprint - Enable FW uart print
484  * @Min: 0
485  * @Max: 1
486  * @Default: 0
487  *
488  * </ini>
489  */
490 #define CFG_ENABLE_FW_UART_PRINT CFG_INI_BOOL( \
491 			"gEnablefwprint", \
492 			0, \
493 			"Enable FW uart print")
494 
495 /*
496  * <ini>
497  * gEnablefwlog - Enable FW log
498  * @Min: 0
499  * @Max: 2
500  * @Default: 1
501  *
502  * </ini>
503  */
504 #define CFG_ENABLE_FW_LOG CFG_INI_UINT( \
505 			"gEnablefwlog", \
506 			0, \
507 			2, \
508 			1, \
509 			CFG_VALUE_OR_DEFAULT, \
510 			"Enable FW log")
511 
512 #ifndef REMOVE_PKT_LOG
513 
514 #ifdef FEATURE_PKTLOG
515 #define CFG_ENABLE_PACKET_LOG_DEFAULT	1
516 #else
517 #define CFG_ENABLE_PACKET_LOG_DEFAULT	0
518 #endif
519 
520 /*
521  * <ini>
522  * gEnablePacketLog - Enale packet log
523  * @Min: 0
524  * @Max: 1
525  * @Default: 1 if packet log code is enabled, 0 otherwise
526  *
527  * This option enables/disables packet log collecting.
528  *
529  * </ini>
530  */
531 #define CFG_ENABLE_PACKET_LOG CFG_INI_BOOL( \
532 			"gEnablePacketLog", \
533 			CFG_ENABLE_PACKET_LOG_DEFAULT, \
534 			"Enable packet log")
535 
536 #define CFG_ENABLE_PACKET_LOG_ALL \
537 	CFG(CFG_ENABLE_PACKET_LOG)
538 #else
539 #define CFG_ENABLE_PACKET_LOG_ALL
540 #endif
541 
542 #ifdef FEATURE_RUNTIME_PM
543 
544 /**
545  * enum hdd_runtime_pm_cfg - Runtime PM (RTPM) configuration options
546  * @hdd_runtime_pm_disabled: RTPM and CxPC aware RTPM  disabled
547  * @hdd_runtime_pm_static: RTPM enabled, but CxPC aware RTPM disabled
548  * @hdd_runtime_pm_dynamic: RTPM and CxPC aware RTPM enabled
549  */
550 enum hdd_runtime_pm_cfg {
551 	hdd_runtime_pm_disabled = 0,
552 	hdd_runtime_pm_static = 1,
553 	hdd_runtime_pm_dynamic = 2,
554 };
555 
556 /*
557  * <ini>
558  * gRuntimePM - enable runtime suspend
559  * @Min: 0
560  * @Max: 2
561  * @Default: 0
562  *
563  * This ini is used to enable runtime PM
564  *
565  * 0: RTPM disabled, so CxPC aware RTPM will be disabled as well
566  * 1: RTPM enabled, but CxPC aware RTPM disabled
567  * 2: RTPM enabled and CxPC aware RTPM enabled as well
568  * Related: None
569  *
570  * Supported Feature: Power Save
571  *
572  * Usage: External
573  *
574  * </ini>
575  */
576 #define CFG_ENABLE_RUNTIME_PM CFG_INI_UINT( \
577 		"gRuntimePM", \
578 		0, \
579 		2, \
580 		0, \
581 		CFG_VALUE_OR_DEFAULT, \
582 		"This ini is used to enable runtime_suspend")
583 #define CFG_ENABLE_RUNTIME_PM_ALL \
584 	CFG(CFG_ENABLE_RUNTIME_PM)
585 #else
586 #define CFG_ENABLE_RUNTIME_PM_ALL
587 #endif
588 
589 #ifdef WLAN_FEATURE_WMI_SEND_RECV_QMI
590 /*
591  * <ini>
592  * enable_qmi_stats - enable periodic stats over qmi
593  * @Min: 0
594  * @Max: 1
595  * @Default: 1
596  *
597  * This ini is used to enable periodic stats over qmi if DUT is
598  * in RTPM suspended state to avoid WoW enter/exit for every stats
599  * request.
600  *
601  * 0: Periodic stats over QMI is disabled
602  * 1: Periodic stats over QMI is enabled
603  * Related: None
604  *
605  * Supported Feature: Power Save
606  *
607  * Usage: External
608  *
609  * </ini>
610  */
611 #define CFG_ENABLE_QMI_STATS CFG_INI_UINT( \
612 		"enable_qmi_stats", \
613 		0, \
614 		1, \
615 		1, \
616 		CFG_VALUE_OR_DEFAULT, \
617 		"This ini is used to enable periodic stats over qmi")
618 #define CFG_ENABLE_QMI_STATS_ALL \
619 	CFG(CFG_ENABLE_QMI_STATS)
620 #else
621 #define CFG_ENABLE_QMI_STATS_ALL
622 #endif
623 
624 /*
625  * <ini>
626  * gInformBssRssiRaw - Report rssi in cfg80211_inform_bss_frame
627  * @Min: 0
628  * @Max: 1
629  * @Default: 1
630  *
631  * Option to report rssi in cfg80211_inform_bss_frame()
632  *
633  * Related: None
634  *
635  * Supported Feature: N/A
636  *
637  * Usage: External
638  *
639  * </ini>
640  */
641 #define CFG_INFORM_BSS_RSSI_RAW CFG_INI_BOOL( \
642 		"gInformBssRssiRaw", \
643 		1, \
644 		"Option to report rssi in cfg80211_inform_bss_frame")
645 
646 #ifdef FEATURE_WLAN_DYNAMIC_CVM
647 /*
648  * <ini>
649  * gConfigVCmodeBitmap - Bitmap for operating voltage corner mode
650  * @Min: 0x00000000
651  * @Max: 0x0fffffff
652  * @Default: 0x0000000a
653  * This ini is used to set operating voltage corner mode for differenet
654  * phymode and bw configurations. Every 2 bits till BIT27 are dedicated
655  * for a specific configuration. Bit values decide the type of voltage
656  * corner mode. All the details below -
657  *
658  * Configure operating voltage corner mode based on phymode and bw.
659  * bit 0-1 -   operating voltage corner mode for 11a/b.
660  * bit 2-3 -   operating voltage corner mode for 11g.
661  * bit 4-5 -   operating voltage corner mode for 11n, 20MHz, 1x1.
662  * bit 6-7 -   operating voltage corner mode for 11n, 20MHz, 2x2.
663  * bit 8-9 -   operating voltage corner mode for 11n, 40MHz, 1x1.
664  * bit 10-11 - operating voltage corner mode for 11n, 40MHz, 2x2.
665  * bit 12-13 - operating voltage corner mode for 11ac, 20MHz, 1x1.
666  * bit 14-15 - operating voltage corner mode for 11ac, 20MHz, 2x2.
667  * bit 16-17 - operating voltage corner mode for 11ac, 40MHz, 1x1.
668  * bit 18-19 - operating voltage corner mode for 11ac, 40MHz, 2x2.
669  * bit 20-21 - operating voltage corner mode for 11ac, 80MHz, 1x1.
670  * bit 22-23 - operating voltage corner mode for 11ac, 80MHz, 2x2.
671  * bit 24-25 - operating voltage corner mode for 11ac, 160MHz, 1x1.
672  * bit 26-27 - operating voltage corner mode for 11ac, 160MHz, 2x2.
673  * ---------------------------------------------
674  * 00 - Static voltage corner SVS
675  * 01 - static voltage corner LOW SVS
676  * 10 - Dynamic voltage corner selection based on TPUT
677  * 11 - Dynamic voltage corner selection based on TPUT and Tx Flush counters
678 
679  * Related: None
680  *
681  * Supported Feature: None
682  *
683  * Usage: External
684  *
685  * </ini>
686  */
687 #define CFG_VC_MODE_BITMAP CFG_INI_INT( \
688 	"gConfigVCmode", \
689 	0x00000000, \
690 	0x0fffffff, \
691 	0x00000005, \
692 	CFG_VALUE_OR_DEFAULT, \
693 	"Bitmap for operating voltage corner mode")
694 
695 #define CFG_VC_MODE_BITMAP_ALL CFG(CFG_VC_MODE_BITMAP)
696 #else
697 #define CFG_VC_MODE_BITMAP_ALL
698 #endif
699 
700 /*
701  * <ini>
702  * def_sta_operating_freq - Default STA operating Freq
703  * @Min: 0
704  * @Max: 2484
705  * @Default: 2412
706  *
707  * This ini is used to specify the default operating frequency of a STA during
708  * initialization.
709  *
710  * Related: None
711  *
712  * Supported Feature: STA
713  *
714  * Usage: External
715  *
716  * </ini>
717  */
718 #define CFG_OPERATING_FREQUENCY CFG_INI_UINT( \
719 			"def_sta_operating_freq", \
720 			0, \
721 			2484, \
722 			2412, \
723 			CFG_VALUE_OR_DEFAULT, \
724 			"Default STA Operating Frequency")
725 #ifdef DHCP_SERVER_OFFLOAD
726 #define IPADDR_NUM_ENTRIES     (4)
727 #define IPADDR_STRING_LENGTH   (16)
728 #define CFG_DHCP_SERVER_IP_DEFAULT  ""
729 
730 /*
731  * struct wlan_mlme_chainmask - All chainmask related cfg items
732  * @dhcpServerIP:     Dhcp server IP address
733  * @is_dhcp_server_ip_valid:     is dhcp server valid
734  */
735 struct dhcp_server {
736 	uint8_t dhcp_server_ip[IPADDR_NUM_ENTRIES];
737 	bool is_dhcp_server_ip_valid;
738 }
739 
740 /*
741  * <ini>
742  * gDHCPServerIP - Dhcp server Ip name
743  * @Default:
744  *
745  * This ini is used to give the DHCP IP server name
746  */
747 #define CFG_DHCP_SERVER_IP_NAME \
748 	CFG_INI_STRING("gDHCPServerIP", \
749 	0, IPADDR_STRING_LENGTH, CFG_DHCP_SERVER_IP_DEFAULT, "DHCP Server IP")
750 #endif /* DHCP_SERVER_OFFLOAD */
751 
752 /*
753  * <ini>
754  * gNumVdevs - max number of VDEVs supported
755  *
756  * @Min: 0x1
757  * @Max: 0x5
758  * @Default: CFG_TGT_NUM_VDEV
759  *
760  * Usage: External
761  *
762  * </ini>
763  */
764 #define CFG_NUM_VDEV_ENABLE CFG_INI_UINT( \
765 		"gNumVdevs", \
766 		1, \
767 		5, \
768 		CFG_TGT_NUM_VDEV, \
769 		CFG_VALUE_OR_DEFAULT, \
770 		"Number of VDEVs")
771 
772 #define CFG_CONCURRENT_IFACE_MAX_LEN 16
773 /*
774  * <ini>
775  * gEnableConcurrentSTA - This will control the creation of concurrent STA
776  * interface
777  * @Default: NULL
778  *
779  * This ini is used for providing control to create a concurrent STA session
780  * along with the creation of wlan0 and p2p0. The name of the interface is
781  * specified as the parameter
782  *
783  * Usage: Internal
784  *
785  * </ini>
786  */
787 
788 #define CFG_ENABLE_CONCURRENT_STA CFG_INI_STRING( \
789 		"gEnableConcurrentSTA", \
790 		0, \
791 		CFG_CONCURRENT_IFACE_MAX_LEN, \
792 		"", \
793 		"Enable Concurrent STA")
794 
795 #define CFG_DBS_SCAN_PARAM_LENGTH 42
796 /*
797  * <ini>
798  * gdbs_scan_selection - DBS Scan Selection.
799  * @Default: ""
800  *
801  * This ini is used to enable DBS scan selection.
802  * Example
803  * @Value: "5,2,2,16,2,2"
804  * 1st argument is module_id, 2nd argument is number of DBS scan,
805  * 3rd argument is number of non-DBS scan,
806  * and other arguments follows.
807  * 5,2,2,16,2,2 means:
808  * 5 is module id, 2 is num of DBS scan, 2 is num of non-DBS scan.
809  * 16 is module id, 2 is num of DBS scan, 2 is num of non-DBS scan.
810  *
811  * Related: None.
812  *
813  * Supported Feature: DBS Scan
814  *
815  * Usage: Internal/External
816  *
817  * </ini>
818  */
819 #define CFG_DBS_SCAN_SELECTION CFG_INI_STRING( \
820 			"gdbs_scan_selection", \
821 			0, \
822 			CFG_DBS_SCAN_PARAM_LENGTH, \
823 			"", \
824 			"DBS Scan Selection")
825 
826 /*
827  * </ini>
828  * enable_mac_provision - Enable/disable MAC address provisioning feature
829  * @Min: 0
830  * @Max: 1
831  * @Default: 0
832  *
833  * This ini is used to enable/disable MAC address provisioning feature
834  *
835  * Supported Feature: STA/SAP/P2P
836  *
837  * Usage: External
838  *
839  * </ini>
840  */
841 #define CFG_ENABLE_MAC_PROVISION CFG_INI_BOOL( \
842 	"enable_mac_provision", \
843 	0, \
844 	"enable/disable MAC address provisioning feature")
845 
846 /*
847  * </ini>
848  * read_mac_addr_from_mac_file - Use/ignore MAC address from mac cfg file
849  * @Min: 0
850  * @Max: 1
851  * @Default: 0
852  *
853  * This ini is used whether to configure MAC address from the cfg file or not
854  *
855  * Supported Feature: STA/SAP/P2P
856  *
857  * Usage: External
858  *
859  * </ini>
860  */
861 #define CFG_READ_MAC_ADDR_FROM_MAC_FILE CFG_INI_BOOL( \
862 	"read_mac_addr_from_mac_file", \
863 	0, \
864 	"Use/ignore MAC address from cfg file")
865 
866 /*
867  * <ini>
868  * provisioned_intf_pool - It is bit mask value of Interfaces
869  * @Min: 0
870  * @Max: 0xffffffff
871  * @Default: 0xffffffff
872  *
873  * This ini will contain the bitmask of all the interfaces
874  * which can use addresses from provisioned list. Using enum QDF_OPMODE
875  * for deciding the bit positions corresponding to each interface.
876  * Bit 0 : QDF_STA_MODE
877  * Bit 1 : QDF_SAP_MODE
878  * Bit 2 : QDF_P2P_CLIENT_MODE
879  * Bit 3 : QDF_P2P_GO_MODE
880  * Bit 4 : QDF_FTM_MODE
881  * Bit 5 : QDF_IBSS_MODE
882  * Bit 6 : QDF_MONITOR_MODE
883  * Bit 7 : QDF_P2P_DEVICE_MODE
884  * Bit 8 : QDF_OCB_MODE
885  * Bit 9 : QDF_EPPING_MODE
886  * Bit 10 : QDF_QVIT_MODE
887  * Bit 11 : QDF_NDI_MODE
888  * Bit 12 : QDF_MAX_NO_OF_MODE
889  * For example :
890  * If Bit 0 represents STA
891  * Bit 1 represents SAP
892  * Bit 2 represents P2PGO
893  * If only STA and SAP can use addresses from provisioned list then the value
894  * of ini should be 3 (00000011) as first and second bit should be set.
895  * If only STA and P2PGO can use addresses from provisioned list then the value
896  * of ini should be 5 (00000101) as first and third bit should be set.
897  * Similarly, for only SAP and P2PGO ini should be 6 (00000110)
898  *
899  * Supported Feature: STA/SAP/P2P
900  *
901  * Usage: External
902  *
903  * </ini>
904  */
905 #define CFG_PROVISION_INTERFACE_POOL CFG_INI_UINT( \
906 			"provisioned_intf_pool", \
907 			0, \
908 			0xffffffff, \
909 			0xffffffff, \
910 			CFG_VALUE_OR_DEFAULT, \
911 			"It is bit mask value of Interfaces")
912 
913 /*
914  * <ini>
915  * deriveded_intf_pool - It is bit mask value of Interfaces
916  * @Min: 0
917  * @Max: 0xffffffff
918  * @Default: 0xffffffff
919  *
920  * This ini will contain the bitmask of all the interfaces
921  * which can use addresses from derived list
922  *
923  *
924  * Supported Feature: STA/SAP/P2P
925  *
926  * Usage: External
927  *
928  * </ini>
929  */
930 #define CFG_DERIVED_INTERFACE_POOL CFG_INI_UINT( \
931 				"derived_intf_pool", \
932 				0, \
933 				0xffffffff, \
934 				0xffffffff, \
935 				CFG_VALUE_OR_DEFAULT, \
936 				"It is bit mask value of Interfaces")
937 
938 #ifdef ENABLE_MTRACE_LOG
939 /*
940  * <ini>
941  * enable_mtrace - Enable Mtrace.
942  * @Default: 0
943  *
944  * This ini is used to enable MTRACE logging
945  *
946  * Related: None.
947  *
948  * Supported Feature: MTRACE
949  *
950  * Usage: Internal/External
951  *
952  * </ini>
953  */
954 #define CFG_ENABLE_MTRACE CFG_INI_BOOL( \
955 			"enable_mtrace", \
956 			false, \
957 			"Enable MTRACE")
958 #define CFG_ENABLE_MTRACE_ALL CFG(CFG_ENABLE_MTRACE)
959 #else
960 #define CFG_ENABLE_MTRACE_ALL
961 #endif
962 
963 /*
964  * <ini>
965  * gAdvertiseConcurrentOperation - Iface combination advertising
966  * @Min: 0
967  * @Max: 1
968  * @Default: 1
969  *
970  * This ini is used to control whether driver should indicate to kernel
971  * wiphy layer the combination of all its interfaces' supportability.
972  *
973  * Related: None
974  *
975  * Supported Feature: STA
976  *
977  * Usage: Internal/External
978  *
979  * </ini>
980  */
981 #define CFG_ADVERTISE_CONCURRENT_OPERATION CFG_INI_BOOL( \
982 		"gAdvertiseConcurrentOperation", \
983 		1, \
984 		"Iface combination advertising")
985 
986 /*
987  * <ini>
988  * gEnableUnitTestFramework - Enable/Disable unit test framework
989  * @Min: 0
990  * @Max: 1
991  * @Default: 0
992  *
993  * Related: None
994  *
995  * Supported Feature: unit test framework
996  *
997  * Usage: Internal (only for dev and test team)
998  *
999  * </ini>
1000  */
1001 #define CFG_ENABLE_UNIT_TEST_FRAMEWORK CFG_INI_BOOL( \
1002 			"gEnableUnitTestFramework", \
1003 			0, \
1004 			"Enable/Disable unit test framework")
1005 
1006 /*
1007  * <ini>
1008  * gDisableChannel - Used to disable channels specified
1009  *
1010  * @Min: 0
1011  * @Max: 1
1012  * Default: 0
1013  *
1014  * This ini is used to disable the channels given in the command
1015  * SET_DISABLE_CHANNEL_LIST and to restore the channels when the
1016  * command is given with channel list as 0
1017  * Usage: External
1018  *
1019  * </ini>
1020  */
1021 #define CFG_ENABLE_DISABLE_CHANNEL  CFG_INI_BOOL( \
1022 			"gDisableChannel", \
1023 			0, \
1024 			"Enable/Disable to disable channels specified")
1025 
1026 /*
1027  * <ini>
1028  * gEnableSARV1toSARV2 - Used to Enable/Disable SAR version conversion
1029  *
1030  * @Min: 0
1031  * @Max: 1
1032  * Default: 1
1033  *
1034  * If user space is using SARV1 and FW is using SARV2 in BDF in that case
1035  * this ini is used to enable conversion from user specified SARV1 command
1036  * to FW expected SARV2 command.
1037  * If value of this ini is set to 0, SAR version 1 will
1038  * not be converted to SARV2 and command will be rejected.
1039  * If value of this ini is set to 1 SAR version 1 will be converted to
1040  * SARV2 based on FW capability
1041  * Usage: External
1042  *
1043  * </ini>
1044  */
1045 #define CFG_SAR_CONVERSION  CFG_INI_BOOL( \
1046 			"gEnableSARV1toSARV2", \
1047 			1, \
1048 			"Enable/Disable conversion from SARV1 to SARV2")
1049 
1050 /*
1051  * <ini>
1052  * nb_commands_interval - Used to rate limit nb commands from userspace
1053  *
1054  * @Min: 0
1055  * @Max: 10
1056  * Default: 3
1057  *
1058  * This ini is used to specify the duration in which any supp. nb command from
1059  * userspace will not be processed completely in driver. For ex, the default
1060  * value of 3 seconds signifies that consecutive commands within that
1061  * time will not be processed fully.
1062  *
1063  * Usage: Internal
1064  *
1065  * </ini>
1066  */
1067 #define CFG_NB_COMMANDS_RATE_LIMIT CFG_INI_UINT( \
1068 			"nb_commands_interval", \
1069 			0, \
1070 			10, \
1071 			3, \
1072 			CFG_VALUE_OR_DEFAULT, \
1073 			"Rate limiting for nb commands")
1074 
1075 #ifdef WLAN_FEATURE_PERIODIC_STA_STATS
1076 /*
1077  * <ini>
1078  * periodic_stats_timer_interval - Print selective stats on this specified
1079  *				   interval
1080  *
1081  * @Min: 0
1082  * @Max: 10000
1083  * Default: 3000
1084  *
1085  * This ini is used to specify interval in milliseconds for periodic stats
1086  * timer. This timer will print selective stats after expiration of each
1087  * interval. STA starts this periodic timer after initial connection or after
1088  * roaming is successful. This will be restarted for every
1089  * periodic_stats_timer_interval till the periodic_stats_timer_duration expires.
1090  *
1091  * Supported Feature: STA
1092  *
1093  * Usage: Internal
1094  *
1095  * </ini>
1096  */
1097 #define CFG_PERIODIC_STATS_TIMER_INTERVAL  CFG_INI_UINT( \
1098 				"periodic_stats_timer_interval", \
1099 				0, \
1100 				10000, \
1101 				3000, \
1102 				CFG_VALUE_OR_DEFAULT, \
1103 				"Periodic stats timer interval")
1104 
1105 /*
1106  * <ini>
1107  * periodic_stats_timer_duration - Used as duration for which periodic timer
1108  *				   should run
1109  *
1110  * @Min: 0
1111  * @Max: 60000
1112  * Default: 30000
1113  *
1114  * This ini is used as duration in milliseconds for which periodic stats timer
1115  * should run. This periodic timer will print selective stats for every
1116  * periodic_stats_timer_interval until this duration is reached.
1117  *
1118  * Supported Feature: STA
1119  *
1120  * Usage: Internal
1121  *
1122  * </ini>
1123  */
1124 #define CFG_PERIODIC_STATS_TIMER_DURATION  CFG_INI_UINT( \
1125 			"periodic_stats_timer_duration", \
1126 			0, \
1127 			60000, \
1128 			30000, \
1129 			CFG_VALUE_OR_DEFAULT, \
1130 			"Periodic stats timer duration")
1131 
1132 #define CFG_WLAN_STA_PERIODIC_STATS \
1133 	 CFG(CFG_PERIODIC_STATS_TIMER_DURATION) \
1134 	 CFG(CFG_PERIODIC_STATS_TIMER_INTERVAL)
1135 #else
1136 #define CFG_WLAN_STA_PERIODIC_STATS
1137 #endif /* WLAN_FEATURE_PERIODIC_STA_STATS */
1138 
1139 #ifdef FEATURE_CLUB_LL_STATS_AND_GET_STATION
1140 /*
1141  * <ini>
1142  * club_get_sta_in_ll_stats_req - Flag used to club ll_stats and get_station
1143  *                                requests in the driver
1144  *
1145  * @Min: 0
1146  * @Max: 1
1147  * Default: 1
1148  *
1149  * This ini param is used to enable/disable the feature for clubbing ll stats
1150  * and get station requests.
1151  *
1152  * Supported Feature: STA
1153  *
1154  * Usage: External
1155  *
1156  * </ini>
1157  */
1158 #define CFG_CLUB_LL_STA_AND_GET_STATION  CFG_INI_BOOL( \
1159 			"club_get_sta_in_ll_stats_req", \
1160 			1, \
1161 			"Club ll_stats and get station requests")
1162 
1163 /*
1164  * <ini>
1165  * sta_stats_cache_expiry_time - Expiry time for cached station stats
1166  *
1167  * @Min: 0
1168  * @Max: 5000
1169  * Default: 400
1170  *
1171  * This ini is used as duration in milliseconds for which cached station stats
1172  * are valid. Driver sends the cached information as response, if it gets the
1173  * get_station request with in this duration. Otherwise driver sends new
1174  * request to the firmware to get the updated stats.
1175  *
1176  * Supported Feature: STA
1177  *
1178  * Usage: External
1179  *
1180  * </ini>
1181  */
1182 #define CFG_STA_STATS_CACHE_EXPIRY  CFG_INI_UINT( \
1183 			"sta_stats_cache_expiry_time", \
1184 			0, \
1185 			5000, \
1186 			400, \
1187 			CFG_VALUE_OR_DEFAULT, \
1188 			"Station stats cache expiry")
1189 
1190 #define CFG_WLAN_CLUB_GET_STA_IN_LL_STA_REQ \
1191 	 CFG(CFG_CLUB_LL_STA_AND_GET_STATION) \
1192 	 CFG(CFG_STA_STATS_CACHE_EXPIRY)
1193 #else
1194 #define CFG_WLAN_CLUB_GET_STA_IN_LL_STA_REQ
1195 #endif /* FEATURE_CLUB_LL_STATS_AND_GET_STATION */
1196 
1197 #ifdef WLAN_FEATURE_11BE_MLO
1198 /*
1199  * <ini>
1200  * link_state_cache_expiry_time - Expiry time for cached ml link state
1201  *
1202  * @Min: 0
1203  * @Max: 5000
1204  * Default: 400
1205  *
1206  * This ini is used as duration in milliseconds for which cached ml link state
1207  * are valid. Driver sends the cached information as response, if it gets the
1208  * ml link state request with in this duration. Otherwise driver sends new
1209  * request to the firmware to get the updated ml link state.
1210  *
1211  * Supported Feature: MLO STA
1212  *
1213  * Usage: External
1214  *
1215  * </ini>
1216  */
1217 #define CFG_LINK_STATE_CACHE_EXPIRY  CFG_INI_UINT( \
1218 			"link_state_cache_expiry_time", \
1219 			0, \
1220 			5000, \
1221 			400, \
1222 			CFG_VALUE_OR_DEFAULT, \
1223 			"link state cache expiry")
1224 
1225 #define CFG_LINK_STATE_CACHE_EXPIRY_ALL \
1226 	CFG(CFG_LINK_STATE_CACHE_EXPIRY)
1227 #else
1228 #define CFG_LINK_STATE_CACHE_EXPIRY_ALL
1229 #endif /* WLAN_FEATURE_11BE_MLO */
1230 
1231 /**
1232  * enum host_log_level - Debug verbose level imposed by user
1233  * @HOST_LOG_LEVEL_NONE: no trace will be logged.
1234  * @HOST_LOG_LEVEL_FATAL: fatal error will be logged
1235  * @HOST_LOG_LEVEL_ERROR: error(include level less than error) will be logged
1236  * @HOST_LOG_LEVEL_WARN: warning(include level less than warning) will be logged
1237  * @HOST_LOG_LEVEL_INFO: inform(include level less than inform) will be logged
1238  * @HOST_LOG_LEVEL_DEBUG: debug(include level less than debug) will be logged
1239  * @HOST_LOG_LEVEL_TRACE: trace(include level less than trace) will be logged
1240  * @HOST_LOG_LEVEL_MAX: Max host log level
1241  */
1242 enum host_log_level {
1243 	HOST_LOG_LEVEL_NONE = 0,
1244 	HOST_LOG_LEVEL_FATAL,
1245 	HOST_LOG_LEVEL_ERROR,
1246 	HOST_LOG_LEVEL_WARN,
1247 	HOST_LOG_LEVEL_INFO,
1248 	HOST_LOG_LEVEL_DEBUG,
1249 	HOST_LOG_LEVEL_TRACE,
1250 	HOST_LOG_LEVEL_MAX,
1251 };
1252 
1253 /*
1254  * <ini>
1255  * gHostModuleLoglevel - modulized host debug log level
1256  * @Min: N/A
1257  * @Max: N/A
1258  * @Default: N/A
1259  *
1260  * This ini is used to set modulized host debug log level.
1261  * WLAN host module log level input string format looks like below:
1262  * gHostModuleLoglevel="<host Module ID>,<Log Level>,..."
1263  * For example:
1264  * gHostModuleLoglevel=51,1,52,2,53,3,54,4,55,5,56,6
1265  * The above input string means:
1266  * For WLAN host module ID 51 enable log level HOST_LOG_LEVEL_FATAL
1267  * For WLAN host module ID 52 enable log level HOST_LOG_LEVEL_ERROR
1268  * For WLAN host module ID 53 enable log level HOST_LOG_LEVEL_WARN
1269  * For WLAN host module ID 54 enable log level HOST_LOG_LEVEL_INFO
1270  * For WLAN host module ID 55 enable log level HOST_LOG_LEVEL_DEBUG
1271  * For WLAN host module ID 55 enable log level HOST_LOG_LEVEL_TRACE
1272  * For valid values of module ids check enum QDF_MODULE_ID and
1273  * for valid values of log levels check below.
1274  * HOST_LOG_LEVEL_NONE = 0, No trace will be logged
1275  * HOST_LOG_LEVEL_FATAL = 1, fatal error log
1276  * HOST_LOG_LEVEL_ERROR = 2, error(include level less than error) log
1277  * HOST_LOG_LEVEL_WARN = 3, warning(include level less than warning) log
1278  * HOST_LOG_LEVEL_INFO = 4, inform(include level less than inform) log
1279  * HOST_LOG_LEVEL_DEBUG = 5, debug(include level less than debug) log
1280  * HOST_LOG_LEVEL_TRACE = 6, trace(include level less than trace) log
1281  *
1282  * Related: None
1283  *
1284  * Supported Feature: Debugging
1285  *
1286  * Usage: Internal
1287  *
1288  * </ini>
1289  */
1290 
1291 #define HOST_MODULE_LOG_LEVEL_STRING_MAX_LENGTH  (QDF_MODULE_ID_MAX * 6)
1292 #define CFG_ENABLE_HOST_MODULE_LOG_LEVEL CFG_INI_STRING( \
1293 	"gHostModuleLoglevel", \
1294 	0, \
1295 	HOST_MODULE_LOG_LEVEL_STRING_MAX_LENGTH, \
1296 	"", \
1297 	"Set modulized host debug log level")
1298 
1299 #ifdef WLAN_FEATURE_DYNAMIC_MAC_ADDR_UPDATE
1300 /*
1301  * <ini>
1302  * dynamic_mac_addr_update_supported - Flag to configure dynamic MAC address
1303  *                                     support in the driver
1304  *
1305  * @Min: 0
1306  * @Max: 1
1307  * Default: 1
1308  *
1309  * This ini param is used to enable/disable the dynamic MAC address support
1310  * in the driver.
1311  *
1312  * Supported Feature: STA/SAP/P2P_Device
1313  *
1314  * Usage: External
1315  *
1316  * </ini>
1317  */
1318 #define CFG_DYNAMIC_MAC_ADDR_UPDATE_SUPPORTED CFG_INI_BOOL( \
1319 			"dynamic_mac_addr_update_supported", \
1320 			1, \
1321 			"Dynamic MAC address update support")
1322 #define CFG_DYNAMIC_MAC_ADDR_UPDATE_SUPPORTED_ALL \
1323 	CFG(CFG_DYNAMIC_MAC_ADDR_UPDATE_SUPPORTED)
1324 #else
1325 #define CFG_DYNAMIC_MAC_ADDR_UPDATE_SUPPORTED_ALL
1326 #endif
1327 
1328 /*
1329  * <ini>
1330  * exclude_selftx_from_cca_busy_time - Exclude self tx time from cca busy time
1331  * @Default: false
1332  *
1333  * This ini is used to exclude self tx time from cca busy time.
1334  *
1335  * false: Don't exclude self tx time from cca busy time.
1336  * true: Deduct tx time from cca busy time.
1337  *
1338  * Usage: External
1339  *
1340  * </ini>
1341  */
1342 #define CFG_EXCLUDE_SELFTX_FROM_CCA_BUSY_TIME CFG_INI_BOOL( \
1343 	"exclude_selftx_from_cca_busy_time", \
1344 	false, \
1345 	"This ini is used to exclude self tx time from CCA busy time")
1346 
1347 #define CFG_HDD_ALL \
1348 	CFG_DYNAMIC_MAC_ADDR_UPDATE_SUPPORTED_ALL \
1349 	CFG_ENABLE_PACKET_LOG_ALL \
1350 	CFG_ENABLE_RUNTIME_PM_ALL \
1351 	CFG_ENABLE_QMI_STATS_ALL \
1352 	CFG_VC_MODE_BITMAP_ALL \
1353 	CFG_WLAN_AUTO_SHUTDOWN_ALL \
1354 	CFG_WLAN_CLUB_GET_STA_IN_LL_STA_REQ \
1355 	CFG_WLAN_LOGGING_SUPPORT_ALL \
1356 	CFG_WLAN_STA_PERIODIC_STATS \
1357 	CFG(CFG_ADVERTISE_CONCURRENT_OPERATION) \
1358 	CFG(CFG_BUG_ON_REINIT_FAILURE) \
1359 	CFG(CFG_DBS_SCAN_SELECTION) \
1360 	CFG(CFG_DERIVED_INTERFACE_POOL) \
1361 	CFG(CFG_ENABLE_CONCURRENT_STA) \
1362 	CFG(CFG_ENABLE_FW_LOG) \
1363 	CFG(CFG_ENABLE_FW_UART_PRINT) \
1364 	CFG(CFG_ENABLE_MAC_PROVISION) \
1365 	CFG_ENABLE_MTRACE_ALL \
1366 	CFG(CFG_ENABLE_RAMDUMP_COLLECTION) \
1367 	CFG(CFG_ENABLE_UNIT_TEST_FRAMEWORK) \
1368 	CFG(CFG_INTERFACE_CHANGE_WAIT) \
1369 	CFG(CFG_INFORM_BSS_RSSI_RAW) \
1370 	CFG(CFG_MULTICAST_HOST_FW_MSGS) \
1371 	CFG(CFG_NUM_VDEV_ENABLE) \
1372 	CFG(CFG_OPERATING_FREQUENCY) \
1373 	CFG(CFG_PRIVATE_WEXT_CONTROL) \
1374 	CFG(CFG_PROVISION_INTERFACE_POOL) \
1375 	CFG(CFG_TIMER_MULTIPLIER) \
1376 	CFG(CFG_NB_COMMANDS_RATE_LIMIT) \
1377 	CFG(CFG_HDD_DOT11_MODE) \
1378 	CFG(CFG_ENABLE_DISABLE_CHANNEL) \
1379 	CFG(CFG_READ_MAC_ADDR_FROM_MAC_FILE) \
1380 	CFG(CFG_SAR_CONVERSION) \
1381 	CFG(CFG_ENABLE_HOST_MODULE_LOG_LEVEL) \
1382 	SAR_SAFETY_FEATURE_ALL \
1383 	CFG_GET_WIFI_FEATURES_ALL \
1384 	CFG_CPU_CXPC_THRESHOLD_ALL \
1385 	CFG(CFG_EXCLUDE_SELFTX_FROM_CCA_BUSY_TIME) \
1386 	CFG_LINK_STATE_CACHE_EXPIRY_ALL
1387 #endif
1388