123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270 |
- # SPDX-License-Identifier: GPL-2.0-only
- menuconfig SND_SOC_SOF_TOPLEVEL
- bool "Sound Open Firmware Support"
- help
- This adds support for Sound Open Firmware (SOF). SOF is free and
- generic open source audio DSP firmware for multiple devices.
- Say Y if you have such a device that is supported by SOF.
- If unsure select "N".
- if SND_SOC_SOF_TOPLEVEL
- config SND_SOC_SOF_PCI_DEV
- tristate
- config SND_SOC_SOF_PCI
- tristate "SOF PCI enumeration support"
- depends on PCI
- help
- This adds support for PCI enumeration. This option is
- required to enable Intel Skylake+ devices.
- For backwards-compatibility with previous configurations the selection will
- be used as default for platform-specific drivers.
- Say Y if you need this option.
- If unsure select "N".
- config SND_SOC_SOF_ACPI
- tristate "SOF ACPI enumeration support"
- depends on ACPI || COMPILE_TEST
- help
- This adds support for ACPI enumeration. This option is required
- to enable Intel Broadwell/Baytrail/Cherrytrail devices.
- For backwards-compatibility with previous configurations the selection will
- be used as default for platform-specific drivers.
- Say Y if you need this option.
- If unsure select "N".
- config SND_SOC_SOF_ACPI_DEV
- tristate
- config SND_SOC_SOF_OF
- tristate "SOF OF enumeration support"
- depends on OF || COMPILE_TEST
- help
- This adds support for Device Tree enumeration. This option is
- required to enable i.MX8 or Mediatek devices.
- Say Y if you need this option. If unsure select "N".
- config SND_SOC_SOF_OF_DEV
- tristate
- config SND_SOC_SOF_COMPRESS
- bool
- select SND_SOC_COMPRESS
- config SND_SOC_SOF_DEBUG_PROBES
- tristate
- select SND_SOC_SOF_CLIENT
- select SND_SOC_COMPRESS
- help
- This option enables the data probing feature that can be used to
- gather data directly from specific points of the audio pipeline.
- This option is not user-selectable but automagically handled by
- 'select' statements at a higher level.
- config SND_SOC_SOF_CLIENT
- tristate
- select AUXILIARY_BUS
- help
- This option is not user-selectable but automagically handled by
- 'select' statements at a higher level.
- config SND_SOC_SOF_DEVELOPER_SUPPORT
- bool "SOF developer options support"
- depends on EXPERT && SND_SOC_SOF
- help
- This option unlocks SOF developer options for debug/performance/
- code hardening.
- Distributions should not select this option, only SOF development
- teams should select it.
- Say Y if you are involved in SOF development and need this option.
- If not, select N.
- if SND_SOC_SOF_DEVELOPER_SUPPORT
- config SND_SOC_SOF_FORCE_PROBE_WORKQUEUE
- bool "SOF force probe workqueue"
- select SND_SOC_SOF_PROBE_WORK_QUEUE
- help
- This option forces the use of a probe workqueue, which is only used
- when HDaudio is enabled due to module dependencies. Forcing this
- option is intended for debug only, but this should not add any
- functional issues in nominal cases.
- Say Y if you are involved in SOF development and need this option.
- If not, select N.
- config SND_SOC_SOF_NOCODEC
- tristate
- config SND_SOC_SOF_NOCODEC_SUPPORT
- bool "SOF nocodec mode support"
- help
- This adds support for a dummy/nocodec machine driver fallback
- option if no known codec is detected. This is typically only
- enabled for developers or devices where the sound card is
- controlled externally.
- This option is mutually exclusive with the Intel HDAudio support.
- Selecting it may have negative impacts and prevent e.g. microphone
- functionality from being enabled on Intel CoffeeLake and later
- platforms.
- Distributions should not select this option!
- Say Y if you need this nocodec fallback option.
- If unsure select "N".
- config SND_SOC_SOF_STRICT_ABI_CHECKS
- bool "SOF strict ABI checks"
- help
- This option enables strict ABI checks for firmware and topology
- files.
- When these files are more recent than the kernel, the kernel
- will handle the functionality it supports and may report errors
- during topology creation or run-time usage if new functionality
- is invoked.
- This option will stop topology creation and firmware load upfront.
- It is intended for SOF CI/releases and not for users or distros.
- Say Y if you want strict ABI checks for an SOF release.
- If you are not involved in SOF releases and CI development,
- select "N".
- config SND_SOC_SOF_DEBUG
- bool "SOF debugging features"
- help
- This option can be used to enable or disable individual SOF firmware
- and driver debugging options.
- Say Y if you are debugging SOF FW or drivers.
- If unsure select "N".
- if SND_SOC_SOF_DEBUG
- config SND_SOC_SOF_FORCE_NOCODEC_MODE
- bool "SOF force nocodec Mode"
- depends on SND_SOC_SOF_NOCODEC_SUPPORT
- help
- This forces SOF to use dummy/nocodec as machine driver, even
- though there is a codec detected on the real platform. This is
- typically only enabled for developers for debug purposes, before
- codec/machine driver is ready, or to exclude the impact of those
- drivers.
- Say Y if you need this force nocodec mode option.
- If unsure select "N".
- config SND_SOC_SOF_DEBUG_XRUN_STOP
- bool "SOF stop on XRUN"
- help
- This option forces PCMs to stop on any XRUN event. This is useful to
- preserve any trace data and pipeline status prior to the XRUN.
- Say Y if you are debugging SOF FW pipeline XRUNs.
- If unsure select "N".
- config SND_SOC_SOF_DEBUG_VERBOSE_IPC
- bool "SOF verbose IPC logs"
- help
- This option enables more verbose IPC logs, with command types in
- human-readable form instead of just 32-bit hex dumps. This is useful
- if you are trying to debug IPC with the DSP firmware.
- If unsure select "N".
- config SND_SOC_SOF_DEBUG_FORCE_IPC_POSITION
- bool "SOF force to use IPC for position update on SKL+"
- help
- This option forces to handle stream position update IPCs and run PCM
- elapse to inform ALSA about that, on platforms (e.g. Intel SKL+) that
- with other approach (e.g. HDAC DPIB/posbuf) to elapse PCM.
- On platforms (e.g. Intel SKL-) where position update IPC is the only
- one choice, this setting won't impact anything.
- If you are trying to debug pointer update with position IPCs or where
- DPIB/posbuf is not ready, select "Y".
- If unsure select "N".
- config SND_SOC_SOF_DEBUG_ENABLE_DEBUGFS_CACHE
- bool "SOF enable debugfs caching"
- help
- This option enables caching of debugfs
- memory -> DSP resource (memory, register, etc)
- before the audio DSP is suspended. This will increase the suspend
- latency and therefore should be used for debug purposes only.
- Say Y if you want to enable caching the memory windows.
- If unsure, select "N".
- config SND_SOC_SOF_DEBUG_ENABLE_FIRMWARE_TRACE
- bool "SOF enable firmware trace"
- help
- The firmware trace can be enabled either at build-time with
- this option, or dynamically by setting flags in the SOF core
- module parameter (similar to dynamic debug).
- If unsure, select "N".
- config SND_SOC_SOF_DEBUG_IPC_FLOOD_TEST
- tristate "SOF enable IPC flood test"
- depends on SND_SOC_SOF
- select SND_SOC_SOF_CLIENT
- help
- This option enables a separate client device for IPC flood test
- which can be used to flood the DSP with test IPCs and gather stats
- about response times.
- Say Y if you want to enable IPC flood test.
- If unsure, select "N".
- config SND_SOC_SOF_DEBUG_IPC_FLOOD_TEST_NUM
- int "Number of IPC flood test clients"
- range 1 32
- default 2
- depends on SND_SOC_SOF_DEBUG_IPC_FLOOD_TEST
- help
- Select the number of IPC flood test clients to be created.
- config SND_SOC_SOF_DEBUG_IPC_MSG_INJECTOR
- tristate "SOF enable IPC message injector"
- depends on SND_SOC_SOF
- select SND_SOC_SOF_CLIENT
- help
- This option enables the IPC message injector which can be used to send
- crafted IPC messages to the DSP to test its robustness.
- Say Y if you want to enable the IPC message injector.
- If unsure, select "N".
- config SND_SOC_SOF_DEBUG_RETAIN_DSP_CONTEXT
- bool "SOF retain DSP context on any FW exceptions"
- help
- This option keeps the DSP in D0 state so that firmware debug
- information can be retained and dumped to userspace.
- Say Y if you want to retain DSP context for FW exceptions.
- If unsure, select "N".
- endif ## SND_SOC_SOF_DEBUG
- endif ## SND_SOC_SOF_DEVELOPER_SUPPORT
- config SND_SOC_SOF
- tristate
- select SND_SOC_TOPOLOGY
- select SND_SOC_SOF_NOCODEC if SND_SOC_SOF_NOCODEC_SUPPORT
- help
- This option is not user-selectable but automagically handled by
- 'select' statements at a higher level.
- The selection is made at the top level and does not exactly follow
- module dependencies but since the module or built-in type is decided
- at the top level it doesn't matter.
- config SND_SOC_SOF_PROBE_WORK_QUEUE
- bool
- help
- This option is not user-selectable but automagically handled by
- 'select' statements at a higher level.
- When selected, the probe is handled in two steps, for example to
- avoid lockdeps if request_module is used in the probe.
- # Supported IPC versions
- config SND_SOC_SOF_IPC3
- bool
- config SND_SOC_SOF_INTEL_IPC4
- bool
- source "sound/soc/sof/amd/Kconfig"
- source "sound/soc/sof/imx/Kconfig"
- source "sound/soc/sof/intel/Kconfig"
- source "sound/soc/sof/mediatek/Kconfig"
- source "sound/soc/sof/xtensa/Kconfig"
- endif
|