1 # SPDX-License-Identifier: GPL-2.0-only
2 
3 config 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 
13 config 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 
22 config 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 
33 config 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 
42 config 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 
56 config 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 
65 config 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 
74 config 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 
83 config 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 
92 config 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 
100 config 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 
108 config 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 
121 config 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 
130 config 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 
139 config 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 
147 config 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 
154 config 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 
160 config 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 
167 config 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 
175 config 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