# SPDX-License-Identifier: GPL-2.0-only config CNSS2 tristate "CNSS2 Platform Driver for Wi-Fi Module" depends on !CNSS && PCI_MSM select CNSS_PLAT_IPC_QMI_SVC help This module adds the support for Connectivity Subsystem (CNSS) used for PCIe based Wi-Fi devices with QCA6174/QCA6290 chipsets. This driver also adds support to integrate WLAN module to subsystem restart framework. config CNSS2_DEBUG bool "CNSS2 Platform Driver Debug Support" depends on CNSS2 help This option is to enable CNSS2 platform driver debug support which primarily includes providing additional verbose logs for certain features, enabling kernel panic for certain cases to aid the debugging, and enabling any other debug mechanisms. config CNSS2_QMI bool "CNSS2 Platform Driver QMI support" select CNSS_QMI_SVC depends on CNSS2 help CNSS2 platform driver uses QMI framework to communicate with WLAN firmware. It sends and receives boot handshake messages to WLAN firmware, which includes hardware and software capabilities and configurations. It also sends WLAN on/off control message to firmware over QMI channel. config CNSS_ASYNC bool "Enable/disable CNSS platform driver asynchronous probe" depends on CNSS2 help If enabled, CNSS platform driver would do asynchronous probe. Using asynchronous probe will allow CNSS platform driver to probe in parallel with other device drivers and will help to reduce kernel boot time. config BUS_AUTO_SUSPEND bool "Enable/Disable Runtime PM support for PCIe based WLAN Drivers" depends on CNSS2 depends on PCI help Runtime Power Management is supported for PCIe based WLAN Drivers. The features enable cld wlan driver to suspend pcie bus when APPS is awake based on the driver inactivity with the Firmware. The Feature uses runtime power management framework from kernel to track bus access clients and to synchronize the driver activity during system pm. This config flag controls the feature per target based. The feature requires CNSS driver support. config CNSS_QCA6290 bool "Enable CNSS QCA6290 chipset specific changes" depends on CNSS2 help This enables the changes from WLAN host driver that are specific to CNSS QCA6290 chipset. These changes are needed to support the new hardware architecture for CNSS QCA6290 chipset. config CNSS_QCA6390 bool "Enable CNSS QCA6390 chipset specific changes" depends on CNSS2 help This enables the changes from WLAN host driver that are specific to CNSS QCA6390 chipset. These changes are needed to support the new hardware architecture for CNSS QCA6390 chipset. config CNSS_EMULATION bool "Enable specific changes for emulation hardware" depends on CNSS2 help This enables the changes from WLAN drivers that are specific to emulation hardware. These changes are needed for WLAN drivers to support and meet the requirement of emulation hardware. config CNSS_QCA6490 bool "Enable CNSS QCA6490 chipset specific changes" depends on CNSS2 help This enables the changes from WLAN host driver that are specific to CNSS QCA6490 chipset. These changes are needed to support the new hardware architecture for CNSS QCA6490 chipset. config CNSS_REQ_FW_DIRECT bool "Enable request_firmware_direct for firmware or configuration file" depends on CNSS2 help This enables calling request_firmware_direct for firmware or configuration file to avoid 60s timeout while search file under user space failure. config CNSS_SUPPORT_DUAL_DEV bool "Enable cnss2 support dual wlan card" depends on CNSS2 && !CNSS_ASYNC help This enables the changes from cnss2 platform driver to support dual wlan card attach. Now just supports QCA6390 chip and does not support asynchronous probe. config CNSS2_CONDITIONAL_POWEROFF bool "Enable/Disable conditional bus suspend and device power off" depends on CNSS2 depends on PCI help Conditional pcie bus suspend and device powering off for wlan after driver probe for the first time. With this feature enabled, pcie bus suspend and device powering off will not take place for certain wlan chipsets after driver probing for the first time to avoid potential subsequent failures during device re-probe(after wlan function driver loaded) under very bad thermal conditions. config DISABLE_CNSS_SRAM_DUMP bool "Disable sram_dump" depends on CNSS2 depends on CNSS2_DEBUG help If enabled, CNSS plafrom driver will not dump sram when MHI power on timeout for CNSS QCA6490 chipset only. Since this feature about sram dump costs 4M memory. config CNSS2_SMMU_DB_SUPPORT bool "Enable early trace stop support" depends on CNSS2 help If enabled, CNSS platform driver will notify wlan fw to stop traces by ringing MHI host doorbell register. This feature helps to get traces which contain smmu fault address and enables debugging. config CNSS_HW_SECURE_DISABLE bool "Enable HW secure disable" depends on CNSS2 help If enabled, WLAN HW can be securely disabled. It would be able to handle WLAN cold boot initialization sequence changes if HW is disabled at boot and WLAN resume sequence after WLAN HW is enabled. config CNSS_HW_SECURE_SMEM bool "Enable SMEM API based HW peripheral security" depends on CNSS2 help If enabled, CNSS platform driver will use SMEM APIs intead of SCM APIs to check peripheral secure state of HW. config CNSS2_SSR_DRIVER_DUMP bool "Enable Host SSR DRIVER DUMP Collection" depends on CNSS2 help If enabled, host driver dump will be collected upon SSR. config CNSS_OUT_OF_TREE bool "Enable Out of Tree Usage" depends on CNSS2 help If enabled, CNSS platform driver modules would be able to access functions from the other modules in the platform driver. config WCNSS_MEM_PRE_ALLOC tristate "WCNSS pre-alloc memory support" help Pre-allocate memory for the WLAN driver module. This feature enable cld wlan driver to use pre allocated memory for it's internal usage and release it to back to pre allocated pool. This memory is allocated at the cold boot time. config CNSS2_ENUM_WITH_LOW_SPEED bool "Enable/Disable enumurate with low speed feature" depends on CNSS2 depends on PCI help Set link target speed to Gen1 before enum, and then restore default RC speed to re-establish link speed. For Genoa chip, needn't restore.