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