# SPDX-License-Identifier: GPL-2.0-only 
 | 
config SND_SOC_SOF_TOPLEVEL 
 | 
    bool "Sound Open Firmware Support" 
 | 
    help 
 | 
      This adds support for Sound Open Firmware (SOF). SOF is a 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 
 | 
    tristate "SOF PCI enumeration support" 
 | 
    depends on PCI 
 | 
    select SND_SOC_SOF 
 | 
    select SND_SOC_ACPI if ACPI 
 | 
    help 
 | 
      This adds support for PCI enumeration. This option is 
 | 
      required to enable Intel Skylake+ devices 
 | 
      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 
 | 
    select SND_SOC_SOF 
 | 
    select SND_SOC_ACPI if ACPI 
 | 
    select IOSF_MBI if X86 && PCI 
 | 
    help 
 | 
      This adds support for ACPI enumeration. This option is required 
 | 
      to enable Intel Broadwell/Baytrail/Cherrytrail devices 
 | 
      Say Y if you need this option 
 | 
      If unsure select "N". 
 | 
  
 | 
config SND_SOC_SOF_OF 
 | 
    tristate "SOF OF enumeration support" 
 | 
    depends on OF || COMPILE_TEST 
 | 
    select SND_SOC_SOF 
 | 
    help 
 | 
      This adds support for Device Tree enumeration. This option is 
 | 
      required to enable i.MX8 devices. 
 | 
      Say Y if you need this option. If unsure select "N". 
 | 
  
 | 
config SND_SOC_SOF_DEBUG_PROBES 
 | 
    bool "SOF enable data probing" 
 | 
    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. 
 | 
      Say Y if you want to enable probes. 
 | 
      If unsure, select "N". 
 | 
  
 | 
config SND_SOC_SOF_DEVELOPER_SUPPORT 
 | 
    bool "SOF developer options support" 
 | 
    depends on EXPERT 
 | 
    help 
 | 
      This option unlock 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_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 ond 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 force 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 
 | 
    bool "SOF enable IPC flood test" 
 | 
    help 
 | 
      This option enables the 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_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. 
 | 
  
 | 
source "sound/soc/sof/imx/Kconfig" 
 | 
source "sound/soc/sof/intel/Kconfig" 
 | 
source "sound/soc/sof/xtensa/Kconfig" 
 | 
  
 | 
endif 
 |