hc
2024-12-19 9370bb92b2d16684ee45cf24e879c93c509162da
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
# 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