1# SPDX-License-Identifier: GPL-2.0-only
2
3config CNSS2
4	tristate "CNSS2 Platform Driver for Wi-Fi Module"
5	depends on !CNSS && PCI_MSM
6	select CNSS_PLAT_IPC_QMI_SVC
7	help
8	  This module adds the support for Connectivity Subsystem (CNSS) used
9	  for PCIe based Wi-Fi devices with QCA6174/QCA6290 chipsets.
10	  This driver also adds support to integrate WLAN module to subsystem
11	  restart framework.
12
13config CNSS2_DEBUG
14	bool "CNSS2 Platform Driver Debug Support"
15	depends on CNSS2
16	help
17	  This option is to enable CNSS2 platform driver debug support which
18	  primarily includes providing additional verbose logs for certain
19	  features, enabling kernel panic for certain cases to aid the
20	  debugging, and enabling any other debug mechanisms.
21
22config CNSS2_QMI
23	bool "CNSS2 Platform Driver QMI support"
24	select CNSS_QMI_SVC
25	depends on CNSS2
26	help
27	  CNSS2 platform driver uses QMI framework to communicate with WLAN
28	  firmware. It sends and receives boot handshake messages to WLAN
29	  firmware, which includes hardware and software capabilities and
30	  configurations. It also sends WLAN on/off control message to
31	  firmware over QMI channel.
32
33config CNSS_ASYNC
34	bool "Enable/disable CNSS platform driver asynchronous probe"
35	depends on CNSS2
36	help
37	  If enabled, CNSS platform driver would do asynchronous probe.
38	  Using asynchronous probe will allow CNSS platform driver to
39	  probe in parallel with other device drivers and will help to
40	  reduce kernel boot time.
41
42config BUS_AUTO_SUSPEND
43	bool "Enable/Disable Runtime PM support for PCIe based WLAN Drivers"
44	depends on CNSS2
45	depends on PCI
46	help
47	  Runtime Power Management is supported for PCIe based WLAN Drivers.
48	  The features enable cld wlan driver to suspend pcie bus when APPS
49	  is awake based on the driver inactivity with the Firmware.
50	  The Feature uses runtime power management framework from kernel to
51	  track bus access clients and to synchronize the driver activity
52	  during system pm.
53	  This config flag controls the feature per target based. The feature
54	  requires CNSS driver support.
55
56config CNSS_QCA6290
57	bool "Enable CNSS QCA6290 chipset specific changes"
58	depends on CNSS2
59	help
60	  This enables the changes from WLAN host driver that are specific to
61	  CNSS QCA6290 chipset.
62	  These changes are needed to support the new hardware architecture
63	  for CNSS QCA6290 chipset.
64
65config CNSS_QCA6390
66	bool "Enable CNSS QCA6390 chipset specific changes"
67	depends on CNSS2
68	help
69	  This enables the changes from WLAN host driver that are specific to
70	  CNSS QCA6390 chipset.
71	  These changes are needed to support the new hardware architecture
72	  for CNSS QCA6390 chipset.
73
74config CNSS_EMULATION
75	bool "Enable specific changes for emulation hardware"
76	depends on CNSS2
77	help
78	  This enables the changes from WLAN drivers that are specific to
79	  emulation hardware.
80	  These changes are needed for WLAN drivers to support and meet the
81	  requirement of emulation hardware.
82
83config CNSS_QCA6490
84	bool "Enable CNSS QCA6490 chipset specific changes"
85	depends on CNSS2
86	help
87	  This enables the changes from WLAN host driver that are specific to
88	  CNSS QCA6490 chipset.
89	  These changes are needed to support the new hardware architecture
90	  for CNSS QCA6490 chipset.
91
92config CNSS_REQ_FW_DIRECT
93	bool "Enable request_firmware_direct for firmware or configuration file"
94	depends on CNSS2
95	help
96	  This enables calling request_firmware_direct for firmware or
97	  configuration file to avoid 60s timeout while search file under user
98	  space failure.
99
100config CNSS_SUPPORT_DUAL_DEV
101	bool "Enable cnss2 support dual wlan card"
102	depends on CNSS2 && !CNSS_ASYNC
103	help
104	  This enables the changes from cnss2 platform driver to support dual
105	  wlan card attach. Now just supports QCA6390 chip and does not support
106	  asynchronous probe.
107
108config CNSS2_CONDITIONAL_POWEROFF
109	bool "Enable/Disable conditional bus suspend and device power off"
110	depends on CNSS2
111	depends on PCI
112	help
113	  Conditional pcie bus suspend and device powering off for wlan after
114	  driver probe for the first time.
115	  With this feature enabled, pcie bus suspend and device powering off
116	  will not take place for certain wlan chipsets after driver probing
117	  for the first time to avoid potential subsequent failures during
118	  device re-probe(after wlan function driver loaded) under very bad
119	  thermal conditions.
120
121config DISABLE_CNSS_SRAM_DUMP
122	bool "Disable sram_dump"
123	depends on CNSS2
124	depends on CNSS2_DEBUG
125	help
126	  If enabled, CNSS plafrom driver will not dump sram when MHI power on
127	  timeout for CNSS QCA6490 chipset only. Since this feature about
128	  sram dump costs 4M memory.
129
130config CNSS2_SMMU_DB_SUPPORT
131	bool "Enable early trace stop support"
132	depends on CNSS2
133	help
134	  If enabled, CNSS platform driver will notify wlan fw to stop
135	  traces by ringing MHI host doorbell register. This feature helps
136	  to get traces which contain smmu fault address and enables
137	  debugging.
138
139config CNSS_HW_SECURE_DISABLE
140	bool "Enable HW secure disable"
141	depends on CNSS2
142	help
143	  If enabled, WLAN HW can be securely disabled. It would be able to
144	  handle WLAN cold boot initialization sequence changes if HW is
145	  disabled at boot and WLAN resume sequence after WLAN HW is enabled.
146
147config CNSS_HW_SECURE_SMEM
148	bool "Enable SMEM API based HW peripheral security"
149	depends on CNSS2
150	help
151	  If enabled, CNSS platform driver will use SMEM APIs intead of SCM
152	  APIs to check peripheral secure state of HW.
153
154config CNSS2_SSR_DRIVER_DUMP
155	bool "Enable Host SSR DRIVER DUMP Collection"
156	depends on CNSS2
157	help
158	  If enabled, host driver dump will be collected upon SSR.
159
160config CNSS_OUT_OF_TREE
161	bool "Enable Out of Tree Usage"
162	depends on CNSS2
163	help
164	  If enabled, CNSS platform driver modules would be able to access
165	  functions from the other modules in the platform driver.
166
167config WCNSS_MEM_PRE_ALLOC
168	tristate "WCNSS pre-alloc memory support"
169	help
170	  Pre-allocate memory for the WLAN driver module.
171	  This feature enable cld wlan driver to use pre allocated memory
172	  for it's internal usage and release it to back to pre allocated pool.
173	  This memory is allocated at the cold boot time.
174
175config CNSS2_ENUM_WITH_LOW_SPEED
176	bool "Enable/Disable enumurate with low speed feature"
177	depends on CNSS2
178	depends on PCI
179	help
180	  Set link target speed to Gen1 before enum, and then restore default
181	  RC speed to re-establish link speed. For Genoa chip, needn't restore.
182