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