forked from Minki/linux
ASoC: SOF: Add Build support for SOF core and Intel drivers
Build SOF core and Intel-specific drivers. Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Reviewed-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
e6b140e918
commit
7e978fa37d
@ -63,6 +63,7 @@ source "sound/soc/rockchip/Kconfig"
|
||||
source "sound/soc/samsung/Kconfig"
|
||||
source "sound/soc/sh/Kconfig"
|
||||
source "sound/soc/sirf/Kconfig"
|
||||
source "sound/soc/sof/Kconfig"
|
||||
source "sound/soc/spear/Kconfig"
|
||||
source "sound/soc/sprd/Kconfig"
|
||||
source "sound/soc/sti/Kconfig"
|
||||
|
@ -47,6 +47,7 @@ obj-$(CONFIG_SND_SOC) += rockchip/
|
||||
obj-$(CONFIG_SND_SOC) += samsung/
|
||||
obj-$(CONFIG_SND_SOC) += sh/
|
||||
obj-$(CONFIG_SND_SOC) += sirf/
|
||||
obj-$(CONFIG_SND_SOC) += sof/
|
||||
obj-$(CONFIG_SND_SOC) += spear/
|
||||
obj-$(CONFIG_SND_SOC) += sprd/
|
||||
obj-$(CONFIG_SND_SOC) += sti/
|
||||
|
141
sound/soc/sof/Kconfig
Normal file
141
sound/soc/sof/Kconfig
Normal file
@ -0,0 +1,141 @@
|
||||
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
|
||||
select SND_SOC_SOF_OPTIONS
|
||||
select SND_SOC_SOF_INTEL_PCI if SND_SOC_SOF_INTEL_TOPLEVEL
|
||||
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 SND_SOC_SOF_OPTIONS
|
||||
select SND_SOC_SOF_INTEL_ACPI if SND_SOC_SOF_INTEL_TOPLEVEL
|
||||
select IOSF_MBI if X86
|
||||
help
|
||||
This adds support for ACPI enumeration. This option is required
|
||||
to enable Intel Haswell/Broadwell/Baytrail/Cherrytrail devices
|
||||
Say Y if you need this option
|
||||
If unsure select "N".
|
||||
|
||||
config SND_SOC_SOF_OPTIONS
|
||||
tristate
|
||||
help
|
||||
This option is not user-selectable but automagically handled by
|
||||
'select' statements at a higher level
|
||||
|
||||
if SND_SOC_SOF_OPTIONS
|
||||
|
||||
config SND_SOC_SOF_NOCODEC
|
||||
tristate "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
|
||||
Say Y if you need this nocodec fallback option
|
||||
If unsure 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
|
||||
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".
|
||||
|
||||
endif ## SND_SOC_SOF_DEBUG
|
||||
|
||||
endif ## SND_SOC_SOF_OPTIONS
|
||||
|
||||
config SND_SOC_SOF
|
||||
tristate
|
||||
select SND_SOC_TOPOLOGY
|
||||
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/intel/Kconfig"
|
||||
source "sound/soc/sof/xtensa/Kconfig"
|
||||
|
||||
endif
|
18
sound/soc/sof/Makefile
Normal file
18
sound/soc/sof/Makefile
Normal file
@ -0,0 +1,18 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause)
|
||||
|
||||
snd-sof-objs := core.o ops.o loader.o ipc.o pcm.o pm.o debug.o topology.o\
|
||||
control.o trace.o utils.o
|
||||
|
||||
snd-sof-pci-objs := sof-pci-dev.o
|
||||
snd-sof-acpi-objs := sof-acpi-dev.o
|
||||
snd-sof-nocodec-objs := nocodec.o
|
||||
|
||||
obj-$(CONFIG_SND_SOC_SOF) += snd-sof.o
|
||||
obj-$(CONFIG_SND_SOC_SOF_NOCODEC) += snd-sof-nocodec.o
|
||||
|
||||
|
||||
obj-$(CONFIG_SND_SOC_SOF_ACPI) += sof-acpi-dev.o
|
||||
obj-$(CONFIG_SND_SOC_SOF_PCI) += sof-pci-dev.o
|
||||
|
||||
obj-$(CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL) += intel/
|
||||
obj-$(CONFIG_SND_SOC_SOF_XTENSA) += xtensa/
|
230
sound/soc/sof/intel/Kconfig
Normal file
230
sound/soc/sof/intel/Kconfig
Normal file
@ -0,0 +1,230 @@
|
||||
config SND_SOC_SOF_INTEL_TOPLEVEL
|
||||
bool "SOF support for Intel audio DSPs"
|
||||
depends on X86 || COMPILE_TEST
|
||||
help
|
||||
This adds support for Sound Open Firmware for Intel(R) platforms.
|
||||
Say Y if you have such a device.
|
||||
If unsure select "N".
|
||||
|
||||
if SND_SOC_SOF_INTEL_TOPLEVEL
|
||||
|
||||
config SND_SOC_SOF_INTEL_ACPI
|
||||
tristate
|
||||
select SND_SOC_SOF_BAYTRAIL if SND_SOC_SOF_BAYTRAIL_SUPPORT
|
||||
select SND_SOC_SOF_BROADWELL if SND_SOC_SOF_BROADWELL_SUPPORT
|
||||
help
|
||||
This option is not user-selectable but automagically handled by
|
||||
'select' statements at a higher level
|
||||
|
||||
config SND_SOC_SOF_INTEL_PCI
|
||||
tristate
|
||||
select SND_SOC_SOF_MERRIFIELD if SND_SOC_SOF_MERRIFIELD_SUPPORT
|
||||
select SND_SOC_SOF_APOLLOLAKE if SND_SOC_SOF_APOLLOLAKE_SUPPORT
|
||||
select SND_SOC_SOF_GEMINILAKE if SND_SOC_SOF_GEMINILAKE_SUPPORT
|
||||
select SND_SOC_SOF_CANNONLAKE if SND_SOC_SOF_CANNONLAKE_SUPPORT
|
||||
select SND_SOC_SOF_COFFEELAKE if SND_SOC_SOF_COFFEELAKE_SUPPORT
|
||||
select SND_SOC_SOF_ICELAKE if SND_SOC_SOF_ICELAKE_SUPPORT
|
||||
help
|
||||
This option is not user-selectable but automagically handled by
|
||||
'select' statements at a higher level
|
||||
|
||||
config SND_SOC_SOF_INTEL_HIFI_EP_IPC
|
||||
tristate
|
||||
help
|
||||
This option is not user-selectable but automagically handled by
|
||||
'select' statements at a higher level
|
||||
|
||||
config SND_SOC_SOF_INTEL_ATOM_HIFI_EP
|
||||
tristate
|
||||
select SND_SOC_INTEL_COMMON
|
||||
select SND_SOC_SOF_INTEL_HIFI_EP_IPC
|
||||
help
|
||||
This option is not user-selectable but automagically handled by
|
||||
'select' statements at a higher level
|
||||
|
||||
config SND_SOC_SOF_INTEL_COMMON
|
||||
tristate
|
||||
select SND_SOC_ACPI_INTEL_MATCH
|
||||
select SND_SOC_SOF_XTENSA
|
||||
select SND_SOC_INTEL_MACH
|
||||
select SND_SOC_ACPI if ACPI
|
||||
help
|
||||
This option is not user-selectable but automagically handled by
|
||||
'select' statements at a higher level
|
||||
|
||||
if SND_SOC_SOF_INTEL_ACPI
|
||||
|
||||
config SND_SOC_SOF_BAYTRAIL_SUPPORT
|
||||
bool "SOF support for Baytrail, Braswell and Cherrytrail"
|
||||
help
|
||||
This adds support for Sound Open Firmware for Intel(R) platforms
|
||||
using the Baytrail, Braswell or Cherrytrail processors.
|
||||
Say Y if you have such a device.
|
||||
If unsure select "N".
|
||||
|
||||
config SND_SOC_SOF_BAYTRAIL
|
||||
tristate
|
||||
select SND_SOC_SOF_INTEL_ATOM_HIFI_EP
|
||||
help
|
||||
This option is not user-selectable but automagically handled by
|
||||
'select' statements at a higher level
|
||||
|
||||
config SND_SOC_SOF_BROADWELL_SUPPORT
|
||||
bool "SOF support for Broadwell"
|
||||
help
|
||||
This adds support for Sound Open Firmware for Intel(R) platforms
|
||||
using the Broadwell processors.
|
||||
Say Y if you have such a device.
|
||||
If unsure select "N".
|
||||
|
||||
config SND_SOC_SOF_BROADWELL
|
||||
tristate
|
||||
select SND_SOC_SOF_INTEL_COMMON
|
||||
select SND_SOC_SOF_INTEL_HIFI_EP_IPC
|
||||
help
|
||||
This option is not user-selectable but automagically handled by
|
||||
'select' statements at a higher level
|
||||
|
||||
endif ## SND_SOC_SOF_INTEL_ACPI
|
||||
|
||||
if SND_SOC_SOF_INTEL_PCI
|
||||
|
||||
config SND_SOC_SOF_MERRIFIELD_SUPPORT
|
||||
bool "SOF support for Tangier/Merrifield"
|
||||
help
|
||||
This adds support for Sound Open Firmware for Intel(R) platforms
|
||||
using the Tangier/Merrifield processors.
|
||||
Say Y if you have such a device.
|
||||
If unsure select "N".
|
||||
|
||||
config SND_SOC_SOF_MERRIFIELD
|
||||
tristate
|
||||
select SND_SOC_SOF_INTEL_ATOM_HIFI_EP
|
||||
help
|
||||
This option is not user-selectable but automagically handled by
|
||||
'select' statements at a higher level
|
||||
|
||||
config SND_SOC_SOF_APOLLOLAKE_SUPPORT
|
||||
bool "SOF support for Apollolake"
|
||||
help
|
||||
This adds support for Sound Open Firmware for Intel(R) platforms
|
||||
using the Apollolake processors.
|
||||
Say Y if you have such a device.
|
||||
If unsure select "N".
|
||||
|
||||
config SND_SOC_SOF_APOLLOLAKE
|
||||
tristate
|
||||
select SND_SOC_SOF_HDA_COMMON
|
||||
help
|
||||
This option is not user-selectable but automagically handled by
|
||||
'select' statements at a higher level
|
||||
|
||||
config SND_SOC_SOF_GEMINILAKE_SUPPORT
|
||||
bool "SOF support for GeminiLake"
|
||||
help
|
||||
This adds support for Sound Open Firmware for Intel(R) platforms
|
||||
using the Geminilake processors.
|
||||
Say Y if you have such a device.
|
||||
If unsure select "N".
|
||||
|
||||
config SND_SOC_SOF_GEMINILAKE
|
||||
tristate
|
||||
select SND_SOC_SOF_HDA_COMMON
|
||||
help
|
||||
This option is not user-selectable but automagically handled by
|
||||
'select' statements at a higher level
|
||||
|
||||
config SND_SOC_SOF_CANNONLAKE_SUPPORT
|
||||
bool "SOF support for Cannonlake"
|
||||
help
|
||||
This adds support for Sound Open Firmware for Intel(R) platforms
|
||||
using the Cannonlake processors.
|
||||
Say Y if you have such a device.
|
||||
If unsure select "N".
|
||||
|
||||
config SND_SOC_SOF_CANNONLAKE
|
||||
tristate
|
||||
select SND_SOC_SOF_HDA_COMMON
|
||||
help
|
||||
This option is not user-selectable but automagically handled by
|
||||
'select' statements at a higher level
|
||||
|
||||
config SND_SOC_SOF_COFFEELAKE_SUPPORT
|
||||
bool "SOF support for CoffeeLake"
|
||||
help
|
||||
This adds support for Sound Open Firmware for Intel(R) platforms
|
||||
using the Coffeelake processors.
|
||||
Say Y if you have such a device.
|
||||
If unsure select "N".
|
||||
|
||||
config SND_SOC_SOF_COFFEELAKE
|
||||
tristate
|
||||
select SND_SOC_SOF_HDA_COMMON
|
||||
help
|
||||
This option is not user-selectable but automagically handled by
|
||||
'select' statements at a higher level
|
||||
|
||||
config SND_SOC_SOF_ICELAKE_SUPPORT
|
||||
bool "SOF support for Icelake"
|
||||
help
|
||||
This adds support for Sound Open Firmware for Intel(R) platforms
|
||||
using the Icelake processors.
|
||||
Say Y if you have such a device.
|
||||
If unsure select "N".
|
||||
|
||||
config SND_SOC_SOF_ICELAKE
|
||||
tristate
|
||||
select SND_SOC_SOF_HDA_COMMON
|
||||
help
|
||||
This option is not user-selectable but automagically handled by
|
||||
'select' statements at a higher level
|
||||
|
||||
config SND_SOC_SOF_HDA_COMMON
|
||||
tristate
|
||||
select SND_SOC_SOF_INTEL_COMMON
|
||||
select SND_SOC_SOF_HDA_LINK_BASELINE
|
||||
help
|
||||
This option is not user-selectable but automagically handled by
|
||||
'select' statements at a higher level
|
||||
|
||||
if SND_SOC_SOF_HDA_COMMON
|
||||
|
||||
config SND_SOC_SOF_HDA_LINK
|
||||
bool "SOF support for HDA Links(HDA/HDMI)"
|
||||
depends on SND_SOC_SOF_NOCODEC=n
|
||||
select SND_SOC_SOF_PROBE_WORK_QUEUE
|
||||
help
|
||||
This adds support for HDA links(HDA/HDMI) with Sound Open Firmware
|
||||
for Intel(R) platforms.
|
||||
Say Y if you want to enable HDA links with SOF.
|
||||
If unsure select "N".
|
||||
|
||||
config SND_SOC_SOF_HDA_AUDIO_CODEC
|
||||
bool "SOF support for HDAudio codecs"
|
||||
depends on SND_SOC_SOF_HDA_LINK
|
||||
help
|
||||
This adds support for HDAudio codecs with Sound Open Firmware
|
||||
for Intel(R) platforms.
|
||||
Say Y if you want to enable HDAudio codecs with SOF.
|
||||
If unsure select "N".
|
||||
|
||||
endif ## SND_SOC_SOF_HDA_COMMON
|
||||
|
||||
config SND_SOC_SOF_HDA_LINK_BASELINE
|
||||
tristate
|
||||
select SND_SOC_SOF_HDA if SND_SOC_SOF_HDA_LINK
|
||||
help
|
||||
This option is not user-selectable but automagically handled by
|
||||
'select' statements at a higher level
|
||||
|
||||
config SND_SOC_SOF_HDA
|
||||
tristate
|
||||
select SND_HDA_EXT_CORE if SND_SOC_SOF_HDA_LINK
|
||||
select SND_SOC_HDAC_HDA if SND_SOC_SOF_HDA_AUDIO_CODEC
|
||||
help
|
||||
This option is not user-selectable but automagically handled by
|
||||
'select' statements at a higher level
|
||||
|
||||
endif ## SND_SOC_SOF_INTEL_PCI
|
||||
|
||||
endif ## SND_SOC_SOF_INTEL_TOPLEVEL
|
19
sound/soc/sof/intel/Makefile
Normal file
19
sound/soc/sof/intel/Makefile
Normal file
@ -0,0 +1,19 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause)
|
||||
|
||||
snd-sof-intel-byt-objs := byt.o
|
||||
snd-sof-intel-bdw-objs := bdw.o
|
||||
|
||||
snd-sof-intel-ipc-objs := intel-ipc.o
|
||||
|
||||
snd-sof-intel-hda-common-objs := hda.o hda-loader.o hda-stream.o hda-trace.o \
|
||||
hda-dsp.o hda-ipc.o hda-ctrl.o hda-pcm.o \
|
||||
hda-dai.o hda-bus.o \
|
||||
apl.o cnl.o
|
||||
|
||||
snd-sof-intel-hda-objs := hda-codec.o
|
||||
|
||||
obj-$(CONFIG_SND_SOC_SOF_INTEL_ATOM_HIFI_EP) += snd-sof-intel-byt.o
|
||||
obj-$(CONFIG_SND_SOC_SOF_BROADWELL) += snd-sof-intel-bdw.o
|
||||
obj-$(CONFIG_SND_SOC_SOF_INTEL_HIFI_EP_IPC) += snd-sof-intel-ipc.o
|
||||
obj-$(CONFIG_SND_SOC_SOF_HDA_COMMON) += snd-sof-intel-hda-common.o
|
||||
obj-$(CONFIG_SND_SOC_SOF_HDA) += snd-sof-intel-hda.o
|
Loading…
Reference in New Issue
Block a user