1# SPDX-License-Identifier: GPL-2.0-only 2config 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_NOCODEC 72 tristate 73 74config SND_SOC_SOF_NOCODEC_SUPPORT 75 bool "SOF nocodec mode support" 76 help 77 This adds support for a dummy/nocodec machine driver fallback 78 option if no known codec is detected. This is typically only 79 enabled for developers or devices where the sound card is 80 controlled externally. 81 This option is mutually exclusive with the Intel HDAudio support. 82 Selecting it may have negative impacts and prevent e.g. microphone 83 functionality from being enabled on Intel CoffeeLake and later 84 platforms. 85 Distributions should not select this option! 86 Say Y if you need this nocodec fallback option. 87 If unsure select "N". 88 89config SND_SOC_SOF_STRICT_ABI_CHECKS 90 bool "SOF strict ABI checks" 91 help 92 This option enables strict ABI checks for firmware and topology 93 files. 94 When these files are more recent than the kernel, the kernel 95 will handle the functionality it supports and may report errors 96 during topology creation or run-time usage if new functionality 97 is invoked. 98 This option will stop topology creation and firmware load upfront. 99 It is intended for SOF CI/releases and not for users or distros. 100 Say Y if you want strict ABI checks for an SOF release. 101 If you are not involved in SOF releases and CI development, 102 select "N". 103 104config SND_SOC_SOF_DEBUG 105 bool "SOF debugging features" 106 help 107 This option can be used to enable or disable individual SOF firmware 108 and driver debugging options. 109 Say Y if you are debugging SOF FW or drivers. 110 If unsure select "N". 111 112if SND_SOC_SOF_DEBUG 113 114config SND_SOC_SOF_FORCE_NOCODEC_MODE 115 bool "SOF force nocodec Mode" 116 depends on SND_SOC_SOF_NOCODEC_SUPPORT 117 help 118 This forces SOF to use dummy/nocodec as machine driver, even 119 though there is a codec detected on the real platform. This is 120 typically only enabled for developers for debug purposes, before 121 codec/machine driver is ready, or to exclude the impact of those 122 drivers. 123 Say Y if you need this force nocodec mode option. 124 If unsure select "N". 125 126config SND_SOC_SOF_DEBUG_XRUN_STOP 127 bool "SOF stop on XRUN" 128 help 129 This option forces PCMs to stop on any XRUN event. This is useful to 130 preserve any trace data and pipeline status prior to the XRUN. 131 Say Y if you are debugging SOF FW pipeline XRUNs. 132 If unsure select "N". 133 134config SND_SOC_SOF_DEBUG_VERBOSE_IPC 135 bool "SOF verbose IPC logs" 136 help 137 This option enables more verbose IPC logs, with command types in 138 human-readable form instead of just 32-bit hex dumps. This is useful 139 if you are trying to debug IPC with the DSP firmware. 140 If unsure select "N". 141 142config SND_SOC_SOF_DEBUG_FORCE_IPC_POSITION 143 bool "SOF force to use IPC for position update on SKL+" 144 help 145 This option forces to handle stream position update IPCs and run PCM 146 elapse to inform ALSA about that, on platforms (e.g. Intel SKL+) that 147 with other approach (e.g. HDAC DPIB/posbuf) to elapse PCM. 148 On platforms (e.g. Intel SKL-) where position update IPC is the only 149 one choice, this setting won't impact anything. 150 If you are trying to debug pointer update with position IPCs or where 151 DPIB/posbuf is not ready, select "Y". 152 If unsure select "N". 153 154config SND_SOC_SOF_DEBUG_ENABLE_DEBUGFS_CACHE 155 bool "SOF enable debugfs caching" 156 help 157 This option enables caching of debugfs 158 memory -> DSP resource (memory, register, etc) 159 before the audio DSP is suspended. This will increase the suspend 160 latency and therefore should be used for debug purposes only. 161 Say Y if you want to enable caching the memory windows. 162 If unsure, select "N". 163 164config SND_SOC_SOF_DEBUG_ENABLE_FIRMWARE_TRACE 165 bool "SOF enable firmware trace" 166 help 167 The firmware trace can be enabled either at build-time with 168 this option, or dynamically by setting flags in the SOF core 169 module parameter (similar to dynamic debug). 170 If unsure, select "N". 171 172config SND_SOC_SOF_DEBUG_IPC_FLOOD_TEST 173 bool "SOF enable IPC flood test" 174 help 175 This option enables the IPC flood test which can be used to flood 176 the DSP with test IPCs and gather stats about response times. 177 Say Y if you want to enable IPC flood test. 178 If unsure, select "N". 179 180config SND_SOC_SOF_DEBUG_RETAIN_DSP_CONTEXT 181 bool "SOF retain DSP context on any FW exceptions" 182 help 183 This option keeps the DSP in D0 state so that firmware debug 184 information can be retained and dumped to userspace. 185 Say Y if you want to retain DSP context for FW exceptions. 186 If unsure, select "N". 187 188endif ## SND_SOC_SOF_DEBUG 189 190endif ## SND_SOC_SOF_DEVELOPER_SUPPORT 191 192config SND_SOC_SOF 193 tristate 194 select SND_SOC_TOPOLOGY 195 select SND_SOC_SOF_NOCODEC if SND_SOC_SOF_NOCODEC_SUPPORT 196 help 197 This option is not user-selectable but automagically handled by 198 'select' statements at a higher level. 199 The selection is made at the top level and does not exactly follow 200 module dependencies but since the module or built-in type is decided 201 at the top level it doesn't matter. 202 203config SND_SOC_SOF_PROBE_WORK_QUEUE 204 bool 205 help 206 This option is not user-selectable but automagically handled by 207 'select' statements at a higher level. 208 When selected, the probe is handled in two steps, for example to 209 avoid lockdeps if request_module is used in the probe. 210 211source "sound/soc/sof/imx/Kconfig" 212source "sound/soc/sof/intel/Kconfig" 213source "sound/soc/sof/xtensa/Kconfig" 214 215endif 216