Skip to content

Commit

Permalink
BACKPORT: FROMGIT: ASoC: Intel: Skylake: Add more platform granularity
Browse files Browse the repository at this point in the history
The current SKYLAKE kconfig is a all-you-can-eat selection that will
support all known plaforms. This is however not necessarily a good
thing: most platforms for SKL and KBL don't support the DSP, but a
number of CNL/WHL ones do. Selecting this driver in all cases isn't
really smart and will require users to muck with blacklists.

Partition the configs to allow distributions to select on which
platform this driver is used. Keep the existing SND_SOC_INTEL_SKYLAKE
config to select everything for backwards compatibility. This patch does
not provide new functionality, only finer-grained choices in supported
platforms.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
(cherry picked from commit 35bc99a
 https://github.com/broonie/asoc for-next)

Conflicts:
   sound/soc/intel/boards/Kconfig

BUG=b:123738217
TEST=Test Audio use cases for CML with full SOF patch series applied.

Change-Id: I7f7be3aec9af0db687a3ebffd190c73d00bd4b44
Signed-off-by: smit shah <smit.shah@intel.com>
Signed-off-by: Ap, Kamal <kamal.ap@intel.corp-partner.google.com>
Reviewed-on: https://chromium-review.googlesource.com/1499098
Commit-Ready: Ben Zhang <benzh@chromium.org>
Tested-by: Ben Zhang <benzh@chromium.org>
Reviewed-by: Ben Zhang <benzh@chromium.org>
  • Loading branch information
plbossart authored and chrome-bot committed Mar 24, 2019
1 parent 59fea70 commit 4e9d2a9
Show file tree
Hide file tree
Showing 3 changed files with 92 additions and 9 deletions.
73 changes: 66 additions & 7 deletions sound/soc/intel/Kconfig
Expand Up @@ -102,15 +102,74 @@ config SND_SST_ATOM_HIFI2_PLATFORM_ACPI
recommended option

config SND_SOC_INTEL_SKYLAKE
tristate "SKL/BXT/KBL/GLK/CNL... Platforms"
tristate "All Skylake/SST Platforms"
depends on PCI && ACPI
select SND_SOC_INTEL_SKYLAKE_COMMON
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
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.
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
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
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
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
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
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
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_SKYLAKE_FAMILY
tristate
select SND_SOC_INTEL_SKYLAKE_COMMON

if SND_SOC_INTEL_SKYLAKE
if SND_SOC_INTEL_SKYLAKE_FAMILY

config SND_SOC_INTEL_SKYLAKE_SSP_CLK
tristate
Expand All @@ -135,7 +194,7 @@ config SND_SOC_INTEL_SKYLAKE_COMMON
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
endif ## SND_SOC_INTEL_SKYLAKE_FAMILY

config SND_SOC_ACPI_INTEL_MATCH
tristate
Expand Down
16 changes: 14 additions & 2 deletions sound/soc/intel/boards/Kconfig
Expand Up @@ -172,7 +172,7 @@ config SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH

endif ## SND_SST_ATOM_HIFI2_PLATFORM

if SND_SOC_INTEL_SKYLAKE
if SND_SOC_INTEL_SKL

config SND_SOC_INTEL_SKL_RT286_MACH
tristate "SKL with RT286 I2S mode"
Expand Down Expand Up @@ -212,6 +212,10 @@ config SND_SOC_INTEL_SKL_NAU88L25_MAX98357A_MACH
Say Y or m if you have such a device. This is a recommended option.
If unsure select "N".

endif ## SND_SOC_INTEL_SKL

if SND_SOC_INTEL_APL

config SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH
tristate "Broxton with DA7219 and MAX98357A in I2S Mode"
depends on MFD_INTEL_LPSS && I2C && ACPI
Expand Down Expand Up @@ -239,6 +243,8 @@ config SND_SOC_INTEL_BXT_RT298_MACH
Say Y or m if you have such a device. This is a recommended option.
If unsure select "N".

endif ## SND_SOC_INTEL_APL

config SND_SOC_INTEL_CNL_MAX98373_MACH
tristate "ASoC Audio driver for CNL with MAX98373 in I2S Mode"
select SND_SOC_MAX98373
Expand All @@ -252,6 +258,8 @@ config SND_SOC_INTEL_CNL_MAX98373_MACH
Say Y if you have such a device.
If unsure select "N".

if SND_SOC_INTEL_KBL

config SND_SOC_INTEL_KBL_RT5663_MAX98927_MACH
tristate "KBL with RT5663 and MAX98927 in I2S Mode"
depends on MFD_INTEL_LPSS && I2C && ACPI
Expand Down Expand Up @@ -316,6 +324,10 @@ config SND_SOC_INTEL_KBL_RT5660_MACH
create an alsa sound card for RT5660 I2S audio codec.
Say Y if you have such a device.

endif ## SND_SOC_INTEL_KBL

if SND_SOC_INTEL_GLK

config SND_SOC_INTEL_GLK_RT5682_MAX98357A_MACH
tristate "GLK with RT5682 and MAX98357A in I2S Mode"
depends on MFD_INTEL_LPSS && I2C && ACPI
Expand All @@ -330,7 +342,7 @@ config SND_SOC_INTEL_GLK_RT5682_MAX98357A_MACH
Say Y if you have such a device.
If unsure select "N".

endif ## SND_SOC_INTEL_SKYLAKE
endif ## SND_SOC_INTEL_GLK

if SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC

Expand Down
12 changes: 12 additions & 0 deletions sound/soc/intel/skylake/skl.c
Expand Up @@ -1142,24 +1142,36 @@ static void skl_remove(struct pci_dev *pci)

/* PCI IDs */
static const struct pci_device_id skl_ids[] = {
#if IS_ENABLED(CONFIG_SND_SOC_INTEL_SKL)
/* Sunrise Point-LP */
{ PCI_DEVICE(0x8086, 0x9d70),
.driver_data = (unsigned long)&snd_soc_acpi_intel_skl_machines},
#endif
#if IS_ENABLED(CONFIG_SND_SOC_INTEL_APL)
/* BXT-P */
{ PCI_DEVICE(0x8086, 0x5a98),
.driver_data = (unsigned long)&snd_soc_acpi_intel_bxt_machines},
#endif
#if IS_ENABLED(CONFIG_SND_SOC_INTEL_KBL)
/* KBL */
{ PCI_DEVICE(0x8086, 0x9D71),
.driver_data = (unsigned long)&snd_soc_acpi_intel_kbl_machines},
#endif
#if IS_ENABLED(CONFIG_SND_SOC_INTEL_GLK)
/* GLK */
{ PCI_DEVICE(0x8086, 0x3198),
.driver_data = (unsigned long)&snd_soc_acpi_intel_glk_machines},
#endif
#if IS_ENABLED(CONFIG_SND_SOC_INTEL_CNL)
/* CNL */
{ PCI_DEVICE(0x8086, 0x9dc8),
.driver_data = (unsigned long)&snd_soc_acpi_intel_cnl_machines},
#endif
#if IS_ENABLED(CONFIG_SND_SOC_INTEL_CFL)
/* CFL */
{ PCI_DEVICE(0x8086, 0xa348),
.driver_data = (unsigned long)&snd_soc_acpi_intel_cnl_machines},
#endif
{ 0, }
};
MODULE_DEVICE_TABLE(pci, skl_ids);
Expand Down

0 comments on commit 4e9d2a9

Please sign in to comment.