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