18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only 28c2ecf20Sopenharmony_ciconfig SND_SOC_SOF_TOPLEVEL 38c2ecf20Sopenharmony_ci bool "Sound Open Firmware Support" 48c2ecf20Sopenharmony_ci help 58c2ecf20Sopenharmony_ci This adds support for Sound Open Firmware (SOF). SOF is a free and 68c2ecf20Sopenharmony_ci generic open source audio DSP firmware for multiple devices. 78c2ecf20Sopenharmony_ci Say Y if you have such a device that is supported by SOF. 88c2ecf20Sopenharmony_ci If unsure select "N". 98c2ecf20Sopenharmony_ci 108c2ecf20Sopenharmony_ciif SND_SOC_SOF_TOPLEVEL 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_ciconfig SND_SOC_SOF_PCI 138c2ecf20Sopenharmony_ci tristate "SOF PCI enumeration support" 148c2ecf20Sopenharmony_ci depends on PCI 158c2ecf20Sopenharmony_ci select SND_SOC_SOF 168c2ecf20Sopenharmony_ci select SND_SOC_ACPI if ACPI 178c2ecf20Sopenharmony_ci help 188c2ecf20Sopenharmony_ci This adds support for PCI enumeration. This option is 198c2ecf20Sopenharmony_ci required to enable Intel Skylake+ devices 208c2ecf20Sopenharmony_ci Say Y if you need this option 218c2ecf20Sopenharmony_ci If unsure select "N". 228c2ecf20Sopenharmony_ci 238c2ecf20Sopenharmony_ciconfig SND_SOC_SOF_ACPI 248c2ecf20Sopenharmony_ci tristate "SOF ACPI enumeration support" 258c2ecf20Sopenharmony_ci depends on ACPI || COMPILE_TEST 268c2ecf20Sopenharmony_ci select SND_SOC_SOF 278c2ecf20Sopenharmony_ci select SND_SOC_ACPI if ACPI 288c2ecf20Sopenharmony_ci select IOSF_MBI if X86 && PCI 298c2ecf20Sopenharmony_ci help 308c2ecf20Sopenharmony_ci This adds support for ACPI enumeration. This option is required 318c2ecf20Sopenharmony_ci to enable Intel Broadwell/Baytrail/Cherrytrail devices 328c2ecf20Sopenharmony_ci Say Y if you need this option 338c2ecf20Sopenharmony_ci If unsure select "N". 348c2ecf20Sopenharmony_ci 358c2ecf20Sopenharmony_ciconfig SND_SOC_SOF_OF 368c2ecf20Sopenharmony_ci tristate "SOF OF enumeration support" 378c2ecf20Sopenharmony_ci depends on OF || COMPILE_TEST 388c2ecf20Sopenharmony_ci select SND_SOC_SOF 398c2ecf20Sopenharmony_ci help 408c2ecf20Sopenharmony_ci This adds support for Device Tree enumeration. This option is 418c2ecf20Sopenharmony_ci required to enable i.MX8 devices. 428c2ecf20Sopenharmony_ci Say Y if you need this option. If unsure select "N". 438c2ecf20Sopenharmony_ci 448c2ecf20Sopenharmony_ciconfig SND_SOC_SOF_DEBUG_PROBES 458c2ecf20Sopenharmony_ci bool "SOF enable data probing" 468c2ecf20Sopenharmony_ci select SND_SOC_COMPRESS 478c2ecf20Sopenharmony_ci help 488c2ecf20Sopenharmony_ci This option enables the data probing feature that can be used to 498c2ecf20Sopenharmony_ci gather data directly from specific points of the audio pipeline. 508c2ecf20Sopenharmony_ci Say Y if you want to enable probes. 518c2ecf20Sopenharmony_ci If unsure, select "N". 528c2ecf20Sopenharmony_ci 538c2ecf20Sopenharmony_ciconfig SND_SOC_SOF_DEVELOPER_SUPPORT 548c2ecf20Sopenharmony_ci bool "SOF developer options support" 558c2ecf20Sopenharmony_ci depends on EXPERT 568c2ecf20Sopenharmony_ci help 578c2ecf20Sopenharmony_ci This option unlock SOF developer options for debug/performance/ 588c2ecf20Sopenharmony_ci code hardening. 598c2ecf20Sopenharmony_ci Distributions should not select this option, only SOF development 608c2ecf20Sopenharmony_ci teams should select it. 618c2ecf20Sopenharmony_ci Say Y if you are involved in SOF development and need this option 628c2ecf20Sopenharmony_ci If not, select N 638c2ecf20Sopenharmony_ci 648c2ecf20Sopenharmony_ciif SND_SOC_SOF_DEVELOPER_SUPPORT 658c2ecf20Sopenharmony_ci 668c2ecf20Sopenharmony_ciconfig SND_SOC_SOF_NOCODEC 678c2ecf20Sopenharmony_ci tristate 688c2ecf20Sopenharmony_ci 698c2ecf20Sopenharmony_ciconfig SND_SOC_SOF_NOCODEC_SUPPORT 708c2ecf20Sopenharmony_ci bool "SOF nocodec mode support" 718c2ecf20Sopenharmony_ci help 728c2ecf20Sopenharmony_ci This adds support for a dummy/nocodec machine driver fallback 738c2ecf20Sopenharmony_ci option if no known codec is detected. This is typically only 748c2ecf20Sopenharmony_ci enabled for developers or devices where the sound card is 758c2ecf20Sopenharmony_ci controlled externally 768c2ecf20Sopenharmony_ci This option is mutually exclusive with the Intel HDAudio support, 778c2ecf20Sopenharmony_ci selecting it may have negative impacts and prevent e.g. microphone 788c2ecf20Sopenharmony_ci functionality from being enabled on Intel CoffeeLake and later 798c2ecf20Sopenharmony_ci platforms. 808c2ecf20Sopenharmony_ci Distributions should not select this option! 818c2ecf20Sopenharmony_ci Say Y if you need this nocodec fallback option 828c2ecf20Sopenharmony_ci If unsure select "N". 838c2ecf20Sopenharmony_ci 848c2ecf20Sopenharmony_ciconfig SND_SOC_SOF_STRICT_ABI_CHECKS 858c2ecf20Sopenharmony_ci bool "SOF strict ABI checks" 868c2ecf20Sopenharmony_ci help 878c2ecf20Sopenharmony_ci This option enables strict ABI checks for firmware and topology 888c2ecf20Sopenharmony_ci files. 898c2ecf20Sopenharmony_ci When these files are more recent than the kernel, the kernel 908c2ecf20Sopenharmony_ci will handle the functionality it supports and may report errors 918c2ecf20Sopenharmony_ci during topology creation or run-time usage if new functionality 928c2ecf20Sopenharmony_ci is invoked. 938c2ecf20Sopenharmony_ci This option will stop topology creation and firmware load upfront. 948c2ecf20Sopenharmony_ci It is intended for SOF CI/releases and not for users or distros. 958c2ecf20Sopenharmony_ci Say Y if you want strict ABI checks for an SOF release 968c2ecf20Sopenharmony_ci If you are not involved in SOF releases and CI development 978c2ecf20Sopenharmony_ci select "N". 988c2ecf20Sopenharmony_ci 998c2ecf20Sopenharmony_ciconfig SND_SOC_SOF_DEBUG 1008c2ecf20Sopenharmony_ci bool "SOF debugging features" 1018c2ecf20Sopenharmony_ci help 1028c2ecf20Sopenharmony_ci This option can be used to enable or disable individual SOF firmware 1038c2ecf20Sopenharmony_ci and driver debugging options. 1048c2ecf20Sopenharmony_ci Say Y if you are debugging SOF FW or drivers. 1058c2ecf20Sopenharmony_ci If unsure select "N". 1068c2ecf20Sopenharmony_ci 1078c2ecf20Sopenharmony_ciif SND_SOC_SOF_DEBUG 1088c2ecf20Sopenharmony_ci 1098c2ecf20Sopenharmony_ciconfig SND_SOC_SOF_FORCE_NOCODEC_MODE 1108c2ecf20Sopenharmony_ci bool "SOF force nocodec Mode" 1118c2ecf20Sopenharmony_ci depends on SND_SOC_SOF_NOCODEC_SUPPORT 1128c2ecf20Sopenharmony_ci help 1138c2ecf20Sopenharmony_ci This forces SOF to use dummy/nocodec as machine driver, even 1148c2ecf20Sopenharmony_ci though there is a codec detected on the real platform. This is 1158c2ecf20Sopenharmony_ci typically only enabled for developers for debug purposes, before 1168c2ecf20Sopenharmony_ci codec/machine driver is ready, or to exclude the impact of those 1178c2ecf20Sopenharmony_ci drivers 1188c2ecf20Sopenharmony_ci Say Y if you need this force nocodec mode option 1198c2ecf20Sopenharmony_ci If unsure select "N". 1208c2ecf20Sopenharmony_ci 1218c2ecf20Sopenharmony_ciconfig SND_SOC_SOF_DEBUG_XRUN_STOP 1228c2ecf20Sopenharmony_ci bool "SOF stop on XRUN" 1238c2ecf20Sopenharmony_ci help 1248c2ecf20Sopenharmony_ci This option forces PCMs to stop on any XRUN event. This is useful to 1258c2ecf20Sopenharmony_ci preserve any trace data ond pipeline status prior to the XRUN. 1268c2ecf20Sopenharmony_ci Say Y if you are debugging SOF FW pipeline XRUNs. 1278c2ecf20Sopenharmony_ci If unsure select "N". 1288c2ecf20Sopenharmony_ci 1298c2ecf20Sopenharmony_ciconfig SND_SOC_SOF_DEBUG_VERBOSE_IPC 1308c2ecf20Sopenharmony_ci bool "SOF verbose IPC logs" 1318c2ecf20Sopenharmony_ci help 1328c2ecf20Sopenharmony_ci This option enables more verbose IPC logs, with command types in 1338c2ecf20Sopenharmony_ci human-readable form instead of just 32-bit hex dumps. This is useful 1348c2ecf20Sopenharmony_ci if you are trying to debug IPC with the DSP firmware. 1358c2ecf20Sopenharmony_ci If unsure select "N". 1368c2ecf20Sopenharmony_ci 1378c2ecf20Sopenharmony_ciconfig SND_SOC_SOF_DEBUG_FORCE_IPC_POSITION 1388c2ecf20Sopenharmony_ci bool "SOF force to use IPC for position update on SKL+" 1398c2ecf20Sopenharmony_ci help 1408c2ecf20Sopenharmony_ci This option force to handle stream position update IPCs and run pcm 1418c2ecf20Sopenharmony_ci elapse to inform ALSA about that, on platforms (e.g. Intel SKL+) that 1428c2ecf20Sopenharmony_ci with other approach (e.g. HDAC DPIB/posbuf) to elapse PCM. 1438c2ecf20Sopenharmony_ci On platforms (e.g. Intel SKL-) where position update IPC is the only 1448c2ecf20Sopenharmony_ci one choice, this setting won't impact anything. 1458c2ecf20Sopenharmony_ci if you are trying to debug pointer update with position IPCs or where 1468c2ecf20Sopenharmony_ci DPIB/posbuf is not ready, select "Y". 1478c2ecf20Sopenharmony_ci If unsure select "N". 1488c2ecf20Sopenharmony_ci 1498c2ecf20Sopenharmony_ciconfig SND_SOC_SOF_DEBUG_ENABLE_DEBUGFS_CACHE 1508c2ecf20Sopenharmony_ci bool "SOF enable debugfs caching" 1518c2ecf20Sopenharmony_ci help 1528c2ecf20Sopenharmony_ci This option enables caching of debugfs 1538c2ecf20Sopenharmony_ci memory -> DSP resource (memory, register, etc) 1548c2ecf20Sopenharmony_ci before the audio DSP is suspended. This will increase the suspend 1558c2ecf20Sopenharmony_ci latency and therefore should be used for debug purposes only. 1568c2ecf20Sopenharmony_ci Say Y if you want to enable caching the memory windows. 1578c2ecf20Sopenharmony_ci If unsure, select "N". 1588c2ecf20Sopenharmony_ci 1598c2ecf20Sopenharmony_ciconfig SND_SOC_SOF_DEBUG_ENABLE_FIRMWARE_TRACE 1608c2ecf20Sopenharmony_ci bool "SOF enable firmware trace" 1618c2ecf20Sopenharmony_ci help 1628c2ecf20Sopenharmony_ci The firmware trace can be enabled either at build-time with 1638c2ecf20Sopenharmony_ci this option, or dynamically by setting flags in the SOF core 1648c2ecf20Sopenharmony_ci module parameter (similar to dynamic debug) 1658c2ecf20Sopenharmony_ci If unsure, select "N". 1668c2ecf20Sopenharmony_ci 1678c2ecf20Sopenharmony_ciconfig SND_SOC_SOF_DEBUG_IPC_FLOOD_TEST 1688c2ecf20Sopenharmony_ci bool "SOF enable IPC flood test" 1698c2ecf20Sopenharmony_ci help 1708c2ecf20Sopenharmony_ci This option enables the IPC flood test which can be used to flood 1718c2ecf20Sopenharmony_ci the DSP with test IPCs and gather stats about response times. 1728c2ecf20Sopenharmony_ci Say Y if you want to enable IPC flood test. 1738c2ecf20Sopenharmony_ci If unsure, select "N". 1748c2ecf20Sopenharmony_ci 1758c2ecf20Sopenharmony_ciconfig SND_SOC_SOF_DEBUG_RETAIN_DSP_CONTEXT 1768c2ecf20Sopenharmony_ci bool "SOF retain DSP context on any FW exceptions" 1778c2ecf20Sopenharmony_ci help 1788c2ecf20Sopenharmony_ci This option keeps the DSP in D0 state so that firmware debug 1798c2ecf20Sopenharmony_ci information can be retained and dumped to userspace. 1808c2ecf20Sopenharmony_ci Say Y if you want to retain DSP context for FW exceptions. 1818c2ecf20Sopenharmony_ci If unsure, select "N". 1828c2ecf20Sopenharmony_ci 1838c2ecf20Sopenharmony_ciendif ## SND_SOC_SOF_DEBUG 1848c2ecf20Sopenharmony_ci 1858c2ecf20Sopenharmony_ciendif ## SND_SOC_SOF_DEVELOPER_SUPPORT 1868c2ecf20Sopenharmony_ci 1878c2ecf20Sopenharmony_ciconfig SND_SOC_SOF 1888c2ecf20Sopenharmony_ci tristate 1898c2ecf20Sopenharmony_ci select SND_SOC_TOPOLOGY 1908c2ecf20Sopenharmony_ci select SND_SOC_SOF_NOCODEC if SND_SOC_SOF_NOCODEC_SUPPORT 1918c2ecf20Sopenharmony_ci help 1928c2ecf20Sopenharmony_ci This option is not user-selectable but automagically handled by 1938c2ecf20Sopenharmony_ci 'select' statements at a higher level 1948c2ecf20Sopenharmony_ci The selection is made at the top level and does not exactly follow 1958c2ecf20Sopenharmony_ci module dependencies but since the module or built-in type is decided 1968c2ecf20Sopenharmony_ci at the top level it doesn't matter. 1978c2ecf20Sopenharmony_ci 1988c2ecf20Sopenharmony_ciconfig SND_SOC_SOF_PROBE_WORK_QUEUE 1998c2ecf20Sopenharmony_ci bool 2008c2ecf20Sopenharmony_ci help 2018c2ecf20Sopenharmony_ci This option is not user-selectable but automagically handled by 2028c2ecf20Sopenharmony_ci 'select' statements at a higher level 2038c2ecf20Sopenharmony_ci When selected, the probe is handled in two steps, for example to 2048c2ecf20Sopenharmony_ci avoid lockdeps if request_module is used in the probe. 2058c2ecf20Sopenharmony_ci 2068c2ecf20Sopenharmony_cisource "sound/soc/sof/imx/Kconfig" 2078c2ecf20Sopenharmony_cisource "sound/soc/sof/intel/Kconfig" 2088c2ecf20Sopenharmony_cisource "sound/soc/sof/xtensa/Kconfig" 2098c2ecf20Sopenharmony_ci 2108c2ecf20Sopenharmony_ciendif 211