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