The Skylake driver currently has a set of problems supporting load/unload modules. We need to make the HDaudio codec support optional to help narrow down the issues. Support for HDaudio codecs also leads to a Kconfig issue. We want the hdac_hda codec to be compilable independently of Skylake (e.g. with ALL_CODECS) but when Skylake is selected as built-in the hdac_hda codec needs to use the same option due a a code dependency Solve both problems by adding a user-selectable boolean Kconfig, select HDAC_HDA as needed and make the HDaudio codec support in the Skylake driver optional. Tests on a Chell Chromebook device without HDaudio show no regression for speaker and HDMI playback. This is submitted as an RFC to allow for comments and more validation. Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
150 lines
4.5 KiB
Plaintext
150 lines
4.5 KiB
Plaintext
config SND_SOC_INTEL_SST_TOPLEVEL
|
|
bool "Intel ASoC SST drivers"
|
|
default y
|
|
depends on X86 || COMPILE_TEST
|
|
select SND_SOC_INTEL_MACH
|
|
help
|
|
Intel ASoC SST Platform Drivers. If you have a Intel machine that
|
|
has an audio controller with a DSP and I2S or DMIC port, then
|
|
enable this option by saying Y
|
|
|
|
Note that the answer to this question doesn't directly affect the
|
|
kernel: saying N will just cause the configurator to skip all
|
|
the questions about Intel SST drivers.
|
|
|
|
if SND_SOC_INTEL_SST_TOPLEVEL
|
|
|
|
config SND_SST_IPC
|
|
tristate
|
|
# This option controls the IPC core for HiFi2 platforms
|
|
|
|
config SND_SST_IPC_PCI
|
|
tristate
|
|
select SND_SST_IPC
|
|
# This option controls the PCI-based IPC for HiFi2 platforms
|
|
# (Medfield, Merrifield).
|
|
|
|
config SND_SST_IPC_ACPI
|
|
tristate
|
|
select SND_SST_IPC
|
|
# This option controls the ACPI-based IPC for HiFi2 platforms
|
|
# (Baytrail, Cherrytrail)
|
|
|
|
config SND_SOC_INTEL_SST_ACPI
|
|
tristate
|
|
# This option controls ACPI-based probing on
|
|
# Haswell/Broadwell/Baytrail legacy and will be set
|
|
# when these platforms are enabled
|
|
|
|
config SND_SOC_INTEL_SST
|
|
tristate
|
|
|
|
config SND_SOC_INTEL_SST_FIRMWARE
|
|
tristate
|
|
select DW_DMAC_CORE
|
|
# This option controls firmware download on
|
|
# Haswell/Broadwell/Baytrail legacy and will be set
|
|
# when these platforms are enabled
|
|
|
|
config SND_SOC_INTEL_HASWELL
|
|
tristate "Haswell/Broadwell Platforms"
|
|
depends on SND_DMA_SGBUF
|
|
depends on DMADEVICES && ACPI
|
|
select SND_SOC_INTEL_SST
|
|
select SND_SOC_INTEL_SST_ACPI
|
|
select SND_SOC_INTEL_SST_FIRMWARE
|
|
select SND_SOC_ACPI_INTEL_MATCH
|
|
help
|
|
If you have a Intel Haswell or Broadwell platform connected to
|
|
an I2S codec, then enable this option by saying Y or m. This is
|
|
typically used for Chromebooks. This is a recommended option.
|
|
|
|
config SND_SOC_INTEL_BAYTRAIL
|
|
tristate "Baytrail (legacy) Platforms"
|
|
depends on DMADEVICES && ACPI && SND_SST_ATOM_HIFI2_PLATFORM=n
|
|
select SND_SOC_INTEL_SST
|
|
select SND_SOC_INTEL_SST_ACPI
|
|
select SND_SOC_INTEL_SST_FIRMWARE
|
|
select SND_SOC_ACPI_INTEL_MATCH
|
|
help
|
|
If you have a Intel Baytrail platform connected to an I2S codec,
|
|
then enable this option by saying Y or m. This was typically used
|
|
for Baytrail Chromebooks but this option is now deprecated and is
|
|
not recommended, use SND_SST_ATOM_HIFI2_PLATFORM instead.
|
|
|
|
config SND_SST_ATOM_HIFI2_PLATFORM
|
|
tristate
|
|
select SND_SOC_COMPRESS
|
|
|
|
config SND_SST_ATOM_HIFI2_PLATFORM_PCI
|
|
tristate "PCI HiFi2 (Merrifield) Platforms"
|
|
depends on X86 && PCI
|
|
select SND_SST_IPC_PCI
|
|
select SND_SST_ATOM_HIFI2_PLATFORM
|
|
help
|
|
If you have a Intel Merrifield/Edison platform, then
|
|
enable this option by saying Y or m. Distros will typically not
|
|
enable this option: while Merrifield/Edison can run a mainline
|
|
kernel with limited functionality it will require a firmware file
|
|
which is not in the standard firmware tree
|
|
|
|
config SND_SST_ATOM_HIFI2_PLATFORM_ACPI
|
|
tristate "ACPI HiFi2 (Baytrail, Cherrytrail) Platforms"
|
|
default ACPI
|
|
depends on X86 && ACPI
|
|
select SND_SST_IPC_ACPI
|
|
select SND_SST_ATOM_HIFI2_PLATFORM
|
|
select SND_SOC_ACPI_INTEL_MATCH
|
|
select IOSF_MBI
|
|
help
|
|
If you have a Intel Baytrail or Cherrytrail platform with an I2S
|
|
codec, then enable this option by saying Y or m. This is a
|
|
recommended option
|
|
|
|
config SND_SOC_INTEL_SKYLAKE
|
|
tristate "SKL/BXT/KBL/GLK/CNL... Platforms"
|
|
depends on PCI && ACPI
|
|
select SND_SOC_INTEL_SKYLAKE_COMMON
|
|
help
|
|
If you have a Intel Skylake/Broxton/ApolloLake/KabyLake/
|
|
GeminiLake or CannonLake platform with the DSP enabled in the BIOS
|
|
then enable this option by saying Y or m.
|
|
|
|
if SND_SOC_INTEL_SKYLAKE
|
|
|
|
config SND_SOC_INTEL_SKYLAKE_SSP_CLK
|
|
tristate
|
|
|
|
config SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC
|
|
bool "HDAudio codec support"
|
|
help
|
|
If you have a Intel Skylake/Broxton/ApolloLake/KabyLake/
|
|
GeminiLake or CannonLake platform with an HDaudio codec
|
|
then enable this option by saying Y
|
|
|
|
config SND_SOC_INTEL_SKYLAKE_COMMON
|
|
tristate
|
|
select SND_HDA_EXT_CORE
|
|
select SND_HDA_DSP_LOADER
|
|
select SND_SOC_TOPOLOGY
|
|
select SND_SOC_INTEL_SST
|
|
select SND_SOC_HDAC_HDA if SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC
|
|
select SND_SOC_ACPI_INTEL_MATCH
|
|
help
|
|
If you have a Intel Skylake/Broxton/ApolloLake/KabyLake/
|
|
GeminiLake or CannonLake platform with the DSP enabled in the BIOS
|
|
then enable this option by saying Y or m.
|
|
|
|
endif ## SND_SOC_INTEL_SKYLAKE
|
|
|
|
config SND_SOC_ACPI_INTEL_MATCH
|
|
tristate
|
|
select SND_SOC_ACPI if ACPI
|
|
# this option controls the compilation of ACPI matching tables and
|
|
# helpers and is not meant to be selected by the user.
|
|
|
|
endif ## SND_SOC_INTEL_SST_TOPLEVEL
|
|
|
|
# ASoC codec drivers
|
|
source "sound/soc/intel/boards/Kconfig"
|