296 lines
10 KiB
Plaintext
296 lines
10 KiB
Plaintext
# 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
|
|
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 static 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 at build time 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_NOCODEC_DEBUG_SUPPORT
|
|
bool "SOF nocodec debug mode support"
|
|
depends on !SND_SOC_SOF_NOCODEC_SUPPORT
|
|
help
|
|
This adds support for a dummy/nocodec machine driver fallback
|
|
option.
|
|
Unlike the SND_SOC_SOF_NOCODEC_SUPPORT, this option is NOT
|
|
mutually exclusive at build with the Intel HDAudio support. The
|
|
selection will be done depending on command line or modprobe.d settings
|
|
Distributions should not select this option!
|
|
Say Y if you need this nocodec debug fallback option.
|
|
If unsure select "N".
|
|
|
|
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_IPC_KERNEL_INJECTOR
|
|
tristate "SOF enable IPC kernel injector"
|
|
depends on SND_SOC_SOF
|
|
select SND_SOC_SOF_CLIENT
|
|
help
|
|
This option enables the IPC kernel injector which can be used to send
|
|
crafted IPC messages to the kernel to test its robustness against
|
|
DSP messages.
|
|
Say Y if you want to enable the IPC kernel 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
|
|
select SND_SOC_SOF_NOCODEC if SND_SOC_SOF_NOCODEC_DEBUG_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
|