Unverified Commit 7e978fa3 authored by Liam Girdwood's avatar Liam Girdwood Committed by Mark Brown
Browse files

ASoC: SOF: Add Build support for SOF core and Intel drivers



Build SOF core and Intel-specific drivers.

Signed-off-by: default avatarLiam Girdwood <liam.r.girdwood@linux.intel.com>
Signed-off-by: default avatarPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: default avatarTakashi Iwai <tiwai@suse.de>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent e6b140e9
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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"
+1 −0
Original line number Diff line number Diff line
@@ -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/

sound/soc/sof/Kconfig

0 → 100644
+141 −0
Original line number Diff line number Diff line
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

sound/soc/sof/Makefile

0 → 100644
+18 −0
Original line number Diff line number Diff line
# 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 −0
Original line number Diff line number Diff line
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
Loading