mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-15 08:14:15 +08:00
991e74d149
The module snd-intel-dspcfg, suggested by Jaroslav last year, currently provide the means to select a PCI driver at run-time, based on quirks, recommendations or user selection via a kernel parameter. This capability removed a lot of confusions in distributions and removed the need for recompilations to select legacy HDaudio, SST or SOF drivers. This patchset extends the concept to ACPI devices. This was driven by the desire to at some point deprecate the Atom/SST driver for Baytrail and Cherrytrail, which is no longer maintained by Intel. By having the SOF driver enabled by distributions for Baytrail/Cherrytrail, we can enable more end-user tests and make the transition easier for distributions (likely in 2021 at this point). This patchset provides the same solution for Broadwell, mainly to have a single build for all Intel platforms. SOF on Broadwell remains an option not recommended for distributions, as long as the 'catpt' driver is maintained there is no burning desire to make SOF the default on the three Broadwell-based platforms with the DSP enabled. Pierre-Louis Bossart (14): ASoC: Intel: broadwell: add missing pm_ops ASoC: Intel: bdw-rt5677: add missing pm_ops ALSA: hda: intel-dsp-config: add helper for ACPI DSP driver selection ASoC: soc-acpi: add helper to identify parent driver. ASoC: Intel: boards: byt/cht: set card and driver name at run time ASoC: Intel: byt/cht: set pm ops dynamically ASoC: SOF: acpi: add dynamic selection of DSP driver ASoC: Intel: Atom: add dynamic selection of DSP driver ASoC: SOF: Intel: allow for coexistence between SOF and Atom/SST drivers ALSA: hda: intel-dsp-config: add Broadwell ACPI DSP driver selection ASoC: Intel: broadwell: set card and driver name dynamically ASoC: Intel: catpt: add dynamic selection of DSP driver ASoC: SOF: Intel: allow for coexistence between SOF and catpt drivers ALSA: hda: intel-dsp-config: ignore dsp_driver parameter for PCI legacy devices include/sound/intel-dsp-config.h | 7 ++ include/sound/soc-acpi.h | 6 + sound/hda/intel-dsp-config.c | 111 +++++++++++++++++++ sound/soc/intel/Kconfig | 2 + sound/soc/intel/atom/sst/sst_acpi.c | 8 ++ sound/soc/intel/boards/bdw-rt5650.c | 17 ++- sound/soc/intel/boards/bdw-rt5677.c | 18 ++- sound/soc/intel/boards/broadwell.c | 20 ++-- sound/soc/intel/boards/bytcht_cx2072x.c | 27 +++-- sound/soc/intel/boards/bytcht_da7213.c | 27 +++-- sound/soc/intel/boards/bytcht_es8316.c | 29 +++-- sound/soc/intel/boards/bytcr_rt5640.c | 30 +++-- sound/soc/intel/boards/bytcr_rt5651.c | 27 +++-- sound/soc/intel/boards/cht_bsw_max98090_ti.c | 29 +++-- sound/soc/intel/boards/cht_bsw_nau8824.c | 29 +++-- sound/soc/intel/boards/cht_bsw_rt5645.c | 38 ++++--- sound/soc/intel/boards/cht_bsw_rt5672.c | 29 +++-- sound/soc/intel/catpt/device.c | 12 ++ sound/soc/sof/intel/Kconfig | 33 +++--- sound/soc/sof/sof-acpi-dev.c | 14 ++- 20 files changed, 392 insertions(+), 121 deletions(-) -- 2.25.1
212 lines
6.3 KiB
Plaintext
212 lines
6.3 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0-only
|
|
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_SOC_INTEL_SST
|
|
tristate
|
|
|
|
config SND_SOC_INTEL_CATPT
|
|
tristate "Haswell and Broadwell"
|
|
depends on ACPI || COMPILE_TEST
|
|
depends on DMADEVICES && SND_DMA_SGBUF
|
|
select DW_DMAC_CORE
|
|
select SND_SOC_ACPI_INTEL_MATCH
|
|
select WANT_DEV_COREDUMP
|
|
select SND_INTEL_DSP_CONFIG
|
|
help
|
|
Enable support for Intel(R) Haswell and Broadwell platforms
|
|
with I2S codec present. This is a recommended option.
|
|
Say Y or m if you have such device.
|
|
If unsure, say N.
|
|
|
|
config SND_SOC_INTEL_HASWELL
|
|
tristate
|
|
select SND_SOC_INTEL_CATPT
|
|
|
|
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_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 && PCI
|
|
select SND_SST_ATOM_HIFI2_PLATFORM
|
|
select SND_SOC_ACPI_INTEL_MATCH
|
|
select SND_INTEL_DSP_CONFIG
|
|
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
|
|
This option is mutually exclusive with the SOF support on
|
|
Baytrail/Cherrytrail. If you want to enable SOF on
|
|
Baytrail/Cherrytrail, you need to deselect this option first.
|
|
|
|
config SND_SOC_INTEL_SKYLAKE
|
|
tristate "All Skylake/SST Platforms"
|
|
depends on PCI && ACPI
|
|
depends on COMMON_CLK
|
|
select SND_SOC_INTEL_SKL
|
|
select SND_SOC_INTEL_APL
|
|
select SND_SOC_INTEL_KBL
|
|
select SND_SOC_INTEL_GLK
|
|
select SND_SOC_INTEL_CNL
|
|
select SND_SOC_INTEL_CFL
|
|
help
|
|
This is a backwards-compatible option to select all devices
|
|
supported by the Intel SST/Skylake driver. This option is no
|
|
longer recommended and will be deprecated when the SOF
|
|
driver is introduced. Distributions should explicitly
|
|
select which platform uses this driver.
|
|
|
|
config SND_SOC_INTEL_SKL
|
|
tristate "Skylake Platforms"
|
|
depends on PCI && ACPI
|
|
depends on COMMON_CLK
|
|
select SND_SOC_INTEL_SKYLAKE_FAMILY
|
|
help
|
|
If you have a Intel Skylake platform with the DSP enabled
|
|
in the BIOS then enable this option by saying Y or m.
|
|
|
|
config SND_SOC_INTEL_APL
|
|
tristate "Broxton/ApolloLake Platforms"
|
|
depends on PCI && ACPI
|
|
depends on COMMON_CLK
|
|
select SND_SOC_INTEL_SKYLAKE_FAMILY
|
|
help
|
|
If you have a Intel Broxton/ApolloLake platform with the DSP
|
|
enabled in the BIOS then enable this option by saying Y or m.
|
|
|
|
config SND_SOC_INTEL_KBL
|
|
tristate "Kabylake Platforms"
|
|
depends on PCI && ACPI
|
|
depends on COMMON_CLK
|
|
select SND_SOC_INTEL_SKYLAKE_FAMILY
|
|
help
|
|
If you have a Intel Kabylake platform with the DSP
|
|
enabled in the BIOS then enable this option by saying Y or m.
|
|
|
|
config SND_SOC_INTEL_GLK
|
|
tristate "GeminiLake Platforms"
|
|
depends on PCI && ACPI
|
|
depends on COMMON_CLK
|
|
select SND_SOC_INTEL_SKYLAKE_FAMILY
|
|
help
|
|
If you have a Intel GeminiLake platform with the DSP
|
|
enabled in the BIOS then enable this option by saying Y or m.
|
|
|
|
config SND_SOC_INTEL_CNL
|
|
tristate "CannonLake/WhiskyLake Platforms"
|
|
depends on PCI && ACPI
|
|
depends on COMMON_CLK
|
|
select SND_SOC_INTEL_SKYLAKE_FAMILY
|
|
help
|
|
If you have a Intel CNL/WHL platform with the DSP
|
|
enabled in the BIOS then enable this option by saying Y or m.
|
|
|
|
config SND_SOC_INTEL_CFL
|
|
tristate "CoffeeLake Platforms"
|
|
depends on PCI && ACPI
|
|
depends on COMMON_CLK
|
|
select SND_SOC_INTEL_SKYLAKE_FAMILY
|
|
help
|
|
If you have a Intel CoffeeLake platform with the DSP
|
|
enabled in the BIOS then enable this option by saying Y or m.
|
|
|
|
config SND_SOC_INTEL_CML_H
|
|
tristate "CometLake-H Platforms"
|
|
depends on PCI && ACPI
|
|
depends on COMMON_CLK
|
|
select SND_SOC_INTEL_SKYLAKE_FAMILY
|
|
help
|
|
If you have a Intel CometLake-H platform with the DSP
|
|
enabled in the BIOS then enable this option by saying Y or m.
|
|
|
|
config SND_SOC_INTEL_CML_LP
|
|
tristate "CometLake-LP Platforms"
|
|
depends on PCI && ACPI
|
|
depends on COMMON_CLK
|
|
select SND_SOC_INTEL_SKYLAKE_FAMILY
|
|
help
|
|
If you have a Intel CometLake-LP platform with the DSP
|
|
enabled in the BIOS then enable this option by saying Y or m.
|
|
|
|
config SND_SOC_INTEL_SKYLAKE_FAMILY
|
|
tristate
|
|
select SND_SOC_INTEL_SKYLAKE_COMMON
|
|
|
|
if SND_SOC_INTEL_SKYLAKE_FAMILY
|
|
|
|
config SND_SOC_INTEL_SKYLAKE_SSP_CLK
|
|
tristate
|
|
|
|
config SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC
|
|
bool "HDAudio codec support"
|
|
help
|
|
If you have Intel Skylake or Kabylake with HDAudio codec
|
|
and DMIC present 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
|
|
select SND_INTEL_DSP_CONFIG
|
|
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_FAMILY
|
|
|
|
endif ## SND_SOC_INTEL_SST_TOPLEVEL
|
|
|
|
if SND_SOC_INTEL_SST_TOPLEVEL || SND_SOC_SOF_INTEL_TOPLEVEL
|
|
|
|
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 || SND_SOC_SOF_INTEL_TOPLEVEL
|
|
|
|
config SND_SOC_INTEL_KEEMBAY
|
|
tristate "Keembay Platforms"
|
|
depends on ARCH_KEEMBAY || COMPILE_TEST
|
|
depends on COMMON_CLK
|
|
help
|
|
If you have a Intel Keembay platform then enable this option
|
|
by saying Y or m.
|
|
|
|
# ASoC codec drivers
|
|
source "sound/soc/intel/boards/Kconfig"
|