^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) # SPDX-License-Identifier: GPL-2.0-only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) config SND_SOC_SOF_TOPLEVEL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) bool "Sound Open Firmware Support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) This adds support for Sound Open Firmware (SOF). SOF is a free and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) generic open source audio DSP firmware for multiple devices.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) Say Y if you have such a device that is supported by SOF.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) If unsure select "N".
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) if SND_SOC_SOF_TOPLEVEL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) config SND_SOC_SOF_PCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) tristate "SOF PCI enumeration support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) depends on PCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) select SND_SOC_SOF
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) select SND_SOC_ACPI if ACPI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) This adds support for PCI enumeration. This option is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) required to enable Intel Skylake+ devices
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) Say Y if you need this option
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) If unsure select "N".
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) config SND_SOC_SOF_ACPI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) tristate "SOF ACPI enumeration support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) depends on ACPI || COMPILE_TEST
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) select SND_SOC_SOF
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) select SND_SOC_ACPI if ACPI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) select IOSF_MBI if X86 && PCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) This adds support for ACPI enumeration. This option is required
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) to enable Intel Broadwell/Baytrail/Cherrytrail devices
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) Say Y if you need this option
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) If unsure select "N".
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) config SND_SOC_SOF_OF
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) tristate "SOF OF enumeration support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) depends on OF || COMPILE_TEST
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) select SND_SOC_SOF
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) This adds support for Device Tree enumeration. This option is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) required to enable i.MX8 devices.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) Say Y if you need this option. If unsure select "N".
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) config SND_SOC_SOF_DEBUG_PROBES
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) bool "SOF enable data probing"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) select SND_SOC_COMPRESS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) This option enables the data probing feature that can be used to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) gather data directly from specific points of the audio pipeline.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) Say Y if you want to enable probes.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) If unsure, select "N".
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) config SND_SOC_SOF_DEVELOPER_SUPPORT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) bool "SOF developer options support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) depends on EXPERT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) This option unlock SOF developer options for debug/performance/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) code hardening.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) Distributions should not select this option, only SOF development
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) teams should select it.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) Say Y if you are involved in SOF development and need this option
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) If not, select N
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) if SND_SOC_SOF_DEVELOPER_SUPPORT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) config SND_SOC_SOF_NOCODEC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) tristate
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) config SND_SOC_SOF_NOCODEC_SUPPORT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) bool "SOF nocodec mode support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) This adds support for a dummy/nocodec machine driver fallback
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) option if no known codec is detected. This is typically only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) enabled for developers or devices where the sound card is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) controlled externally
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) This option is mutually exclusive with the Intel HDAudio support,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) selecting it may have negative impacts and prevent e.g. microphone
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) functionality from being enabled on Intel CoffeeLake and later
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) platforms.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) Distributions should not select this option!
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) Say Y if you need this nocodec fallback option
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) If unsure select "N".
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) config SND_SOC_SOF_STRICT_ABI_CHECKS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) bool "SOF strict ABI checks"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) This option enables strict ABI checks for firmware and topology
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) files.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) When these files are more recent than the kernel, the kernel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) will handle the functionality it supports and may report errors
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) during topology creation or run-time usage if new functionality
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) is invoked.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) This option will stop topology creation and firmware load upfront.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) It is intended for SOF CI/releases and not for users or distros.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) Say Y if you want strict ABI checks for an SOF release
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) If you are not involved in SOF releases and CI development
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) select "N".
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) config SND_SOC_SOF_DEBUG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) bool "SOF debugging features"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) This option can be used to enable or disable individual SOF firmware
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) and driver debugging options.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) Say Y if you are debugging SOF FW or drivers.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) If unsure select "N".
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) if SND_SOC_SOF_DEBUG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) config SND_SOC_SOF_FORCE_NOCODEC_MODE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) bool "SOF force nocodec Mode"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) depends on SND_SOC_SOF_NOCODEC_SUPPORT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) This forces SOF to use dummy/nocodec as machine driver, even
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) though there is a codec detected on the real platform. This is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) typically only enabled for developers for debug purposes, before
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) codec/machine driver is ready, or to exclude the impact of those
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) drivers
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) Say Y if you need this force nocodec mode option
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) If unsure select "N".
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) config SND_SOC_SOF_DEBUG_XRUN_STOP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) bool "SOF stop on XRUN"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) This option forces PCMs to stop on any XRUN event. This is useful to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) preserve any trace data ond pipeline status prior to the XRUN.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) Say Y if you are debugging SOF FW pipeline XRUNs.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) If unsure select "N".
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) config SND_SOC_SOF_DEBUG_VERBOSE_IPC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) bool "SOF verbose IPC logs"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) This option enables more verbose IPC logs, with command types in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) human-readable form instead of just 32-bit hex dumps. This is useful
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) if you are trying to debug IPC with the DSP firmware.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) If unsure select "N".
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) config SND_SOC_SOF_DEBUG_FORCE_IPC_POSITION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) bool "SOF force to use IPC for position update on SKL+"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) This option force to handle stream position update IPCs and run pcm
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) elapse to inform ALSA about that, on platforms (e.g. Intel SKL+) that
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) with other approach (e.g. HDAC DPIB/posbuf) to elapse PCM.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) On platforms (e.g. Intel SKL-) where position update IPC is the only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) one choice, this setting won't impact anything.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) if you are trying to debug pointer update with position IPCs or where
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) DPIB/posbuf is not ready, select "Y".
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) If unsure select "N".
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) config SND_SOC_SOF_DEBUG_ENABLE_DEBUGFS_CACHE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) bool "SOF enable debugfs caching"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) This option enables caching of debugfs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) memory -> DSP resource (memory, register, etc)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) before the audio DSP is suspended. This will increase the suspend
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) latency and therefore should be used for debug purposes only.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) Say Y if you want to enable caching the memory windows.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) If unsure, select "N".
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) config SND_SOC_SOF_DEBUG_ENABLE_FIRMWARE_TRACE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) bool "SOF enable firmware trace"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) The firmware trace can be enabled either at build-time with
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) this option, or dynamically by setting flags in the SOF core
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) module parameter (similar to dynamic debug)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) If unsure, select "N".
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) config SND_SOC_SOF_DEBUG_IPC_FLOOD_TEST
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) bool "SOF enable IPC flood test"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) This option enables the IPC flood test which can be used to flood
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) the DSP with test IPCs and gather stats about response times.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) Say Y if you want to enable IPC flood test.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) If unsure, select "N".
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) config SND_SOC_SOF_DEBUG_RETAIN_DSP_CONTEXT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) bool "SOF retain DSP context on any FW exceptions"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) This option keeps the DSP in D0 state so that firmware debug
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) information can be retained and dumped to userspace.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) Say Y if you want to retain DSP context for FW exceptions.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) If unsure, select "N".
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) endif ## SND_SOC_SOF_DEBUG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) endif ## SND_SOC_SOF_DEVELOPER_SUPPORT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) config SND_SOC_SOF
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) tristate
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) select SND_SOC_TOPOLOGY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) select SND_SOC_SOF_NOCODEC if SND_SOC_SOF_NOCODEC_SUPPORT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) This option is not user-selectable but automagically handled by
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) 'select' statements at a higher level
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) The selection is made at the top level and does not exactly follow
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) module dependencies but since the module or built-in type is decided
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) at the top level it doesn't matter.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) config SND_SOC_SOF_PROBE_WORK_QUEUE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) This option is not user-selectable but automagically handled by
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) 'select' statements at a higher level
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) When selected, the probe is handled in two steps, for example to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204) avoid lockdeps if request_module is used in the probe.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) source "sound/soc/sof/imx/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) source "sound/soc/sof/intel/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) source "sound/soc/sof/xtensa/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) endif