xref: /openbmc/linux/sound/soc/sof/Kconfig (revision 14104eb6)
1config SND_SOC_SOF_TOPLEVEL
2	bool "Sound Open Firmware Support"
3	help
4	  This adds support for Sound Open Firmware (SOF). SOF is a free and
5	  generic open source audio DSP firmware for multiple devices.
6	  Say Y if you have such a device that is supported by SOF.
7	  If unsure select "N".
8
9if SND_SOC_SOF_TOPLEVEL
10
11config SND_SOC_SOF_PCI
12	tristate "SOF PCI enumeration support"
13	depends on PCI
14	select SND_SOC_SOF
15	select SND_SOC_ACPI if ACPI
16	select SND_SOC_SOF_OPTIONS
17	select SND_SOC_SOF_INTEL_PCI if SND_SOC_SOF_INTEL_TOPLEVEL
18	help
19	  This adds support for PCI enumeration. This option is
20	  required to enable Intel Skylake+ devices
21	  Say Y if you need this option
22	  If unsure select "N".
23
24config SND_SOC_SOF_ACPI
25	tristate "SOF ACPI enumeration support"
26	depends on ACPI || COMPILE_TEST
27	select SND_SOC_SOF
28	select SND_SOC_ACPI if ACPI
29	select SND_SOC_SOF_OPTIONS
30	select SND_SOC_SOF_INTEL_ACPI if SND_SOC_SOF_INTEL_TOPLEVEL
31	select IOSF_MBI if X86 && PCI
32	help
33	  This adds support for ACPI enumeration. This option is required
34	  to enable Intel Haswell/Broadwell/Baytrail/Cherrytrail devices
35	  Say Y if you need this option
36	  If unsure select "N".
37
38config SND_SOC_SOF_OPTIONS
39	tristate
40	help
41	  This option is not user-selectable but automagically handled by
42	  'select' statements at a higher level
43
44if SND_SOC_SOF_OPTIONS
45
46config SND_SOC_SOF_NOCODEC
47	tristate
48
49config SND_SOC_SOF_NOCODEC_SUPPORT
50	bool "SOF nocodec mode support"
51	help
52	  This adds support for a dummy/nocodec machine driver fallback
53	  option if no known codec is detected. This is typically only
54	  enabled for developers or devices where the sound card is
55	  controlled externally
56	  Say Y if you need this nocodec fallback option
57	  If unsure select "N".
58
59config SND_SOC_SOF_STRICT_ABI_CHECKS
60	bool "SOF strict ABI checks"
61	help
62	  This option enables strict ABI checks for firmware and topology
63	  files.
64	  When these files are more recent than the kernel, the kernel
65	  will handle the functionality it supports and may report errors
66	  during topology creation or run-time usage if new functionality
67	  is invoked.
68	  This option will stop topology creation and firmware load upfront.
69	  It is intended for SOF CI/releases and not for users or distros.
70	  Say Y if you want strict ABI checks for an SOF release
71	  If you are not involved in SOF releases and CI development
72	  select "N".
73
74config SND_SOC_SOF_DEBUG
75	bool "SOF debugging features"
76	help
77	  This option can be used to enable or disable individual SOF firmware
78	  and driver debugging options.
79	  Say Y if you are debugging SOF FW or drivers.
80	  If unsure select "N".
81
82if SND_SOC_SOF_DEBUG
83
84config SND_SOC_SOF_FORCE_NOCODEC_MODE
85	bool "SOF force nocodec Mode"
86	depends on SND_SOC_SOF_NOCODEC_SUPPORT
87	help
88	  This forces SOF to use dummy/nocodec as machine driver, even
89	  though there is a codec detected on the real platform. This is
90	  typically only enabled for developers for debug purposes, before
91	  codec/machine driver is ready, or to exclude the impact of those
92	  drivers
93	  Say Y if you need this force nocodec mode option
94	  If unsure select "N".
95
96config SND_SOC_SOF_DEBUG_XRUN_STOP
97	bool "SOF stop on XRUN"
98	help
99	  This option forces PCMs to stop on any XRUN event. This is useful to
100	  preserve any trace data ond pipeline status prior to the XRUN.
101	  Say Y if you are debugging SOF FW pipeline XRUNs.
102	  If unsure select "N".
103
104config SND_SOC_SOF_DEBUG_VERBOSE_IPC
105	bool "SOF verbose IPC logs"
106	help
107	  This option enables more verbose IPC logs, with command types in
108	  human-readable form instead of just 32-bit hex dumps. This is useful
109	  if you are trying to debug IPC with the DSP firmware.
110	  If unsure select "N".
111
112config SND_SOC_SOF_DEBUG_FORCE_IPC_POSITION
113	bool "SOF force to use IPC for position update on SKL+"
114	help
115	  This option force to handle stream position update IPCs and run pcm
116	  elapse to inform ALSA about that, on platforms (e.g. Intel SKL+) that
117	  with other approach (e.g. HDAC DPIB/posbuf) to elapse PCM.
118	  On platforms (e.g. Intel SKL-) where position update IPC is the only
119	  one choice, this setting won't impact anything.
120	  if you are trying to debug pointer update with position IPCs or where
121	  DPIB/posbuf is not ready, select "Y".
122	  If unsure select "N".
123
124config SND_SOC_SOF_DEBUG_ENABLE_DEBUGFS_CACHE
125	bool "SOF enable debugfs caching"
126	help
127	  This option enables caching of debugfs
128	  memory -> DSP resource (memory, register, etc)
129	  before the audio DSP is suspended. This will increase the suspend
130	  latency and therefore should be used for debug purposes only.
131	  Say Y if you want to enable caching the memory windows.
132	  If unsure, select "N".
133
134endif ## SND_SOC_SOF_DEBUG
135
136endif ## SND_SOC_SOF_OPTIONS
137
138config SND_SOC_SOF
139	tristate
140	select SND_SOC_TOPOLOGY
141	select SND_SOC_SOF_NOCODEC if SND_SOC_SOF_NOCODEC_SUPPORT
142	help
143	  This option is not user-selectable but automagically handled by
144	  'select' statements at a higher level
145	  The selection is made at the top level and does not exactly follow
146	  module dependencies but since the module or built-in type is decided
147	  at the top level it doesn't matter.
148
149config SND_SOC_SOF_PROBE_WORK_QUEUE
150	bool
151	help
152	  This option is not user-selectable but automagically handled by
153	  'select' statements at a higher level
154	  When selected, the probe is handled in two steps, for example to
155	  avoid lockdeps if request_module is used in the probe.
156
157source "sound/soc/sof/intel/Kconfig"
158source "sound/soc/sof/xtensa/Kconfig"
159
160endif
161