blob: a9a1d502daae8b936c796b97b65d7b37c2eb6422 [file] [log] [blame]
Liam Girdwood7e978fa2019-04-12 11:09:02 -05001config 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
Randy Dunlap4c885192019-05-06 12:01:40 -070031 select IOSF_MBI if X86 && PCI
Liam Girdwood7e978fa2019-04-12 11:09:02 -050032 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
Pierre-Louis Bossart8d01c3c2019-05-10 11:38:03 -050047 tristate
48
49config SND_SOC_SOF_NOCODEC_SUPPORT
50 bool "SOF nocodec mode support"
Liam Girdwood7e978fa2019-04-12 11:09:02 -050051 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
Pierre-Louis Bossart73affae2019-04-30 18:09:16 -050059config 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
Liam Girdwood7e978fa2019-04-12 11:09:02 -050074config 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"
Pierre-Louis Bossart8d01c3c2019-05-10 11:38:03 -050086 depends on SND_SOC_SOF_NOCODEC_SUPPORT
Liam Girdwood7e978fa2019-04-12 11:09:02 -050087 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
Pierre-Louis Bossart8d01c3c2019-05-10 11:38:03 -0500141 select SND_SOC_SOF_NOCODEC if SND_SOC_SOF_NOCODEC_SUPPORT
Liam Girdwood7e978fa2019-04-12 11:09:02 -0500142 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