271 lines
		
	
	
		
			9.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			271 lines
		
	
	
		
			9.0 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 || 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
 |