162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_cimenuconfig SND_SOC_SOF_TOPLEVEL 362306a36Sopenharmony_ci bool "Sound Open Firmware Support" 462306a36Sopenharmony_ci help 562306a36Sopenharmony_ci This adds support for Sound Open Firmware (SOF). SOF is free and 662306a36Sopenharmony_ci generic open source audio DSP firmware for multiple devices. 762306a36Sopenharmony_ci Say Y if you have such a device that is supported by SOF. 862306a36Sopenharmony_ci If unsure select "N". 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ciif SND_SOC_SOF_TOPLEVEL 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ciconfig SND_SOC_SOF_PCI_DEV 1362306a36Sopenharmony_ci tristate 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ciconfig SND_SOC_SOF_PCI 1662306a36Sopenharmony_ci tristate "SOF PCI enumeration support" 1762306a36Sopenharmony_ci depends on PCI 1862306a36Sopenharmony_ci help 1962306a36Sopenharmony_ci This adds support for PCI enumeration. This option is 2062306a36Sopenharmony_ci required to enable Intel Skylake+ devices. 2162306a36Sopenharmony_ci For backwards-compatibility with previous configurations the selection will 2262306a36Sopenharmony_ci be used as default for platform-specific drivers. 2362306a36Sopenharmony_ci Say Y if you need this option. 2462306a36Sopenharmony_ci If unsure select "N". 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_ciconfig SND_SOC_SOF_ACPI 2762306a36Sopenharmony_ci tristate "SOF ACPI enumeration support" 2862306a36Sopenharmony_ci depends on ACPI || COMPILE_TEST 2962306a36Sopenharmony_ci help 3062306a36Sopenharmony_ci This adds support for ACPI enumeration. This option is required 3162306a36Sopenharmony_ci to enable Intel Broadwell/Baytrail/Cherrytrail devices. 3262306a36Sopenharmony_ci For backwards-compatibility with previous configurations the selection will 3362306a36Sopenharmony_ci be used as default for platform-specific drivers. 3462306a36Sopenharmony_ci Say Y if you need this option. 3562306a36Sopenharmony_ci If unsure select "N". 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_ciconfig SND_SOC_SOF_ACPI_DEV 3862306a36Sopenharmony_ci tristate 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_ciconfig SND_SOC_SOF_OF 4162306a36Sopenharmony_ci tristate "SOF OF enumeration support" 4262306a36Sopenharmony_ci depends on OF 4362306a36Sopenharmony_ci help 4462306a36Sopenharmony_ci This adds support for Device Tree enumeration. This option is 4562306a36Sopenharmony_ci required to enable i.MX8 or Mediatek devices. 4662306a36Sopenharmony_ci Say Y if you need this option. If unsure select "N". 4762306a36Sopenharmony_ci 4862306a36Sopenharmony_ciconfig SND_SOC_SOF_OF_DEV 4962306a36Sopenharmony_ci tristate 5062306a36Sopenharmony_ci 5162306a36Sopenharmony_ciconfig SND_SOC_SOF_COMPRESS 5262306a36Sopenharmony_ci bool 5362306a36Sopenharmony_ci select SND_SOC_COMPRESS 5462306a36Sopenharmony_ci 5562306a36Sopenharmony_ciconfig SND_SOC_SOF_DEBUG_PROBES 5662306a36Sopenharmony_ci tristate 5762306a36Sopenharmony_ci select SND_SOC_SOF_CLIENT 5862306a36Sopenharmony_ci select SND_SOC_COMPRESS 5962306a36Sopenharmony_ci help 6062306a36Sopenharmony_ci This option enables the data probing feature that can be used to 6162306a36Sopenharmony_ci gather data directly from specific points of the audio pipeline. 6262306a36Sopenharmony_ci This option is not user-selectable but automagically handled by 6362306a36Sopenharmony_ci 'select' statements at a higher level. 6462306a36Sopenharmony_ci 6562306a36Sopenharmony_ciconfig SND_SOC_SOF_CLIENT 6662306a36Sopenharmony_ci tristate 6762306a36Sopenharmony_ci select AUXILIARY_BUS 6862306a36Sopenharmony_ci help 6962306a36Sopenharmony_ci This option is not user-selectable but automagically handled by 7062306a36Sopenharmony_ci 'select' statements at a higher level. 7162306a36Sopenharmony_ci 7262306a36Sopenharmony_ciconfig SND_SOC_SOF_DEVELOPER_SUPPORT 7362306a36Sopenharmony_ci bool "SOF developer options support" 7462306a36Sopenharmony_ci depends on EXPERT && SND_SOC_SOF 7562306a36Sopenharmony_ci help 7662306a36Sopenharmony_ci This option unlocks SOF developer options for debug/performance/ 7762306a36Sopenharmony_ci code hardening. 7862306a36Sopenharmony_ci Distributions should not select this option, only SOF development 7962306a36Sopenharmony_ci teams should select it. 8062306a36Sopenharmony_ci Say Y if you are involved in SOF development and need this option. 8162306a36Sopenharmony_ci If not, select N. 8262306a36Sopenharmony_ci 8362306a36Sopenharmony_ciif SND_SOC_SOF_DEVELOPER_SUPPORT 8462306a36Sopenharmony_ci 8562306a36Sopenharmony_ciconfig SND_SOC_SOF_FORCE_PROBE_WORKQUEUE 8662306a36Sopenharmony_ci bool "SOF force probe workqueue" 8762306a36Sopenharmony_ci select SND_SOC_SOF_PROBE_WORK_QUEUE 8862306a36Sopenharmony_ci help 8962306a36Sopenharmony_ci This option forces the use of a probe workqueue, which is only used 9062306a36Sopenharmony_ci when HDaudio is enabled due to module dependencies. Forcing this 9162306a36Sopenharmony_ci option is intended for debug only, but this should not add any 9262306a36Sopenharmony_ci functional issues in nominal cases. 9362306a36Sopenharmony_ci Say Y if you are involved in SOF development and need this option. 9462306a36Sopenharmony_ci If not, select N. 9562306a36Sopenharmony_ci 9662306a36Sopenharmony_ciconfig SND_SOC_SOF_NOCODEC 9762306a36Sopenharmony_ci tristate 9862306a36Sopenharmony_ci 9962306a36Sopenharmony_ciconfig SND_SOC_SOF_NOCODEC_SUPPORT 10062306a36Sopenharmony_ci bool "SOF nocodec static mode support" 10162306a36Sopenharmony_ci help 10262306a36Sopenharmony_ci This adds support for a dummy/nocodec machine driver fallback 10362306a36Sopenharmony_ci option if no known codec is detected. This is typically only 10462306a36Sopenharmony_ci enabled for developers or devices where the sound card is 10562306a36Sopenharmony_ci controlled externally. 10662306a36Sopenharmony_ci This option is mutually exclusive at build time with the Intel HDAudio support. 10762306a36Sopenharmony_ci Selecting it may have negative impacts and prevent e.g. microphone 10862306a36Sopenharmony_ci functionality from being enabled on Intel CoffeeLake and later 10962306a36Sopenharmony_ci platforms. 11062306a36Sopenharmony_ci Distributions should not select this option! 11162306a36Sopenharmony_ci Say Y if you need this nocodec fallback option. 11262306a36Sopenharmony_ci If unsure select "N". 11362306a36Sopenharmony_ci 11462306a36Sopenharmony_ciconfig SND_SOC_SOF_STRICT_ABI_CHECKS 11562306a36Sopenharmony_ci bool "SOF strict ABI checks" 11662306a36Sopenharmony_ci help 11762306a36Sopenharmony_ci This option enables strict ABI checks for firmware and topology 11862306a36Sopenharmony_ci files. 11962306a36Sopenharmony_ci When these files are more recent than the kernel, the kernel 12062306a36Sopenharmony_ci will handle the functionality it supports and may report errors 12162306a36Sopenharmony_ci during topology creation or run-time usage if new functionality 12262306a36Sopenharmony_ci is invoked. 12362306a36Sopenharmony_ci This option will stop topology creation and firmware load upfront. 12462306a36Sopenharmony_ci It is intended for SOF CI/releases and not for users or distros. 12562306a36Sopenharmony_ci Say Y if you want strict ABI checks for an SOF release. 12662306a36Sopenharmony_ci If you are not involved in SOF releases and CI development, 12762306a36Sopenharmony_ci select "N". 12862306a36Sopenharmony_ci 12962306a36Sopenharmony_ciconfig SND_SOC_SOF_DEBUG 13062306a36Sopenharmony_ci bool "SOF debugging features" 13162306a36Sopenharmony_ci help 13262306a36Sopenharmony_ci This option can be used to enable or disable individual SOF firmware 13362306a36Sopenharmony_ci and driver debugging options. 13462306a36Sopenharmony_ci Say Y if you are debugging SOF FW or drivers. 13562306a36Sopenharmony_ci If unsure select "N". 13662306a36Sopenharmony_ci 13762306a36Sopenharmony_ciif SND_SOC_SOF_DEBUG 13862306a36Sopenharmony_ci 13962306a36Sopenharmony_ciconfig SND_SOC_SOF_NOCODEC_DEBUG_SUPPORT 14062306a36Sopenharmony_ci bool "SOF nocodec debug mode support" 14162306a36Sopenharmony_ci depends on !SND_SOC_SOF_NOCODEC_SUPPORT 14262306a36Sopenharmony_ci help 14362306a36Sopenharmony_ci This adds support for a dummy/nocodec machine driver fallback 14462306a36Sopenharmony_ci option. 14562306a36Sopenharmony_ci Unlike the SND_SOC_SOF_NOCODEC_SUPPORT, this option is NOT 14662306a36Sopenharmony_ci mutually exclusive at build with the Intel HDAudio support. The 14762306a36Sopenharmony_ci selection will be done depending on command line or modprobe.d settings 14862306a36Sopenharmony_ci Distributions should not select this option! 14962306a36Sopenharmony_ci Say Y if you need this nocodec debug fallback option. 15062306a36Sopenharmony_ci If unsure select "N". 15162306a36Sopenharmony_ci 15262306a36Sopenharmony_ciconfig SND_SOC_SOF_FORCE_NOCODEC_MODE 15362306a36Sopenharmony_ci bool "SOF force nocodec Mode" 15462306a36Sopenharmony_ci depends on SND_SOC_SOF_NOCODEC_SUPPORT 15562306a36Sopenharmony_ci help 15662306a36Sopenharmony_ci This forces SOF to use dummy/nocodec as machine driver, even 15762306a36Sopenharmony_ci though there is a codec detected on the real platform. This is 15862306a36Sopenharmony_ci typically only enabled for developers for debug purposes, before 15962306a36Sopenharmony_ci codec/machine driver is ready, or to exclude the impact of those 16062306a36Sopenharmony_ci drivers. 16162306a36Sopenharmony_ci Say Y if you need this force nocodec mode option. 16262306a36Sopenharmony_ci If unsure select "N". 16362306a36Sopenharmony_ci 16462306a36Sopenharmony_ciconfig SND_SOC_SOF_DEBUG_XRUN_STOP 16562306a36Sopenharmony_ci bool "SOF stop on XRUN" 16662306a36Sopenharmony_ci help 16762306a36Sopenharmony_ci This option forces PCMs to stop on any XRUN event. This is useful to 16862306a36Sopenharmony_ci preserve any trace data and pipeline status prior to the XRUN. 16962306a36Sopenharmony_ci Say Y if you are debugging SOF FW pipeline XRUNs. 17062306a36Sopenharmony_ci If unsure select "N". 17162306a36Sopenharmony_ci 17262306a36Sopenharmony_ciconfig SND_SOC_SOF_DEBUG_VERBOSE_IPC 17362306a36Sopenharmony_ci bool "SOF verbose IPC logs" 17462306a36Sopenharmony_ci help 17562306a36Sopenharmony_ci This option enables more verbose IPC logs, with command types in 17662306a36Sopenharmony_ci human-readable form instead of just 32-bit hex dumps. This is useful 17762306a36Sopenharmony_ci if you are trying to debug IPC with the DSP firmware. 17862306a36Sopenharmony_ci If unsure select "N". 17962306a36Sopenharmony_ci 18062306a36Sopenharmony_ciconfig SND_SOC_SOF_DEBUG_FORCE_IPC_POSITION 18162306a36Sopenharmony_ci bool "SOF force to use IPC for position update on SKL+" 18262306a36Sopenharmony_ci help 18362306a36Sopenharmony_ci This option forces to handle stream position update IPCs and run PCM 18462306a36Sopenharmony_ci elapse to inform ALSA about that, on platforms (e.g. Intel SKL+) that 18562306a36Sopenharmony_ci with other approach (e.g. HDAC DPIB/posbuf) to elapse PCM. 18662306a36Sopenharmony_ci On platforms (e.g. Intel SKL-) where position update IPC is the only 18762306a36Sopenharmony_ci one choice, this setting won't impact anything. 18862306a36Sopenharmony_ci If you are trying to debug pointer update with position IPCs or where 18962306a36Sopenharmony_ci DPIB/posbuf is not ready, select "Y". 19062306a36Sopenharmony_ci If unsure select "N". 19162306a36Sopenharmony_ci 19262306a36Sopenharmony_ciconfig SND_SOC_SOF_DEBUG_ENABLE_DEBUGFS_CACHE 19362306a36Sopenharmony_ci bool "SOF enable debugfs caching" 19462306a36Sopenharmony_ci help 19562306a36Sopenharmony_ci This option enables caching of debugfs 19662306a36Sopenharmony_ci memory -> DSP resource (memory, register, etc) 19762306a36Sopenharmony_ci before the audio DSP is suspended. This will increase the suspend 19862306a36Sopenharmony_ci latency and therefore should be used for debug purposes only. 19962306a36Sopenharmony_ci Say Y if you want to enable caching the memory windows. 20062306a36Sopenharmony_ci If unsure, select "N". 20162306a36Sopenharmony_ci 20262306a36Sopenharmony_ciconfig SND_SOC_SOF_DEBUG_ENABLE_FIRMWARE_TRACE 20362306a36Sopenharmony_ci bool "SOF enable firmware trace" 20462306a36Sopenharmony_ci help 20562306a36Sopenharmony_ci The firmware trace can be enabled either at build-time with 20662306a36Sopenharmony_ci this option, or dynamically by setting flags in the SOF core 20762306a36Sopenharmony_ci module parameter (similar to dynamic debug). 20862306a36Sopenharmony_ci If unsure, select "N". 20962306a36Sopenharmony_ci 21062306a36Sopenharmony_ciconfig SND_SOC_SOF_DEBUG_IPC_FLOOD_TEST 21162306a36Sopenharmony_ci tristate "SOF enable IPC flood test" 21262306a36Sopenharmony_ci depends on SND_SOC_SOF 21362306a36Sopenharmony_ci select SND_SOC_SOF_CLIENT 21462306a36Sopenharmony_ci help 21562306a36Sopenharmony_ci This option enables a separate client device for IPC flood test 21662306a36Sopenharmony_ci which can be used to flood the DSP with test IPCs and gather stats 21762306a36Sopenharmony_ci about response times. 21862306a36Sopenharmony_ci Say Y if you want to enable IPC flood test. 21962306a36Sopenharmony_ci If unsure, select "N". 22062306a36Sopenharmony_ci 22162306a36Sopenharmony_ciconfig SND_SOC_SOF_DEBUG_IPC_FLOOD_TEST_NUM 22262306a36Sopenharmony_ci int "Number of IPC flood test clients" 22362306a36Sopenharmony_ci range 1 32 22462306a36Sopenharmony_ci default 2 22562306a36Sopenharmony_ci depends on SND_SOC_SOF_DEBUG_IPC_FLOOD_TEST 22662306a36Sopenharmony_ci help 22762306a36Sopenharmony_ci Select the number of IPC flood test clients to be created. 22862306a36Sopenharmony_ci 22962306a36Sopenharmony_ciconfig SND_SOC_SOF_DEBUG_IPC_MSG_INJECTOR 23062306a36Sopenharmony_ci tristate "SOF enable IPC message injector" 23162306a36Sopenharmony_ci depends on SND_SOC_SOF 23262306a36Sopenharmony_ci select SND_SOC_SOF_CLIENT 23362306a36Sopenharmony_ci help 23462306a36Sopenharmony_ci This option enables the IPC message injector which can be used to send 23562306a36Sopenharmony_ci crafted IPC messages to the DSP to test its robustness. 23662306a36Sopenharmony_ci Say Y if you want to enable the IPC message injector. 23762306a36Sopenharmony_ci If unsure, select "N". 23862306a36Sopenharmony_ci 23962306a36Sopenharmony_ciconfig SND_SOC_SOF_DEBUG_IPC_KERNEL_INJECTOR 24062306a36Sopenharmony_ci tristate "SOF enable IPC kernel injector" 24162306a36Sopenharmony_ci depends on SND_SOC_SOF 24262306a36Sopenharmony_ci select SND_SOC_SOF_CLIENT 24362306a36Sopenharmony_ci help 24462306a36Sopenharmony_ci This option enables the IPC kernel injector which can be used to send 24562306a36Sopenharmony_ci crafted IPC messages to the kernel to test its robustness against 24662306a36Sopenharmony_ci DSP messages. 24762306a36Sopenharmony_ci Say Y if you want to enable the IPC kernel injector. 24862306a36Sopenharmony_ci If unsure, select "N". 24962306a36Sopenharmony_ci 25062306a36Sopenharmony_ciconfig SND_SOC_SOF_DEBUG_RETAIN_DSP_CONTEXT 25162306a36Sopenharmony_ci bool "SOF retain DSP context on any FW exceptions" 25262306a36Sopenharmony_ci help 25362306a36Sopenharmony_ci This option keeps the DSP in D0 state so that firmware debug 25462306a36Sopenharmony_ci information can be retained and dumped to userspace. 25562306a36Sopenharmony_ci Say Y if you want to retain DSP context for FW exceptions. 25662306a36Sopenharmony_ci If unsure, select "N". 25762306a36Sopenharmony_ci 25862306a36Sopenharmony_ciendif ## SND_SOC_SOF_DEBUG 25962306a36Sopenharmony_ci 26062306a36Sopenharmony_ciendif ## SND_SOC_SOF_DEVELOPER_SUPPORT 26162306a36Sopenharmony_ci 26262306a36Sopenharmony_ciconfig SND_SOC_SOF 26362306a36Sopenharmony_ci tristate 26462306a36Sopenharmony_ci select SND_SOC_TOPOLOGY 26562306a36Sopenharmony_ci select SND_SOC_SOF_NOCODEC if SND_SOC_SOF_NOCODEC_SUPPORT 26662306a36Sopenharmony_ci select SND_SOC_SOF_NOCODEC if SND_SOC_SOF_NOCODEC_DEBUG_SUPPORT 26762306a36Sopenharmony_ci help 26862306a36Sopenharmony_ci This option is not user-selectable but automagically handled by 26962306a36Sopenharmony_ci 'select' statements at a higher level. 27062306a36Sopenharmony_ci The selection is made at the top level and does not exactly follow 27162306a36Sopenharmony_ci module dependencies but since the module or built-in type is decided 27262306a36Sopenharmony_ci at the top level it doesn't matter. 27362306a36Sopenharmony_ci 27462306a36Sopenharmony_ciconfig SND_SOC_SOF_PROBE_WORK_QUEUE 27562306a36Sopenharmony_ci bool 27662306a36Sopenharmony_ci help 27762306a36Sopenharmony_ci This option is not user-selectable but automagically handled by 27862306a36Sopenharmony_ci 'select' statements at a higher level. 27962306a36Sopenharmony_ci When selected, the probe is handled in two steps, for example to 28062306a36Sopenharmony_ci avoid lockdeps if request_module is used in the probe. 28162306a36Sopenharmony_ci 28262306a36Sopenharmony_ci# Supported IPC versions 28362306a36Sopenharmony_ciconfig SND_SOC_SOF_IPC3 28462306a36Sopenharmony_ci bool 28562306a36Sopenharmony_ci 28662306a36Sopenharmony_ciconfig SND_SOC_SOF_INTEL_IPC4 28762306a36Sopenharmony_ci bool 28862306a36Sopenharmony_ci 28962306a36Sopenharmony_cisource "sound/soc/sof/amd/Kconfig" 29062306a36Sopenharmony_cisource "sound/soc/sof/imx/Kconfig" 29162306a36Sopenharmony_cisource "sound/soc/sof/intel/Kconfig" 29262306a36Sopenharmony_cisource "sound/soc/sof/mediatek/Kconfig" 29362306a36Sopenharmony_cisource "sound/soc/sof/xtensa/Kconfig" 29462306a36Sopenharmony_ci 29562306a36Sopenharmony_ciendif 296