1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0-only 2*4882a593Smuzhiyunconfig SND_SOC_SOF_TOPLEVEL 3*4882a593Smuzhiyun bool "Sound Open Firmware Support" 4*4882a593Smuzhiyun help 5*4882a593Smuzhiyun This adds support for Sound Open Firmware (SOF). SOF is a free and 6*4882a593Smuzhiyun generic open source audio DSP firmware for multiple devices. 7*4882a593Smuzhiyun Say Y if you have such a device that is supported by SOF. 8*4882a593Smuzhiyun If unsure select "N". 9*4882a593Smuzhiyun 10*4882a593Smuzhiyunif SND_SOC_SOF_TOPLEVEL 11*4882a593Smuzhiyun 12*4882a593Smuzhiyunconfig SND_SOC_SOF_PCI 13*4882a593Smuzhiyun tristate "SOF PCI enumeration support" 14*4882a593Smuzhiyun depends on PCI 15*4882a593Smuzhiyun select SND_SOC_SOF 16*4882a593Smuzhiyun select SND_SOC_ACPI if ACPI 17*4882a593Smuzhiyun help 18*4882a593Smuzhiyun This adds support for PCI enumeration. This option is 19*4882a593Smuzhiyun required to enable Intel Skylake+ devices 20*4882a593Smuzhiyun Say Y if you need this option 21*4882a593Smuzhiyun If unsure select "N". 22*4882a593Smuzhiyun 23*4882a593Smuzhiyunconfig SND_SOC_SOF_ACPI 24*4882a593Smuzhiyun tristate "SOF ACPI enumeration support" 25*4882a593Smuzhiyun depends on ACPI || COMPILE_TEST 26*4882a593Smuzhiyun select SND_SOC_SOF 27*4882a593Smuzhiyun select SND_SOC_ACPI if ACPI 28*4882a593Smuzhiyun select IOSF_MBI if X86 && PCI 29*4882a593Smuzhiyun help 30*4882a593Smuzhiyun This adds support for ACPI enumeration. This option is required 31*4882a593Smuzhiyun to enable Intel Broadwell/Baytrail/Cherrytrail devices 32*4882a593Smuzhiyun Say Y if you need this option 33*4882a593Smuzhiyun If unsure select "N". 34*4882a593Smuzhiyun 35*4882a593Smuzhiyunconfig SND_SOC_SOF_OF 36*4882a593Smuzhiyun tristate "SOF OF enumeration support" 37*4882a593Smuzhiyun depends on OF || COMPILE_TEST 38*4882a593Smuzhiyun select SND_SOC_SOF 39*4882a593Smuzhiyun help 40*4882a593Smuzhiyun This adds support for Device Tree enumeration. This option is 41*4882a593Smuzhiyun required to enable i.MX8 devices. 42*4882a593Smuzhiyun Say Y if you need this option. If unsure select "N". 43*4882a593Smuzhiyun 44*4882a593Smuzhiyunconfig SND_SOC_SOF_DEBUG_PROBES 45*4882a593Smuzhiyun bool "SOF enable data probing" 46*4882a593Smuzhiyun select SND_SOC_COMPRESS 47*4882a593Smuzhiyun help 48*4882a593Smuzhiyun This option enables the data probing feature that can be used to 49*4882a593Smuzhiyun gather data directly from specific points of the audio pipeline. 50*4882a593Smuzhiyun Say Y if you want to enable probes. 51*4882a593Smuzhiyun If unsure, select "N". 52*4882a593Smuzhiyun 53*4882a593Smuzhiyunconfig SND_SOC_SOF_DEVELOPER_SUPPORT 54*4882a593Smuzhiyun bool "SOF developer options support" 55*4882a593Smuzhiyun depends on EXPERT 56*4882a593Smuzhiyun help 57*4882a593Smuzhiyun This option unlock SOF developer options for debug/performance/ 58*4882a593Smuzhiyun code hardening. 59*4882a593Smuzhiyun Distributions should not select this option, only SOF development 60*4882a593Smuzhiyun teams should select it. 61*4882a593Smuzhiyun Say Y if you are involved in SOF development and need this option 62*4882a593Smuzhiyun If not, select N 63*4882a593Smuzhiyun 64*4882a593Smuzhiyunif SND_SOC_SOF_DEVELOPER_SUPPORT 65*4882a593Smuzhiyun 66*4882a593Smuzhiyunconfig SND_SOC_SOF_NOCODEC 67*4882a593Smuzhiyun tristate 68*4882a593Smuzhiyun 69*4882a593Smuzhiyunconfig SND_SOC_SOF_NOCODEC_SUPPORT 70*4882a593Smuzhiyun bool "SOF nocodec mode support" 71*4882a593Smuzhiyun help 72*4882a593Smuzhiyun This adds support for a dummy/nocodec machine driver fallback 73*4882a593Smuzhiyun option if no known codec is detected. This is typically only 74*4882a593Smuzhiyun enabled for developers or devices where the sound card is 75*4882a593Smuzhiyun controlled externally 76*4882a593Smuzhiyun This option is mutually exclusive with the Intel HDAudio support, 77*4882a593Smuzhiyun selecting it may have negative impacts and prevent e.g. microphone 78*4882a593Smuzhiyun functionality from being enabled on Intel CoffeeLake and later 79*4882a593Smuzhiyun platforms. 80*4882a593Smuzhiyun Distributions should not select this option! 81*4882a593Smuzhiyun Say Y if you need this nocodec fallback option 82*4882a593Smuzhiyun If unsure select "N". 83*4882a593Smuzhiyun 84*4882a593Smuzhiyunconfig SND_SOC_SOF_STRICT_ABI_CHECKS 85*4882a593Smuzhiyun bool "SOF strict ABI checks" 86*4882a593Smuzhiyun help 87*4882a593Smuzhiyun This option enables strict ABI checks for firmware and topology 88*4882a593Smuzhiyun files. 89*4882a593Smuzhiyun When these files are more recent than the kernel, the kernel 90*4882a593Smuzhiyun will handle the functionality it supports and may report errors 91*4882a593Smuzhiyun during topology creation or run-time usage if new functionality 92*4882a593Smuzhiyun is invoked. 93*4882a593Smuzhiyun This option will stop topology creation and firmware load upfront. 94*4882a593Smuzhiyun It is intended for SOF CI/releases and not for users or distros. 95*4882a593Smuzhiyun Say Y if you want strict ABI checks for an SOF release 96*4882a593Smuzhiyun If you are not involved in SOF releases and CI development 97*4882a593Smuzhiyun select "N". 98*4882a593Smuzhiyun 99*4882a593Smuzhiyunconfig SND_SOC_SOF_DEBUG 100*4882a593Smuzhiyun bool "SOF debugging features" 101*4882a593Smuzhiyun help 102*4882a593Smuzhiyun This option can be used to enable or disable individual SOF firmware 103*4882a593Smuzhiyun and driver debugging options. 104*4882a593Smuzhiyun Say Y if you are debugging SOF FW or drivers. 105*4882a593Smuzhiyun If unsure select "N". 106*4882a593Smuzhiyun 107*4882a593Smuzhiyunif SND_SOC_SOF_DEBUG 108*4882a593Smuzhiyun 109*4882a593Smuzhiyunconfig SND_SOC_SOF_FORCE_NOCODEC_MODE 110*4882a593Smuzhiyun bool "SOF force nocodec Mode" 111*4882a593Smuzhiyun depends on SND_SOC_SOF_NOCODEC_SUPPORT 112*4882a593Smuzhiyun help 113*4882a593Smuzhiyun This forces SOF to use dummy/nocodec as machine driver, even 114*4882a593Smuzhiyun though there is a codec detected on the real platform. This is 115*4882a593Smuzhiyun typically only enabled for developers for debug purposes, before 116*4882a593Smuzhiyun codec/machine driver is ready, or to exclude the impact of those 117*4882a593Smuzhiyun drivers 118*4882a593Smuzhiyun Say Y if you need this force nocodec mode option 119*4882a593Smuzhiyun If unsure select "N". 120*4882a593Smuzhiyun 121*4882a593Smuzhiyunconfig SND_SOC_SOF_DEBUG_XRUN_STOP 122*4882a593Smuzhiyun bool "SOF stop on XRUN" 123*4882a593Smuzhiyun help 124*4882a593Smuzhiyun This option forces PCMs to stop on any XRUN event. This is useful to 125*4882a593Smuzhiyun preserve any trace data ond pipeline status prior to the XRUN. 126*4882a593Smuzhiyun Say Y if you are debugging SOF FW pipeline XRUNs. 127*4882a593Smuzhiyun If unsure select "N". 128*4882a593Smuzhiyun 129*4882a593Smuzhiyunconfig SND_SOC_SOF_DEBUG_VERBOSE_IPC 130*4882a593Smuzhiyun bool "SOF verbose IPC logs" 131*4882a593Smuzhiyun help 132*4882a593Smuzhiyun This option enables more verbose IPC logs, with command types in 133*4882a593Smuzhiyun human-readable form instead of just 32-bit hex dumps. This is useful 134*4882a593Smuzhiyun if you are trying to debug IPC with the DSP firmware. 135*4882a593Smuzhiyun If unsure select "N". 136*4882a593Smuzhiyun 137*4882a593Smuzhiyunconfig SND_SOC_SOF_DEBUG_FORCE_IPC_POSITION 138*4882a593Smuzhiyun bool "SOF force to use IPC for position update on SKL+" 139*4882a593Smuzhiyun help 140*4882a593Smuzhiyun This option force to handle stream position update IPCs and run pcm 141*4882a593Smuzhiyun elapse to inform ALSA about that, on platforms (e.g. Intel SKL+) that 142*4882a593Smuzhiyun with other approach (e.g. HDAC DPIB/posbuf) to elapse PCM. 143*4882a593Smuzhiyun On platforms (e.g. Intel SKL-) where position update IPC is the only 144*4882a593Smuzhiyun one choice, this setting won't impact anything. 145*4882a593Smuzhiyun if you are trying to debug pointer update with position IPCs or where 146*4882a593Smuzhiyun DPIB/posbuf is not ready, select "Y". 147*4882a593Smuzhiyun If unsure select "N". 148*4882a593Smuzhiyun 149*4882a593Smuzhiyunconfig SND_SOC_SOF_DEBUG_ENABLE_DEBUGFS_CACHE 150*4882a593Smuzhiyun bool "SOF enable debugfs caching" 151*4882a593Smuzhiyun help 152*4882a593Smuzhiyun This option enables caching of debugfs 153*4882a593Smuzhiyun memory -> DSP resource (memory, register, etc) 154*4882a593Smuzhiyun before the audio DSP is suspended. This will increase the suspend 155*4882a593Smuzhiyun latency and therefore should be used for debug purposes only. 156*4882a593Smuzhiyun Say Y if you want to enable caching the memory windows. 157*4882a593Smuzhiyun If unsure, select "N". 158*4882a593Smuzhiyun 159*4882a593Smuzhiyunconfig SND_SOC_SOF_DEBUG_ENABLE_FIRMWARE_TRACE 160*4882a593Smuzhiyun bool "SOF enable firmware trace" 161*4882a593Smuzhiyun help 162*4882a593Smuzhiyun The firmware trace can be enabled either at build-time with 163*4882a593Smuzhiyun this option, or dynamically by setting flags in the SOF core 164*4882a593Smuzhiyun module parameter (similar to dynamic debug) 165*4882a593Smuzhiyun If unsure, select "N". 166*4882a593Smuzhiyun 167*4882a593Smuzhiyunconfig SND_SOC_SOF_DEBUG_IPC_FLOOD_TEST 168*4882a593Smuzhiyun bool "SOF enable IPC flood test" 169*4882a593Smuzhiyun help 170*4882a593Smuzhiyun This option enables the IPC flood test which can be used to flood 171*4882a593Smuzhiyun the DSP with test IPCs and gather stats about response times. 172*4882a593Smuzhiyun Say Y if you want to enable IPC flood test. 173*4882a593Smuzhiyun If unsure, select "N". 174*4882a593Smuzhiyun 175*4882a593Smuzhiyunconfig SND_SOC_SOF_DEBUG_RETAIN_DSP_CONTEXT 176*4882a593Smuzhiyun bool "SOF retain DSP context on any FW exceptions" 177*4882a593Smuzhiyun help 178*4882a593Smuzhiyun This option keeps the DSP in D0 state so that firmware debug 179*4882a593Smuzhiyun information can be retained and dumped to userspace. 180*4882a593Smuzhiyun Say Y if you want to retain DSP context for FW exceptions. 181*4882a593Smuzhiyun If unsure, select "N". 182*4882a593Smuzhiyun 183*4882a593Smuzhiyunendif ## SND_SOC_SOF_DEBUG 184*4882a593Smuzhiyun 185*4882a593Smuzhiyunendif ## SND_SOC_SOF_DEVELOPER_SUPPORT 186*4882a593Smuzhiyun 187*4882a593Smuzhiyunconfig SND_SOC_SOF 188*4882a593Smuzhiyun tristate 189*4882a593Smuzhiyun select SND_SOC_TOPOLOGY 190*4882a593Smuzhiyun select SND_SOC_SOF_NOCODEC if SND_SOC_SOF_NOCODEC_SUPPORT 191*4882a593Smuzhiyun help 192*4882a593Smuzhiyun This option is not user-selectable but automagically handled by 193*4882a593Smuzhiyun 'select' statements at a higher level 194*4882a593Smuzhiyun The selection is made at the top level and does not exactly follow 195*4882a593Smuzhiyun module dependencies but since the module or built-in type is decided 196*4882a593Smuzhiyun at the top level it doesn't matter. 197*4882a593Smuzhiyun 198*4882a593Smuzhiyunconfig SND_SOC_SOF_PROBE_WORK_QUEUE 199*4882a593Smuzhiyun bool 200*4882a593Smuzhiyun help 201*4882a593Smuzhiyun This option is not user-selectable but automagically handled by 202*4882a593Smuzhiyun 'select' statements at a higher level 203*4882a593Smuzhiyun When selected, the probe is handled in two steps, for example to 204*4882a593Smuzhiyun avoid lockdeps if request_module is used in the probe. 205*4882a593Smuzhiyun 206*4882a593Smuzhiyunsource "sound/soc/sof/imx/Kconfig" 207*4882a593Smuzhiyunsource "sound/soc/sof/intel/Kconfig" 208*4882a593Smuzhiyunsource "sound/soc/sof/xtensa/Kconfig" 209*4882a593Smuzhiyun 210*4882a593Smuzhiyunendif 211