2017-12-15 00:45:22

by Pierre-Louis Bossart

[permalink] [raw]
Subject: [PATCH 0/9] ASoC: Intel: Kconfig fixes

The first patch implements what Linus, Takashi and Mark
requested: a top-level selector defaulting to 'y' to easily filter all
other options and with no impact on code generation. There should be no
functionality change and will avoid breaking audio for people using
make oldnoconfig.

The rest of the patch series does a more in-depth cleanup. It was tested
on Baytrail/Cherrytrail/Skylake platforms with no regressions
observed and no reports of any compilation issues with 0-day or
randconfig.

The 4th patch is really the most important one, there were nested
configs which made no sense to me. I don't know the history which led
to such complicated stuff but simpler is better.

Patches 5..7 are just clean-ups of the machine driver configs,
for some reason there is no consistency in the settings so I tried to
apply common sense and use the same rules. At Andy Shevchenko's suggestion,
I also replaced the broken dependency on X86_INTEL_LPSS by MFD_INTEL_LPSS
for Skylake+ machines. No regressions were identified with this change.

Patches 8 and 9 are new in this series and are just cosmetic changes (comments
and text simplification).

Thanks to Vinod Koul for his contributions and comments.

Changes since RFCv2:
Moved machine drivers to submenu
Dropped SND_SOC_INTEL_COMMON since it was not needed
Added more comments for if/endif
Simplified text for options (dropped "ASoC Intel driver....")
Fixed one 0-day warning

Changes since initial RFC:
Removed default n
Added help text for HASWELL, BAYTRAIL (legacy) and SKYLAKE options
Made top level machine driver selection dependent on INTEL_SST_TOPLEVEL.
Added help text for PCI and HIFI2 platforms
Replaced X86_INTEL_LPSS by MFD_INTEL_LPSS for Skylake+ devices
Fixed a couple of indentation issues

Pierre-Louis Bossart (7):
ASoC: Intel: Fix Kconfig with top-level selector
ASoC: Intel: Kconfig: Simplify-clarify ACPI/PCI dependencies
ASoC: Intel: document what Kconfig options do
ASoC: Intel: Fix nested/unnecessary Kconfig dependencies
ASoC: Intel: boards: align Kconfig dependencies for Haswell/Broadwell
ASoC: Intel: boards: align Kconfig configurations for HiFi2
ASoC: Intel: boards: align/fix SKL/BXT/KBL Kconfigs

Vinod Koul (2):
ASoC: Intel: kconfig: add some comments for if symbols
ASoC: Intel: kconfig: drop boiler plate text from config items

sound/soc/intel/Kconfig | 117 ++++++++++++++++++-------
sound/soc/intel/Makefile | 2 +-
sound/soc/intel/boards/Kconfig | 191 +++++++++++++++++++++--------------------
3 files changed, 186 insertions(+), 124 deletions(-)

--
2.14.1


2017-12-15 00:45:27

by Pierre-Louis Bossart

[permalink] [raw]
Subject: [PATCH 3/9] ASoC: Intel: document what Kconfig options do

Document in comments what the options are supposed to mean, before
clean-up in next patch.

No functionality change here.

Signed-off-by: Pierre-Louis Bossart <[email protected]>
---
sound/soc/intel/Kconfig | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/sound/soc/intel/Kconfig b/sound/soc/intel/Kconfig
index e9e5f96290f6..f25edeb7cff6 100644
--- a/sound/soc/intel/Kconfig
+++ b/sound/soc/intel/Kconfig
@@ -16,16 +16,26 @@ 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
select SND_SOC_INTEL_SST
select IOSF_MBI
+ # 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
@@ -34,9 +44,8 @@ config SND_SOC_INTEL_SST
config SND_SOC_INTEL_SST_FIRMWARE
tristate
select DW_DMAC_CORE
-
-config SND_SOC_INTEL_SST_ACPI
- tristate
+ # 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 "Intel ASoC SST driver for Haswell/Broadwell"
--
2.14.1

2017-12-15 00:45:33

by Pierre-Louis Bossart

[permalink] [raw]
Subject: [PATCH 8/9] ASoC: Intel: kconfig: add some comments for if symbols

From: Vinod Koul <[email protected]>

Helps in find if endings

Signed-off-by: Vinod Koul <[email protected]>
Signed-off-by: Pierre-Louis Bossart <[email protected]>
---
sound/soc/intel/boards/Kconfig | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/sound/soc/intel/boards/Kconfig b/sound/soc/intel/boards/Kconfig
index 8f519bb1ced1..ae5714c90213 100644
--- a/sound/soc/intel/boards/Kconfig
+++ b/sound/soc/intel/boards/Kconfig
@@ -24,7 +24,7 @@ config SND_MFLD_MACHINE
Say Y if you have such a device.
If unsure select "N".

-endif
+endif ## SND_SST_ATOM_HIFI2_PLATFORM_PCI

if SND_SOC_INTEL_HASWELL

@@ -57,7 +57,7 @@ config SND_SOC_INTEL_BROADWELL_MACH
Ultrabook platforms.
Say Y or m if you have such a device. This is a recommended option.
If unsure select "N".
-endif
+endif ## SND_SOC_INTEL_HASWELL

if SND_SOC_INTEL_BAYTRAIL

@@ -80,7 +80,7 @@ config SND_SOC_INTEL_BYT_RT5640_MACH
with the RT5640 audio codec. This driver is deprecated, use
SND_SOC_INTEL_BYTCR_RT5640_MACH instead for better functionality.

-endif
+endif ## SND_SOC_INTEL_BAYTRAIL

if SND_SST_ATOM_HIFI2_PLATFORM

@@ -172,7 +172,7 @@ config SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH

If unsure select "N".

-endif
+endif ## SND_SST_ATOM_HIFI2_PLATFORM

if SND_SOC_INTEL_SKYLAKE

@@ -267,6 +267,6 @@ config SND_SOC_INTEL_KBL_RT5663_RT5514_MAX98927_MACH
create an alsa sound card for RT5663 + RT5514 + MAX98927.
Say Y or m if you have such a device. This is a recommended option.
If unsure select "N".
-endif
+endif ## SND_SOC_INTEL_SKYLAKE

endif ## SND_SOC_INTEL_MACH
--
2.14.1

2017-12-15 00:45:30

by Pierre-Louis Bossart

[permalink] [raw]
Subject: [PATCH 7/9] ASoC: Intel: boards: align/fix SKL/BXT/KBL Kconfigs

No reason why SND_SOC_INTEL_SST should be set here.
Also make sure same dependencies are used everywhere (only last one has SPI
in addition). Replace X86_INTEL_LPSS by MFD_INTEL_LPSS since the former
makes no sense for Skylake+ devices

Signed-off-by: Pierre-Louis Bossart <[email protected]>
---
sound/soc/intel/boards/Kconfig | 16 +++++++---------
1 file changed, 7 insertions(+), 9 deletions(-)

diff --git a/sound/soc/intel/boards/Kconfig b/sound/soc/intel/boards/Kconfig
index a0cbbe9e8db7..8f519bb1ced1 100644
--- a/sound/soc/intel/boards/Kconfig
+++ b/sound/soc/intel/boards/Kconfig
@@ -178,7 +178,7 @@ if SND_SOC_INTEL_SKYLAKE

config SND_SOC_INTEL_SKL_RT286_MACH
tristate "ASoC Audio driver for SKL with RT286 I2S mode"
- depends on X86 && ACPI && I2C
+ depends on MFD_INTEL_LPSS && I2C && ACPI
select SND_SOC_RT286
select SND_SOC_DMIC
select SND_SOC_HDAC_HDMI
@@ -190,7 +190,7 @@ config SND_SOC_INTEL_SKL_RT286_MACH

config SND_SOC_INTEL_SKL_NAU88L25_SSM4567_MACH
tristate "ASoC Audio driver for SKL with NAU88L25 and SSM4567 in I2S Mode"
- depends on X86_INTEL_LPSS && I2C
+ depends on MFD_INTEL_LPSS && I2C && ACPI
select SND_SOC_NAU8825
select SND_SOC_SSM4567
select SND_SOC_DMIC
@@ -203,7 +203,7 @@ config SND_SOC_INTEL_SKL_NAU88L25_SSM4567_MACH

config SND_SOC_INTEL_SKL_NAU88L25_MAX98357A_MACH
tristate "ASoC Audio driver for SKL with NAU88L25 and MAX98357A in I2S Mode"
- depends on X86_INTEL_LPSS && I2C
+ depends on MFD_INTEL_LPSS && I2C && ACPI
select SND_SOC_NAU8825
select SND_SOC_MAX98357A
select SND_SOC_DMIC
@@ -216,7 +216,7 @@ config SND_SOC_INTEL_SKL_NAU88L25_MAX98357A_MACH

config SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH
tristate "ASoC Audio driver for Broxton with DA7219 and MAX98357A in I2S Mode"
- depends on X86 && ACPI && I2C
+ depends on MFD_INTEL_LPSS && I2C && ACPI
select SND_SOC_DA7219
select SND_SOC_MAX98357A
select SND_SOC_DMIC
@@ -230,7 +230,7 @@ config SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH

config SND_SOC_INTEL_BXT_RT298_MACH
tristate "ASoC Audio driver for Broxton with RT298 I2S mode"
- depends on X86 && ACPI && I2C
+ depends on MFD_INTEL_LPSS && I2C && ACPI
select SND_SOC_RT298
select SND_SOC_DMIC
select SND_SOC_HDAC_HDMI
@@ -243,8 +243,7 @@ config SND_SOC_INTEL_BXT_RT298_MACH

config SND_SOC_INTEL_KBL_RT5663_MAX98927_MACH
tristate "ASoC Audio driver for KBL with RT5663 and MAX98927 in I2S Mode"
- depends on X86_INTEL_LPSS && I2C
- select SND_SOC_INTEL_SST
+ depends on MFD_INTEL_LPSS && I2C && ACPI
select SND_SOC_RT5663
select SND_SOC_MAX98927
select SND_SOC_DMIC
@@ -257,8 +256,7 @@ config SND_SOC_INTEL_KBL_RT5663_MAX98927_MACH

config SND_SOC_INTEL_KBL_RT5663_RT5514_MAX98927_MACH
tristate "ASoC Audio driver for KBL with RT5663, RT5514 and MAX98927 in I2S Mode"
- depends on X86_INTEL_LPSS && I2C && SPI
- select SND_SOC_INTEL_SST
+ depends on MFD_INTEL_LPSS && I2C && SPI && ACPI
select SND_SOC_RT5663
select SND_SOC_RT5514
select SND_SOC_RT5514_SPI
--
2.14.1

2017-12-15 00:45:49

by Pierre-Louis Bossart

[permalink] [raw]
Subject: [PATCH 9/9] ASoC: Intel: kconfig: drop boiler plate text from config items

From: Vinod Koul <[email protected]>

Drop "Intel ASoC SST driver for " platforms and "SOC Machine Audio driver
for Intel" for machines..

Signed-off-by: Vinod Koul <[email protected]>
Signed-off-by: Pierre-Louis Bossart <[email protected]>
---
sound/soc/intel/Kconfig | 10 +++++-----
sound/soc/intel/boards/Kconfig | 42 +++++++++++++++++++++---------------------
2 files changed, 26 insertions(+), 26 deletions(-)

diff --git a/sound/soc/intel/Kconfig b/sound/soc/intel/Kconfig
index e6f7fc91900c..591667058832 100644
--- a/sound/soc/intel/Kconfig
+++ b/sound/soc/intel/Kconfig
@@ -45,7 +45,7 @@ config SND_SOC_INTEL_SST_FIRMWARE
# Baytrail legacy and will be set when these platforms are enabled

config SND_SOC_INTEL_HASWELL
- tristate "Intel ASoC SST driver for Haswell/Broadwell"
+ tristate "Haswell/Broadwell Platforms"
depends on SND_DMA_SGBUF && ACPI
depends on DMADEVICES
select SND_SOC_INTEL_SST
@@ -58,7 +58,7 @@ config SND_SOC_INTEL_HASWELL
typically used for Chromebooks. This is a recommended option.

config SND_SOC_INTEL_BAYTRAIL
- tristate "Intel ASoC SST driver for Baytrail (legacy)"
+ tristate "Baytrail (legacy) Platforms"
depends on DMADEVICES && ACPI
select SND_SOC_INTEL_SST
select SND_SOC_INTEL_SST_ACPI
@@ -71,7 +71,7 @@ config SND_SOC_INTEL_BAYTRAIL
not recommended, use SND_SST_ATOM_HIFI2_PLATFORM instead.

config SND_SST_ATOM_HIFI2_PLATFORM_PCI
- tristate "Intel ASoC SST driver for PCI HiFi2 platforms (Medfield, Merrifield)"
+ tristate "PCI HiFi2 platforms (Medfield, Merrifield) platforms"
depends on X86 && PCI
select SND_SST_IPC_PCI
select SND_SOC_COMPRESS
@@ -85,7 +85,7 @@ config SND_SST_ATOM_HIFI2_PLATFORM_PCI
is not in the standard firmware tree

config SND_SST_ATOM_HIFI2_PLATFORM
- tristate "Intel ASoC SST driver for ACPI HiFi2 platforms (Baytrail, Cherrytrail)"
+ tristate "ACPI HiFi2 platforms (Baytrail, Cherrytrail) Platforms"
depends on X86 && ACPI
select SND_SST_IPC_ACPI
select IOSF_MBI
@@ -97,7 +97,7 @@ config SND_SST_ATOM_HIFI2_PLATFORM
recommended option

config SND_SOC_INTEL_SKYLAKE
- tristate "Intel ASoC SST driver for SKL/BXT/KBL/GLK/CNL"
+ tristate "SKL/BXT/KBL/GLK/CNL... Platforms"
depends on PCI && ACPI
select SND_HDA_EXT_CORE
select SND_HDA_DSP_LOADER
diff --git a/sound/soc/intel/boards/Kconfig b/sound/soc/intel/boards/Kconfig
index ae5714c90213..4b353898b591 100644
--- a/sound/soc/intel/boards/Kconfig
+++ b/sound/soc/intel/boards/Kconfig
@@ -15,7 +15,7 @@ if SND_SOC_INTEL_MACH
if SND_SST_ATOM_HIFI2_PLATFORM_PCI

config SND_MFLD_MACHINE
- tristate "SOC Machine Audio driver for Intel Medfield MID platform"
+ tristate "Intel Medfield MID"
depends on INTEL_SCU_IPC
select SND_SOC_SN95031
help
@@ -29,7 +29,7 @@ endif ## SND_SST_ATOM_HIFI2_PLATFORM_PCI
if SND_SOC_INTEL_HASWELL

config SND_SOC_INTEL_HASWELL_MACH
- tristate "ASoC Audio DSP support for Intel Haswell Lynxpoint"
+ tristate "Haswell Lynxpoint"
depends on X86_INTEL_LPSS && I2C && I2C_DESIGNWARE_PLATFORM
select SND_SOC_RT5640
help
@@ -39,7 +39,7 @@ config SND_SOC_INTEL_HASWELL_MACH
If unsure select "N".

config SND_SOC_INTEL_BDW_RT5677_MACH
- tristate "ASoC Audio driver for Intel Broadwell with RT5677 codec"
+ tristate "Broadwell with RT5677 codec"
depends on X86_INTEL_LPSS && I2C && I2C_DESIGNWARE_PLATFORM && GPIOLIB
select SND_SOC_RT5677
help
@@ -49,7 +49,7 @@ config SND_SOC_INTEL_BDW_RT5677_MACH
If unsure select "N".

config SND_SOC_INTEL_BROADWELL_MACH
- tristate "ASoC Audio DSP support for Intel Broadwell Wildcatpoint"
+ tristate "Intel Broadwell Wildcatpoint"
depends on X86_INTEL_LPSS && I2C && I2C_DESIGNWARE_PLATFORM
select SND_SOC_RT286
help
@@ -62,7 +62,7 @@ endif ## SND_SOC_INTEL_HASWELL
if SND_SOC_INTEL_BAYTRAIL

config SND_SOC_INTEL_BYT_MAX98090_MACH
- tristate "ASoC Audio driver for Intel Baytrail with MAX98090 codec"
+ tristate "Baytrail with MAX98090 codec"
depends on X86_INTEL_LPSS && I2C
select SND_SOC_MAX98090
help
@@ -72,7 +72,7 @@ config SND_SOC_INTEL_BYT_MAX98090_MACH
functionality.

config SND_SOC_INTEL_BYT_RT5640_MACH
- tristate "ASoC Audio driver for Intel Baytrail with RT5640 codec"
+ tristate "Baytrail with RT5640 codec"
depends on X86_INTEL_LPSS && I2C
select SND_SOC_RT5640
help
@@ -85,7 +85,7 @@ endif ## SND_SOC_INTEL_BAYTRAIL
if SND_SST_ATOM_HIFI2_PLATFORM

config SND_SOC_INTEL_BYTCR_RT5640_MACH
- tristate "ASoC Audio driver for Intel Baytrail and Baytrail-CR with RT5640 codec"
+ tristate "Baytrail and Baytrail-CR with RT5640 codec"
depends on X86_INTEL_LPSS && I2C && ACPI
select CONFIG_SND_SOC_ACPI
select SND_SOC_RT5640
@@ -96,7 +96,7 @@ config SND_SOC_INTEL_BYTCR_RT5640_MACH
If unsure select "N".

config SND_SOC_INTEL_BYTCR_RT5651_MACH
- tristate "ASoC Audio driver for Intel Baytrail and Baytrail-CR with RT5651 codec"
+ tristate "Baytrail and Baytrail-CR with RT5651 codec"
depends on X86_INTEL_LPSS && I2C && ACPI
select CONFIG_SND_SOC_ACPI
select SND_SOC_RT5651
@@ -107,7 +107,7 @@ config SND_SOC_INTEL_BYTCR_RT5651_MACH
If unsure select "N".

config SND_SOC_INTEL_CHT_BSW_RT5672_MACH
- tristate "ASoC Audio driver for Intel Cherrytrail & Braswell with RT5672 codec"
+ tristate "Cherrytrail & Braswell with RT5672 codec"
depends on X86_INTEL_LPSS && I2C && ACPI
select CONFIG_SND_SOC_ACPI
select SND_SOC_RT5670
@@ -118,7 +118,7 @@ config SND_SOC_INTEL_CHT_BSW_RT5672_MACH
If unsure select "N".

config SND_SOC_INTEL_CHT_BSW_RT5645_MACH
- tristate "ASoC Audio driver for Intel Cherrytrail & Braswell with RT5645/5650 codec"
+ tristate "Cherrytrail & Braswell with RT5645/5650 codec"
depends on X86_INTEL_LPSS && I2C && ACPI
select CONFIG_SND_SOC_ACPI
select SND_SOC_RT5645
@@ -129,7 +129,7 @@ config SND_SOC_INTEL_CHT_BSW_RT5645_MACH
If unsure select "N".

config SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH
- tristate "ASoC Audio driver for Intel Cherrytrail & Braswell with MAX98090 & TI codec"
+ tristate "Cherrytrail & Braswell with MAX98090 & TI codec"
depends on X86_INTEL_LPSS && I2C && ACPI
select SND_SOC_MAX98090
select SND_SOC_TS3A227E
@@ -140,7 +140,7 @@ config SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH
If unsure select "N".

config SND_SOC_INTEL_BYT_CHT_DA7213_MACH
- tristate "ASoC Audio driver for Intel Baytrail & Cherrytrail with DA7212/7213 codec"
+ tristate "Baytrail & Cherrytrail with DA7212/7213 codec"
depends on X86_INTEL_LPSS && I2C && ACPI
select CONFIG_SND_SOC_ACPI
select SND_SOC_DA7213
@@ -151,7 +151,7 @@ config SND_SOC_INTEL_BYT_CHT_DA7213_MACH
If unsure select "N".

config SND_SOC_INTEL_BYT_CHT_ES8316_MACH
- tristate "ASoC Audio driver for Intel Baytrail & Cherrytrail with ES8316 codec"
+ tristate "Baytrail & Cherrytrail with ES8316 codec"
depends on X86_INTEL_LPSS && I2C && ACPI
select SND_SOC_ES8316
help
@@ -161,7 +161,7 @@ config SND_SOC_INTEL_BYT_CHT_ES8316_MACH
If unsure select "N".

config SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH
- tristate "ASoC Audio driver for Intel Baytrail & Cherrytrail platform with no codec (MinnowBoard MAX, Up)"
+ tristate "Baytrail & Cherrytrail platform with no codec (MinnowBoard MAX, Up)"
depends on X86_INTEL_LPSS && I2C && ACPI
help
This adds support for ASoC machine driver for the MinnowBoard Max or
@@ -177,7 +177,7 @@ endif ## SND_SST_ATOM_HIFI2_PLATFORM
if SND_SOC_INTEL_SKYLAKE

config SND_SOC_INTEL_SKL_RT286_MACH
- tristate "ASoC Audio driver for SKL with RT286 I2S mode"
+ tristate "SKL with RT286 I2S mode"
depends on MFD_INTEL_LPSS && I2C && ACPI
select SND_SOC_RT286
select SND_SOC_DMIC
@@ -189,7 +189,7 @@ config SND_SOC_INTEL_SKL_RT286_MACH
If unsure select "N".

config SND_SOC_INTEL_SKL_NAU88L25_SSM4567_MACH
- tristate "ASoC Audio driver for SKL with NAU88L25 and SSM4567 in I2S Mode"
+ tristate "SKL with NAU88L25 and SSM4567 in I2S Mode"
depends on MFD_INTEL_LPSS && I2C && ACPI
select SND_SOC_NAU8825
select SND_SOC_SSM4567
@@ -202,7 +202,7 @@ config SND_SOC_INTEL_SKL_NAU88L25_SSM4567_MACH
If unsure select "N".

config SND_SOC_INTEL_SKL_NAU88L25_MAX98357A_MACH
- tristate "ASoC Audio driver for SKL with NAU88L25 and MAX98357A in I2S Mode"
+ tristate "SKL with NAU88L25 and MAX98357A in I2S Mode"
depends on MFD_INTEL_LPSS && I2C && ACPI
select SND_SOC_NAU8825
select SND_SOC_MAX98357A
@@ -215,7 +215,7 @@ config SND_SOC_INTEL_SKL_NAU88L25_MAX98357A_MACH
If unsure select "N".

config SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH
- tristate "ASoC Audio driver for Broxton with DA7219 and MAX98357A in I2S Mode"
+ tristate "Broxton with DA7219 and MAX98357A in I2S Mode"
depends on MFD_INTEL_LPSS && I2C && ACPI
select SND_SOC_DA7219
select SND_SOC_MAX98357A
@@ -229,7 +229,7 @@ config SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH
If unsure select "N".

config SND_SOC_INTEL_BXT_RT298_MACH
- tristate "ASoC Audio driver for Broxton with RT298 I2S mode"
+ tristate "Broxton with RT298 I2S mode"
depends on MFD_INTEL_LPSS && I2C && ACPI
select SND_SOC_RT298
select SND_SOC_DMIC
@@ -242,7 +242,7 @@ config SND_SOC_INTEL_BXT_RT298_MACH
If unsure select "N".

config SND_SOC_INTEL_KBL_RT5663_MAX98927_MACH
- tristate "ASoC Audio driver for KBL with RT5663 and MAX98927 in I2S Mode"
+ tristate "KBL with RT5663 and MAX98927 in I2S Mode"
depends on MFD_INTEL_LPSS && I2C && ACPI
select SND_SOC_RT5663
select SND_SOC_MAX98927
@@ -255,7 +255,7 @@ config SND_SOC_INTEL_KBL_RT5663_MAX98927_MACH
If unsure select "N".

config SND_SOC_INTEL_KBL_RT5663_RT5514_MAX98927_MACH
- tristate "ASoC Audio driver for KBL with RT5663, RT5514 and MAX98927 in I2S Mode"
+ tristate "KBL with RT5663, RT5514 and MAX98927 in I2S Mode"
depends on MFD_INTEL_LPSS && I2C && SPI && ACPI
select SND_SOC_RT5663
select SND_SOC_RT5514
--
2.14.1

2017-12-15 00:45:25

by Pierre-Louis Bossart

[permalink] [raw]
Subject: [PATCH 2/9] ASoC: Intel: Kconfig: Simplify-clarify ACPI/PCI dependencies

PCI/ACPI selections should not happen in Kconfig for machine drivers,
move to SOC selections.

Add distinction between PCI and ACPI HiFi2 platforms and help text.

There should be no functionality change.

The PCI-based platforms may be removed at some point since Medfield
is not really supported by anyone, and with Edison now defunct support for
Merrifield/Edison is to be determined.

Signed-off-by: Pierre-Louis Bossart <[email protected]>
---
sound/soc/intel/Kconfig | 27 +++++++++++++++++++++++----
sound/soc/intel/boards/Kconfig | 14 ++++----------
2 files changed, 27 insertions(+), 14 deletions(-)

diff --git a/sound/soc/intel/Kconfig b/sound/soc/intel/Kconfig
index 6c330f70cca7..e9e5f96290f6 100644
--- a/sound/soc/intel/Kconfig
+++ b/sound/soc/intel/Kconfig
@@ -40,7 +40,7 @@ config SND_SOC_INTEL_SST_ACPI

config SND_SOC_INTEL_HASWELL
tristate "Intel ASoC SST driver for Haswell/Broadwell"
- depends on SND_DMA_SGBUF
+ depends on SND_DMA_SGBUF && ACPI
depends on DMADEVICES
select SND_SOC_INTEL_SST
select SND_SOC_INTEL_SST_FIRMWARE
@@ -52,7 +52,7 @@ config SND_SOC_INTEL_HASWELL

config SND_SOC_INTEL_BAYTRAIL
tristate "Intel ASoC SST driver for Baytrail (legacy)"
- depends on DMADEVICES
+ depends on DMADEVICES && ACPI
select SND_SOC_INTEL_SST
select SND_SOC_INTEL_SST_FIRMWARE
select SND_SOC_ACPI_INTEL_MATCH
@@ -62,11 +62,30 @@ config SND_SOC_INTEL_BAYTRAIL
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_PCI
+ tristate "Intel ASoC SST driver for PCI HiFi2 platforms (Medfield, Merrifield)"
+ depends on X86 && PCI
+ select SND_SST_IPC_PCI
+ select SND_SOC_COMPRESS
+ select SND_SOC_INTEL_COMMON
+ help
+ If you have a Intel Medfield or Merrifield/Edison platform, then
+ enable this option by saying Y or m. Distros will typically not
+ enable this option: Medfield devices are not available to
+ developers and 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
- tristate "Intel ASoC SST driver for HiFi2 platforms (*field, *trail)"
- depends on X86
+ tristate "Intel ASoC SST driver for ACPI HiFi2 platforms (Baytrail, Cherrytrail)"
+ depends on X86 && ACPI
+ select SND_SST_IPC_ACPI
select SND_SOC_COMPRESS
select SND_SOC_ACPI_INTEL_MATCH
+ 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 "Intel ASoC SST driver for SKL/BXT/KBL/GLK/CNL"
diff --git a/sound/soc/intel/boards/Kconfig b/sound/soc/intel/boards/Kconfig
index 08481882c240..e926f9747232 100644
--- a/sound/soc/intel/boards/Kconfig
+++ b/sound/soc/intel/boards/Kconfig
@@ -12,18 +12,20 @@ menuconfig SND_SOC_INTEL_MACH

if SND_SOC_INTEL_MACH

+if SND_SST_ATOM_HIFI2_PLATFORM_PCI
+
config SND_MFLD_MACHINE
tristate "SOC Machine Audio driver for Intel Medfield MID platform"
depends on INTEL_SCU_IPC
select SND_SOC_SN95031
- depends on SND_SST_ATOM_HIFI2_PLATFORM
- select SND_SST_IPC_PCI
help
This adds support for ASoC machine driver for Intel(R) MID Medfield platform
used as alsa device in audio substem in Intel(R) MID devices
Say Y if you have such a device.
If unsure select "N".

+endif
+
if SND_SOC_INTEL_HASWELL

config SND_SOC_INTEL_HASWELL_MACH
@@ -86,7 +88,6 @@ config SND_SOC_INTEL_BYTCR_RT5640_MACH
tristate "ASoC Audio driver for Intel Baytrail and Baytrail-CR with RT5640 codec"
depends on X86 && I2C && ACPI
select SND_SOC_RT5640
- select SND_SST_IPC_ACPI
help
This adds support for ASoC machine driver for Intel(R) Baytrail and Baytrail-CR
platforms with RT5640 audio codec.
@@ -97,7 +98,6 @@ config SND_SOC_INTEL_BYTCR_RT5651_MACH
tristate "ASoC Audio driver for Intel Baytrail and Baytrail-CR with RT5651 codec"
depends on X86 && I2C && ACPI
select SND_SOC_RT5651
- select SND_SST_IPC_ACPI
help
This adds support for ASoC machine driver for Intel(R) Baytrail and Baytrail-CR
platforms with RT5651 audio codec.
@@ -108,7 +108,6 @@ config SND_SOC_INTEL_CHT_BSW_RT5672_MACH
tristate "ASoC Audio driver for Intel Cherrytrail & Braswell with RT5672 codec"
depends on X86_INTEL_LPSS && I2C && ACPI
select SND_SOC_RT5670
- select SND_SST_IPC_ACPI
help
This adds support for ASoC machine driver for Intel(R) Cherrytrail & Braswell
platforms with RT5672 audio codec.
@@ -119,7 +118,6 @@ config SND_SOC_INTEL_CHT_BSW_RT5645_MACH
tristate "ASoC Audio driver for Intel Cherrytrail & Braswell with RT5645/5650 codec"
depends on X86_INTEL_LPSS && I2C && ACPI
select SND_SOC_RT5645
- select SND_SST_IPC_ACPI
help
This adds support for ASoC machine driver for Intel(R) Cherrytrail & Braswell
platforms with RT5645/5650 audio codec.
@@ -131,7 +129,6 @@ config SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH
depends on X86_INTEL_LPSS && I2C && ACPI
select SND_SOC_MAX98090
select SND_SOC_TS3A227E
- select SND_SST_IPC_ACPI
help
This adds support for ASoC machine driver for Intel(R) Cherrytrail & Braswell
platforms with MAX98090 audio codec it also can support TI jack chip as aux device.
@@ -142,7 +139,6 @@ config SND_SOC_INTEL_BYT_CHT_DA7213_MACH
tristate "ASoC Audio driver for Intel Baytrail & Cherrytrail with DA7212/7213 codec"
depends on X86_INTEL_LPSS && I2C && ACPI
select SND_SOC_DA7213
- select SND_SST_IPC_ACPI
help
This adds support for ASoC machine driver for Intel(R) Baytrail & CherryTrail
platforms with DA7212/7213 audio codec.
@@ -153,7 +149,6 @@ config SND_SOC_INTEL_BYT_CHT_ES8316_MACH
tristate "ASoC Audio driver for Intel Baytrail & Cherrytrail with ES8316 codec"
depends on X86_INTEL_LPSS && I2C && ACPI
select SND_SOC_ES8316
- select SND_SST_IPC_ACPI
help
This adds support for ASoC machine driver for Intel(R) Baytrail &
Cherrytrail platforms with ES8316 audio codec.
@@ -163,7 +158,6 @@ config SND_SOC_INTEL_BYT_CHT_ES8316_MACH
config SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH
tristate "ASoC Audio driver for Intel Baytrail & Cherrytrail platform with no codec (MinnowBoard MAX, Up)"
depends on X86_INTEL_LPSS && I2C && ACPI
- select SND_SST_IPC_ACPI
help
This adds support for ASoC machine driver for the MinnowBoard Max or
Up boards and provides access to I2S signals on the Low-Speed
--
2.14.1

2017-12-15 00:46:26

by Pierre-Louis Bossart

[permalink] [raw]
Subject: [PATCH 6/9] ASoC: Intel: boards: align Kconfig configurations for HiFi2

Make sure all the configs are aligned
Also add the missing dependencies on SOC_ACPI stuff used to fix
DAI names based on HID and fix a couple of indentation issues

Signed-off-by: Pierre-Louis Bossart <[email protected]>
---
sound/soc/intel/boards/Kconfig | 33 +++++++++++++++++++--------------
1 file changed, 19 insertions(+), 14 deletions(-)

diff --git a/sound/soc/intel/boards/Kconfig b/sound/soc/intel/boards/Kconfig
index 358f8f33adc4..a0cbbe9e8db7 100644
--- a/sound/soc/intel/boards/Kconfig
+++ b/sound/soc/intel/boards/Kconfig
@@ -85,29 +85,32 @@ endif
if SND_SST_ATOM_HIFI2_PLATFORM

config SND_SOC_INTEL_BYTCR_RT5640_MACH
- tristate "ASoC Audio driver for Intel Baytrail and Baytrail-CR with RT5640 codec"
- depends on X86 && I2C && ACPI
+ tristate "ASoC Audio driver for Intel Baytrail and Baytrail-CR with RT5640 codec"
+ depends on X86_INTEL_LPSS && I2C && ACPI
+ select CONFIG_SND_SOC_ACPI
select SND_SOC_RT5640
help
- This adds support for ASoC machine driver for Intel(R) Baytrail and Baytrail-CR
- platforms with RT5640 audio codec.
- Say Y or m if you have such a device. This is a recommended option.
- If unsure select "N".
+ This adds support for ASoC machine driver for Intel(R) Baytrail and Baytrail-CR
+ platforms with RT5640 audio codec.
+ Say Y or m if you have such a device. This is a recommended option.
+ If unsure select "N".

config SND_SOC_INTEL_BYTCR_RT5651_MACH
- tristate "ASoC Audio driver for Intel Baytrail and Baytrail-CR with RT5651 codec"
- depends on X86 && I2C && ACPI
+ tristate "ASoC Audio driver for Intel Baytrail and Baytrail-CR with RT5651 codec"
+ depends on X86_INTEL_LPSS && I2C && ACPI
+ select CONFIG_SND_SOC_ACPI
select SND_SOC_RT5651
help
- This adds support for ASoC machine driver for Intel(R) Baytrail and Baytrail-CR
- platforms with RT5651 audio codec.
- Say Y or m if you have such a device. This is a recommended option.
- If unsure select "N".
+ This adds support for ASoC machine driver for Intel(R) Baytrail and Baytrail-CR
+ platforms with RT5651 audio codec.
+ Say Y or m if you have such a device. This is a recommended option.
+ If unsure select "N".

config SND_SOC_INTEL_CHT_BSW_RT5672_MACH
- tristate "ASoC Audio driver for Intel Cherrytrail & Braswell with RT5672 codec"
+ tristate "ASoC Audio driver for Intel Cherrytrail & Braswell with RT5672 codec"
depends on X86_INTEL_LPSS && I2C && ACPI
- select SND_SOC_RT5670
+ select CONFIG_SND_SOC_ACPI
+ select SND_SOC_RT5670
help
This adds support for ASoC machine driver for Intel(R) Cherrytrail & Braswell
platforms with RT5672 audio codec.
@@ -117,6 +120,7 @@ config SND_SOC_INTEL_CHT_BSW_RT5672_MACH
config SND_SOC_INTEL_CHT_BSW_RT5645_MACH
tristate "ASoC Audio driver for Intel Cherrytrail & Braswell with RT5645/5650 codec"
depends on X86_INTEL_LPSS && I2C && ACPI
+ select CONFIG_SND_SOC_ACPI
select SND_SOC_RT5645
help
This adds support for ASoC machine driver for Intel(R) Cherrytrail & Braswell
@@ -138,6 +142,7 @@ config SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH
config SND_SOC_INTEL_BYT_CHT_DA7213_MACH
tristate "ASoC Audio driver for Intel Baytrail & Cherrytrail with DA7212/7213 codec"
depends on X86_INTEL_LPSS && I2C && ACPI
+ select CONFIG_SND_SOC_ACPI
select SND_SOC_DA7213
help
This adds support for ASoC machine driver for Intel(R) Baytrail & CherryTrail
--
2.14.1

2017-12-15 00:46:46

by Pierre-Louis Bossart

[permalink] [raw]
Subject: [PATCH 5/9] ASoC: Intel: boards: align Kconfig dependencies for Haswell/Broadwell

Make sure that the same I2C/I2C_DESIGNWARE_PLATFORM are selected.
The latter might actually need to be moved to the SOC side of things,
it really has no place in a machine driver dependency

Signed-off-by: Pierre-Louis Bossart <[email protected]>
---
sound/soc/intel/boards/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sound/soc/intel/boards/Kconfig b/sound/soc/intel/boards/Kconfig
index e926f9747232..358f8f33adc4 100644
--- a/sound/soc/intel/boards/Kconfig
+++ b/sound/soc/intel/boards/Kconfig
@@ -40,7 +40,7 @@ config SND_SOC_INTEL_HASWELL_MACH

config SND_SOC_INTEL_BDW_RT5677_MACH
tristate "ASoC Audio driver for Intel Broadwell with RT5677 codec"
- depends on X86_INTEL_LPSS && GPIOLIB && I2C
+ depends on X86_INTEL_LPSS && I2C && I2C_DESIGNWARE_PLATFORM && GPIOLIB
select SND_SOC_RT5677
help
This adds support for Intel Broadwell platform based boards with
--
2.14.1

2017-12-15 00:47:00

by Pierre-Louis Bossart

[permalink] [raw]
Subject: [PATCH 4/9] ASoC: Intel: Fix nested/unnecessary Kconfig dependencies

This patch fixes a number of issues:
1. IOSF_MBI is only needed for byt-cr detection, which is only supported
on Baytrail/Cherrytrail, move to HiFi2 config

2. SND_SOC_INTEL_SST should not select SND_SOC_INTEL_SST_ACPI, the latter
config is only valid for Haswell/Baytrail legacy but not needed by Skylake

3. SND_SST_IPC_ACPI, used only by the atom/sst driver, should not select
SND_SOC_INTEL_SST, none of the code under common/sst*.c is used

This nesting of configs really makes no sense, it's easier to maintain
if for each platform one can control what is strictly required.

Compiled-tested with each of Haswell, Baytrail legacy, HiFi2, SKL cases
selected independently. 0-day and explicit randconfig tests did not report
additional issues and no functionality loss was observed in Intel tests on
HIFI2 and SKYLAKE platforms

Signed-off-by: Pierre-Louis Bossart <[email protected]>
---
sound/soc/intel/Kconfig | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/sound/soc/intel/Kconfig b/sound/soc/intel/Kconfig
index f25edeb7cff6..e6f7fc91900c 100644
--- a/sound/soc/intel/Kconfig
+++ b/sound/soc/intel/Kconfig
@@ -27,8 +27,6 @@ config SND_SST_IPC_PCI
config SND_SST_IPC_ACPI
tristate
select SND_SST_IPC
- select SND_SOC_INTEL_SST
- select IOSF_MBI
# This option controls the ACPI-based IPC for HiFi2 platforms
# (Baytrail, Cherrytrail)

@@ -39,7 +37,6 @@ config SND_SOC_INTEL_SST_ACPI

config SND_SOC_INTEL_SST
tristate
- select SND_SOC_INTEL_SST_ACPI if ACPI

config SND_SOC_INTEL_SST_FIRMWARE
tristate
@@ -52,6 +49,7 @@ config SND_SOC_INTEL_HASWELL
depends on SND_DMA_SGBUF && ACPI
depends on DMADEVICES
select SND_SOC_INTEL_SST
+ select SND_SOC_INTEL_SST_ACPI
select SND_SOC_INTEL_SST_FIRMWARE
select SND_SOC_ACPI_INTEL_MATCH
help
@@ -63,6 +61,7 @@ config SND_SOC_INTEL_BAYTRAIL
tristate "Intel ASoC SST driver for Baytrail (legacy)"
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
@@ -89,6 +88,7 @@ config SND_SST_ATOM_HIFI2_PLATFORM
tristate "Intel ASoC SST driver for ACPI HiFi2 platforms (Baytrail, Cherrytrail)"
depends on X86 && ACPI
select SND_SST_IPC_ACPI
+ select IOSF_MBI
select SND_SOC_COMPRESS
select SND_SOC_ACPI_INTEL_MATCH
help
--
2.14.1

2017-12-15 00:47:05

by Pierre-Louis Bossart

[permalink] [raw]
Subject: [PATCH 1/9] ASoC: Intel: Fix Kconfig with top-level selector

Follow network example suggested by Linus, move Intel definitions
in if/endif block and clarify in help text which options distro
configurations should enable - everything except legacy Baytrail stuff and
NOCODEC (test only)

To avoid user confusion, machine drivers are handled with a submenu made
dependent on this top-level selector.

There should be no functionality change - except that sound capabilities
are restored when using older configs without any user selection.

Note that the SND_SOC_ACPI_INTEL_MATCH config is not filtered out by
the top-level selector since it will also be selected with the upcoming
SOF drivers. Likewise the machine drivers are filtered by a top-level
selector which will allow for selection/reuse of the same machine driver
with existing SST or SOF-based platform drivers.

(simplification with submenu for machine drivers by Vinod Koul)

Fixes: f6a118a800e3 ("ASoC: Intel: clarify Kconfig dependencies")
Reported-by: Linus Torvalds <[email protected]>
Signed-off-by: Pierre-Louis Bossart <[email protected]>
Signed-off-by: Vinod Koul <[email protected]>
---
sound/soc/intel/Kconfig | 71 +++++++++++++++++++++----------
sound/soc/intel/Makefile | 2 +-
sound/soc/intel/boards/Kconfig | 94 +++++++++++++++++++++++-------------------
3 files changed, 102 insertions(+), 65 deletions(-)

diff --git a/sound/soc/intel/Kconfig b/sound/soc/intel/Kconfig
index 7b49d04e3c60..6c330f70cca7 100644
--- a/sound/soc/intel/Kconfig
+++ b/sound/soc/intel/Kconfig
@@ -1,3 +1,19 @@
+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

@@ -11,9 +27,6 @@ config SND_SST_IPC_ACPI
select SND_SOC_INTEL_SST
select IOSF_MBI

-config SND_SOC_INTEL_COMMON
- tristate
-
config SND_SOC_INTEL_SST
tristate
select SND_SOC_INTEL_SST_ACPI if ACPI
@@ -25,47 +38,61 @@ config SND_SOC_INTEL_SST_FIRMWARE
config SND_SOC_INTEL_SST_ACPI
tristate

-config SND_SOC_ACPI_INTEL_MATCH
- tristate
- select SND_SOC_ACPI if ACPI
-
-config SND_SOC_INTEL_SST_TOPLEVEL
- tristate "Intel ASoC SST drivers"
- depends on X86 || COMPILE_TEST
- select SND_SOC_INTEL_MACH
- select SND_SOC_INTEL_COMMON
- help
- Intel ASoC Audio Drivers. If you have a Intel machine that
- has audio controller with a DSP and I2S or DMIC port, then
- enable this option by saying Y or M
- If unsure select "N".
-
config SND_SOC_INTEL_HASWELL
tristate "Intel ASoC SST driver for Haswell/Broadwell"
- depends on SND_SOC_INTEL_SST_TOPLEVEL && SND_DMA_SGBUF
+ depends on SND_DMA_SGBUF
depends on DMADEVICES
select SND_SOC_INTEL_SST
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 "Intel ASoC SST driver for Baytrail (legacy)"
- depends on SND_SOC_INTEL_SST_TOPLEVEL
depends on DMADEVICES
select SND_SOC_INTEL_SST
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 "Intel ASoC SST driver for HiFi2 platforms (*field, *trail)"
- depends on SND_SOC_INTEL_SST_TOPLEVEL && X86
+ depends on X86
select SND_SOC_COMPRESS
+ select SND_SOC_ACPI_INTEL_MATCH

config SND_SOC_INTEL_SKYLAKE
tristate "Intel ASoC SST driver for SKL/BXT/KBL/GLK/CNL"
- depends on SND_SOC_INTEL_SST_TOPLEVEL && PCI && ACPI
+ depends on PCI && ACPI
select SND_HDA_EXT_CORE
select SND_HDA_DSP_LOADER
select SND_SOC_TOPOLOGY
select SND_SOC_INTEL_SST
+ 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_SST_TOPLEVEL

# ASoC codec drivers
source "sound/soc/intel/boards/Kconfig"
+
+# configs common to SST and SOF to use matching tables
+
+config SND_SOC_ACPI_INTEL_MATCH
+ tristate
+ depends on X86 && ACPI
+ select SND_SOC_ACPI
+ # this option controls the compilation of ACPI matching tables and
+ # helpers and is not meant to be selected by the user. It is not
+ # filtered out on purpose by the top-level selector since it will
+ # be selected by SST or SOF platform driver options
diff --git a/sound/soc/intel/Makefile b/sound/soc/intel/Makefile
index b973d457e834..8160520fd74c 100644
--- a/sound/soc/intel/Makefile
+++ b/sound/soc/intel/Makefile
@@ -1,6 +1,6 @@
# SPDX-License-Identifier: GPL-2.0
# Core support
-obj-$(CONFIG_SND_SOC_INTEL_COMMON) += common/
+obj-$(CONFIG_SND_SOC) += common/

# Platform Support
obj-$(CONFIG_SND_SOC_INTEL_HASWELL) += haswell/
diff --git a/sound/soc/intel/boards/Kconfig b/sound/soc/intel/boards/Kconfig
index 6f754708a48c..08481882c240 100644
--- a/sound/soc/intel/boards/Kconfig
+++ b/sound/soc/intel/boards/Kconfig
@@ -1,7 +1,14 @@
-config SND_SOC_INTEL_MACH
- tristate "Intel Audio machine drivers"
+menuconfig SND_SOC_INTEL_MACH
+ bool "Intel Machine drivers"
depends on SND_SOC_INTEL_SST_TOPLEVEL
- select SND_SOC_ACPI_INTEL_MATCH if ACPI
+ help
+ Intel ASoC Machine 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 ASoC machine drivers.

if SND_SOC_INTEL_MACH

@@ -17,103 +24,106 @@ config SND_MFLD_MACHINE
Say Y if you have such a device.
If unsure select "N".

+if SND_SOC_INTEL_HASWELL
+
config SND_SOC_INTEL_HASWELL_MACH
tristate "ASoC Audio DSP support for Intel Haswell Lynxpoint"
depends on X86_INTEL_LPSS && I2C && I2C_DESIGNWARE_PLATFORM
- depends on SND_SOC_INTEL_HASWELL
select SND_SOC_RT5640
help
This adds support for the Lynxpoint Audio DSP on Intel(R) Haswell
- Ultrabook platforms.
- Say Y if you have such a device.
+ Ultrabook platforms. This is a recommended option.
+ Say Y or m if you have such a device.
If unsure select "N".

config SND_SOC_INTEL_BDW_RT5677_MACH
tristate "ASoC Audio driver for Intel Broadwell with RT5677 codec"
depends on X86_INTEL_LPSS && GPIOLIB && I2C
- depends on SND_SOC_INTEL_HASWELL
select SND_SOC_RT5677
help
This adds support for Intel Broadwell platform based boards with
- the RT5677 audio codec.
+ the RT5677 audio codec. This is a recommended option.
+ Say Y or m if you have such a device.
+ If unsure select "N".

config SND_SOC_INTEL_BROADWELL_MACH
tristate "ASoC Audio DSP support for Intel Broadwell Wildcatpoint"
depends on X86_INTEL_LPSS && I2C && I2C_DESIGNWARE_PLATFORM
- depends on SND_SOC_INTEL_HASWELL
select SND_SOC_RT286
help
This adds support for the Wilcatpoint Audio DSP on Intel(R) Broadwell
Ultrabook platforms.
- Say Y if you have such a device.
+ Say Y or m if you have such a device. This is a recommended option.
If unsure select "N".
+endif
+
+if SND_SOC_INTEL_BAYTRAIL

config SND_SOC_INTEL_BYT_MAX98090_MACH
tristate "ASoC Audio driver for Intel Baytrail with MAX98090 codec"
depends on X86_INTEL_LPSS && I2C
- depends on SND_SST_IPC_ACPI = n
- depends on SND_SOC_INTEL_BAYTRAIL
select SND_SOC_MAX98090
help
This adds audio driver for Intel Baytrail platform based boards
- with the MAX98090 audio codec.
+ with the MAX98090 audio codec. This driver is deprecated, use
+ SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH instead for better
+ functionality.

config SND_SOC_INTEL_BYT_RT5640_MACH
tristate "ASoC Audio driver for Intel Baytrail with RT5640 codec"
depends on X86_INTEL_LPSS && I2C
- depends on SND_SST_IPC_ACPI = n
- depends on SND_SOC_INTEL_BAYTRAIL
select SND_SOC_RT5640
help
This adds audio driver for Intel Baytrail platform based boards
with the RT5640 audio codec. This driver is deprecated, use
SND_SOC_INTEL_BYTCR_RT5640_MACH instead for better functionality.

+endif
+
+if SND_SST_ATOM_HIFI2_PLATFORM
+
config SND_SOC_INTEL_BYTCR_RT5640_MACH
tristate "ASoC Audio driver for Intel Baytrail and Baytrail-CR with RT5640 codec"
depends on X86 && I2C && ACPI
select SND_SOC_RT5640
- depends on SND_SST_ATOM_HIFI2_PLATFORM
select SND_SST_IPC_ACPI
help
This adds support for ASoC machine driver for Intel(R) Baytrail and Baytrail-CR
platforms with RT5640 audio codec.
- Say Y if you have such a device.
+ Say Y or m if you have such a device. This is a recommended option.
If unsure select "N".

config SND_SOC_INTEL_BYTCR_RT5651_MACH
tristate "ASoC Audio driver for Intel Baytrail and Baytrail-CR with RT5651 codec"
depends on X86 && I2C && ACPI
select SND_SOC_RT5651
- depends on SND_SST_ATOM_HIFI2_PLATFORM
select SND_SST_IPC_ACPI
help
This adds support for ASoC machine driver for Intel(R) Baytrail and Baytrail-CR
platforms with RT5651 audio codec.
- Say Y if you have such a device.
+ Say Y or m if you have such a device. This is a recommended option.
If unsure select "N".

config SND_SOC_INTEL_CHT_BSW_RT5672_MACH
tristate "ASoC Audio driver for Intel Cherrytrail & Braswell with RT5672 codec"
depends on X86_INTEL_LPSS && I2C && ACPI
select SND_SOC_RT5670
- depends on SND_SST_ATOM_HIFI2_PLATFORM
select SND_SST_IPC_ACPI
help
This adds support for ASoC machine driver for Intel(R) Cherrytrail & Braswell
platforms with RT5672 audio codec.
- Say Y if you have such a device.
+ Say Y or m if you have such a device. This is a recommended option.
If unsure select "N".

config SND_SOC_INTEL_CHT_BSW_RT5645_MACH
tristate "ASoC Audio driver for Intel Cherrytrail & Braswell with RT5645/5650 codec"
depends on X86_INTEL_LPSS && I2C && ACPI
select SND_SOC_RT5645
- depends on SND_SST_ATOM_HIFI2_PLATFORM
select SND_SST_IPC_ACPI
help
This adds support for ASoC machine driver for Intel(R) Cherrytrail & Braswell
platforms with RT5645/5650 audio codec.
+ Say Y or m if you have such a device. This is a recommended option.
If unsure select "N".

config SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH
@@ -121,63 +131,67 @@ config SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH
depends on X86_INTEL_LPSS && I2C && ACPI
select SND_SOC_MAX98090
select SND_SOC_TS3A227E
- depends on SND_SST_ATOM_HIFI2_PLATFORM
select SND_SST_IPC_ACPI
help
This adds support for ASoC machine driver for Intel(R) Cherrytrail & Braswell
platforms with MAX98090 audio codec it also can support TI jack chip as aux device.
+ Say Y or m if you have such a device. This is a recommended option.
If unsure select "N".

config SND_SOC_INTEL_BYT_CHT_DA7213_MACH
tristate "ASoC Audio driver for Intel Baytrail & Cherrytrail with DA7212/7213 codec"
depends on X86_INTEL_LPSS && I2C && ACPI
select SND_SOC_DA7213
- depends on SND_SST_ATOM_HIFI2_PLATFORM
select SND_SST_IPC_ACPI
help
This adds support for ASoC machine driver for Intel(R) Baytrail & CherryTrail
platforms with DA7212/7213 audio codec.
+ Say Y or m if you have such a device. This is a recommended option.
If unsure select "N".

config SND_SOC_INTEL_BYT_CHT_ES8316_MACH
tristate "ASoC Audio driver for Intel Baytrail & Cherrytrail with ES8316 codec"
depends on X86_INTEL_LPSS && I2C && ACPI
select SND_SOC_ES8316
- depends on SND_SST_ATOM_HIFI2_PLATFORM
select SND_SST_IPC_ACPI
help
This adds support for ASoC machine driver for Intel(R) Baytrail &
Cherrytrail platforms with ES8316 audio codec.
+ Say Y or m if you have such a device. This is a recommended option.
If unsure select "N".

config SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH
tristate "ASoC Audio driver for Intel Baytrail & Cherrytrail platform with no codec (MinnowBoard MAX, Up)"
depends on X86_INTEL_LPSS && I2C && ACPI
- depends on SND_SST_ATOM_HIFI2_PLATFORM
select SND_SST_IPC_ACPI
help
This adds support for ASoC machine driver for the MinnowBoard Max or
Up boards and provides access to I2S signals on the Low-Speed
- connector
+ connector. This is not a recommended option outside of these cases.
+ It is not intended to be enabled by distros by default.
+ Say Y or m if you have such a device.
+
If unsure select "N".

+endif
+
+if SND_SOC_INTEL_SKYLAKE
+
config SND_SOC_INTEL_SKL_RT286_MACH
tristate "ASoC Audio driver for SKL with RT286 I2S mode"
depends on X86 && ACPI && I2C
- depends on SND_SOC_INTEL_SKYLAKE
select SND_SOC_RT286
select SND_SOC_DMIC
select SND_SOC_HDAC_HDMI
help
This adds support for ASoC machine driver for Skylake platforms
with RT286 I2S audio codec.
- Say Y if you have such a device.
+ Say Y or m if you have such a device.
If unsure select "N".

config SND_SOC_INTEL_SKL_NAU88L25_SSM4567_MACH
tristate "ASoC Audio driver for SKL with NAU88L25 and SSM4567 in I2S Mode"
depends on X86_INTEL_LPSS && I2C
- depends on SND_SOC_INTEL_SKYLAKE
select SND_SOC_NAU8825
select SND_SOC_SSM4567
select SND_SOC_DMIC
@@ -185,13 +199,12 @@ config SND_SOC_INTEL_SKL_NAU88L25_SSM4567_MACH
help
This adds support for ASoC Onboard Codec I2S machine driver. This will
create an alsa sound card for NAU88L25 + SSM4567.
- Say Y if you have such a device.
+ Say Y or m if you have such a device. This is a recommended option.
If unsure select "N".

config SND_SOC_INTEL_SKL_NAU88L25_MAX98357A_MACH
tristate "ASoC Audio driver for SKL with NAU88L25 and MAX98357A in I2S Mode"
depends on X86_INTEL_LPSS && I2C
- depends on SND_SOC_INTEL_SKYLAKE
select SND_SOC_NAU8825
select SND_SOC_MAX98357A
select SND_SOC_DMIC
@@ -199,13 +212,12 @@ config SND_SOC_INTEL_SKL_NAU88L25_MAX98357A_MACH
help
This adds support for ASoC Onboard Codec I2S machine driver. This will
create an alsa sound card for NAU88L25 + MAX98357A.
- Say Y if you have such a device.
+ Say Y or m if you have such a device. This is a recommended option.
If unsure select "N".

config SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH
tristate "ASoC Audio driver for Broxton with DA7219 and MAX98357A in I2S Mode"
depends on X86 && ACPI && I2C
- depends on SND_SOC_INTEL_SKYLAKE
select SND_SOC_DA7219
select SND_SOC_MAX98357A
select SND_SOC_DMIC
@@ -214,13 +226,12 @@ config SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH
help
This adds support for ASoC machine driver for Broxton-P platforms
with DA7219 + MAX98357A I2S audio codec.
- Say Y if you have such a device.
+ Say Y or m if you have such a device. This is a recommended option.
If unsure select "N".

config SND_SOC_INTEL_BXT_RT298_MACH
tristate "ASoC Audio driver for Broxton with RT298 I2S mode"
depends on X86 && ACPI && I2C
- depends on SND_SOC_INTEL_SKYLAKE
select SND_SOC_RT298
select SND_SOC_DMIC
select SND_SOC_HDAC_HDMI
@@ -228,14 +239,13 @@ config SND_SOC_INTEL_BXT_RT298_MACH
help
This adds support for ASoC machine driver for Broxton platforms
with RT286 I2S audio codec.
- Say Y if you have such a device.
+ Say Y or m if you have such a device. This is a recommended option.
If unsure select "N".

config SND_SOC_INTEL_KBL_RT5663_MAX98927_MACH
tristate "ASoC Audio driver for KBL with RT5663 and MAX98927 in I2S Mode"
depends on X86_INTEL_LPSS && I2C
select SND_SOC_INTEL_SST
- depends on SND_SOC_INTEL_SKYLAKE
select SND_SOC_RT5663
select SND_SOC_MAX98927
select SND_SOC_DMIC
@@ -243,14 +253,13 @@ config SND_SOC_INTEL_KBL_RT5663_MAX98927_MACH
help
This adds support for ASoC Onboard Codec I2S machine driver. This will
create an alsa sound card for RT5663 + MAX98927.
- Say Y if you have such a device.
+ Say Y or m if you have such a device. This is a recommended option.
If unsure select "N".

config SND_SOC_INTEL_KBL_RT5663_RT5514_MAX98927_MACH
tristate "ASoC Audio driver for KBL with RT5663, RT5514 and MAX98927 in I2S Mode"
depends on X86_INTEL_LPSS && I2C && SPI
select SND_SOC_INTEL_SST
- depends on SND_SOC_INTEL_SKYLAKE
select SND_SOC_RT5663
select SND_SOC_RT5514
select SND_SOC_RT5514_SPI
@@ -259,7 +268,8 @@ config SND_SOC_INTEL_KBL_RT5663_RT5514_MAX98927_MACH
help
This adds support for ASoC Onboard Codec I2S machine driver. This will
create an alsa sound card for RT5663 + RT5514 + MAX98927.
- Say Y if you have such a device.
+ Say Y or m if you have such a device. This is a recommended option.
If unsure select "N".
-
endif
+
+endif ## SND_SOC_INTEL_MACH
--
2.14.1

2017-12-15 05:30:40

by Vinod Koul

[permalink] [raw]
Subject: Re: [PATCH 0/9] ASoC: Intel: Kconfig fixes

On Thu, Dec 14, 2017 at 06:44:42PM -0600, Pierre-Louis Bossart wrote:
> The first patch implements what Linus, Takashi and Mark
> requested: a top-level selector defaulting to 'y' to easily filter all
> other options and with no impact on code generation. There should be no
> functionality change and will avoid breaking audio for people using
> make oldnoconfig.
>
> The rest of the patch series does a more in-depth cleanup. It was tested
> on Baytrail/Cherrytrail/Skylake platforms with no regressions
> observed and no reports of any compilation issues with 0-day or
> randconfig.
>
> The 4th patch is really the most important one, there were nested
> configs which made no sense to me. I don't know the history which led
> to such complicated stuff but simpler is better.
>
> Patches 5..7 are just clean-ups of the machine driver configs,
> for some reason there is no consistency in the settings so I tried to
> apply common sense and use the same rules. At Andy Shevchenko's suggestion,
> I also replaced the broken dependency on X86_INTEL_LPSS by MFD_INTEL_LPSS
> for Skylake+ machines. No regressions were identified with this change.
>
> Patches 8 and 9 are new in this series and are just cosmetic changes (comments
> and text simplification).
>
> Thanks to Vinod Koul for his contributions and comments.
>
> Changes since RFCv2:
> Moved machine drivers to submenu
> Dropped SND_SOC_INTEL_COMMON since it was not needed
> Added more comments for if/endif
> Simplified text for options (dropped "ASoC Intel driver....")
> Fixed one 0-day warning
>
> Changes since initial RFC:
> Removed default n
> Added help text for HASWELL, BAYTRAIL (legacy) and SKYLAKE options
> Made top level machine driver selection dependent on INTEL_SST_TOPLEVEL.
> Added help text for PCI and HIFI2 platforms
> Replaced X86_INTEL_LPSS by MFD_INTEL_LPSS for Skylake+ devices
> Fixed a couple of indentation issues

For these:

> Pierre-Louis Bossart (7):
> ASoC: Intel: Fix Kconfig with top-level selector
> ASoC: Intel: Kconfig: Simplify-clarify ACPI/PCI dependencies
> ASoC: Intel: document what Kconfig options do
> ASoC: Intel: Fix nested/unnecessary Kconfig dependencies
> ASoC: Intel: boards: align Kconfig dependencies for Haswell/Broadwell
> ASoC: Intel: boards: align Kconfig configurations for HiFi2
> ASoC: Intel: boards: align/fix SKL/BXT/KBL Kconfigs

Acked-By: Vinod Koul <[email protected]>

--
~Vinod

2017-12-15 10:51:17

by Andy Shevchenko

[permalink] [raw]
Subject: Re: [PATCH 9/9] ASoC: Intel: kconfig: drop boiler plate text from config items

On Thu, 2017-12-14 at 18:44 -0600, Pierre-Louis Bossart wrote:
> From: Vinod Koul <[email protected]>
>
> Drop "Intel ASoC SST driver for " platforms and "SOC Machine Audio
> driver
> for Intel" for machines..

> config SND_SST_ATOM_HIFI2_PLATFORM_PCI
> - tristate "Intel ASoC SST driver for PCI HiFi2 platforms
> (Medfield, Merrifield)"
> + tristate "PCI HiFi2 platforms (Medfield, Merrifield)
> platforms"

platforms platforms

> + tristate "ACPI HiFi2 platforms (Baytrail, Cherrytrail)
> Platforms"

Ditto.

> config SND_SOC_INTEL_SKYLAKE
> - tristate "Intel ASoC SST driver for SKL/BXT/KBL/GLK/CNL"
> + tristate "SKL/BXT/KBL/GLK/CNL... Platforms"
> depends on PCI && ACPI
> select SND_HDA_EXT_CORE
> select SND_HDA_DSP_LOADER
> diff --git a/sound/soc/intel/boards/Kconfig
> b/sound/soc/intel/boards/Kconfig
> index ae5714c90213..4b353898b591 100644
> --- a/sound/soc/intel/boards/Kconfig
> +++ b/sound/soc/intel/boards/Kconfig
> @@ -15,7 +15,7 @@ if SND_SOC_INTEL_MACH
> if SND_SST_ATOM_HIFI2_PLATFORM_PCI
>
> config SND_MFLD_MACHINE
> - tristate "SOC Machine Audio driver for Intel Medfield MID
> platform"
> + tristate "Intel Medfield MID"

Perhaps
"Medfield MID" ?

> - tristate "ASoC Audio DSP support for Intel Haswell Lynxpoint"
> + tristate "Haswell Lynxpoint"

...

> config SND_SOC_INTEL_BROADWELL_MACH
> - tristate "ASoC Audio DSP support for Intel Broadwell
> Wildcatpoint"
> + tristate "Intel Broadwell Wildcatpoint"

"Broadwell Wildcatpoint"

to be in align with Haswell?

> + tristate "Baytrail & Cherrytrail platform with no codec
> (MinnowBoard MAX, Up)"

platform -> platforms ?


--
Andy Shevchenko <[email protected]>
Intel Finland Oy

2017-12-15 10:56:51

by Andy Shevchenko

[permalink] [raw]
Subject: Re: [PATCH 6/9] ASoC: Intel: boards: align Kconfig configurations for HiFi2

On Thu, 2017-12-14 at 18:44 -0600, Pierre-Louis Bossart wrote:
> Make sure all the configs are aligned
> Also add the missing dependencies on SOC_ACPI stuff used to fix
> DAI names based on HID and fix a couple of indentation issues
>
>

> + select CONFIG_SND_SOC_ACPI

CONFIG_ ?!

> + select CONFIG_SND_SOC_ACPI

> + select CONFIG_SND_SOC_ACPI

> + select CONFIG_SND_SOC_ACPI

> + select CONFIG_SND_SOC_ACPI


--
Andy Shevchenko <[email protected]>
Intel Finland Oy

2017-12-15 10:56:53

by Andy Shevchenko

[permalink] [raw]
Subject: Re: [PATCH 3/9] ASoC: Intel: document what Kconfig options do

On Thu, 2017-12-14 at 18:44 -0600, Pierre-Louis Bossart wrote:
> Document in comments what the options are supposed to mean, before
> clean-up in next patch.

> +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

I would rather start a new line (mind indentation as well) with list of
platforms:

# This option controls ACPI-based probing on
# Haswell/Broadwell/Baytrail legacy and will be set
# when these platforms are enabled

> + # This option controls firmware download on
> Haswell/Broadwell/
> + # Baytrail legacy and will be set when these platforms are
> enabled

Ditto,

--
Andy Shevchenko <[email protected]>
Intel Finland Oy

2017-12-15 11:03:20

by Andy Shevchenko

[permalink] [raw]
Subject: Re: [PATCH 2/9] ASoC: Intel: Kconfig: Simplify-clarify ACPI/PCI dependencies

On Thu, 2017-12-14 at 18:44 -0600, Pierre-Louis Bossart wrote:
> PCI/ACPI selections should not happen in Kconfig for machine drivers,
> move to SOC selections.
>
> Add distinction between PCI and ACPI HiFi2 platforms and help text.
>
> There should be no functionality change.
>
> The PCI-based platforms may be removed at some point since Medfield
> is not really supported by anyone, and with Edison now defunct support
> for
> Merrifield/Edison is to be determined.
>

> - depends on SND_DMA_SGBUF
> + depends on SND_DMA_SGBUF && ACPI
> depends on DMADEVICES

Perhaps

depends on DMADEVICES && ACPI

to be in align with below?

> config SND_SOC_INTEL_BAYTRAIL
> tristate "Intel ASoC SST driver for Baytrail (legacy)"
> - depends on DMADEVICES
> + depends on DMADEVICES && ACPI


--
Andy Shevchenko <[email protected]>
Intel Finland Oy

2017-12-15 11:06:54

by Andy Shevchenko

[permalink] [raw]
Subject: Re: [PATCH 0/9] ASoC: Intel: Kconfig fixes

On Thu, 2017-12-14 at 18:44 -0600, Pierre-Louis Bossart wrote:

Wrong ALSA ML address in use.

--
Andy Shevchenko <[email protected]>
Intel Finland Oy

2017-12-15 11:07:17

by Takashi Iwai

[permalink] [raw]
Subject: Re: [PATCH 1/9] ASoC: Intel: Fix Kconfig with top-level selector

On Fri, 15 Dec 2017 01:44:43 +0100,
Pierre-Louis Bossart wrote:
>
> +config SND_SOC_ACPI_INTEL_MATCH
> + tristate
> + depends on X86 && ACPI
> + select SND_SOC_ACPI

An item that is selected by others can only select, not depend.
The depends need to be put for the items that select this instead.


thanks,

Takashi

2017-12-15 11:10:16

by Andy Shevchenko

[permalink] [raw]
Subject: Re: [PATCH 1/9] ASoC: Intel: Fix Kconfig with top-level selector

On Thu, 2017-12-14 at 18:44 -0600, Pierre-Louis Bossart wrote:
> Follow network example suggested by Linus, move Intel definitions
> in if/endif block and clarify in help text which options distro
> configurations should enable - everything except legacy Baytrail stuff
> and
> NOCODEC (test only)
>
> To avoid user confusion, machine drivers are handled with a submenu
> made
> dependent on this top-level selector.
>
> There should be no functionality change - except that sound
> capabilities
> are restored when using older configs without any user selection.
>
> Note that the SND_SOC_ACPI_INTEL_MATCH config is not filtered out by
> the top-level selector since it will also be selected with the
> upcoming
> SOF drivers. Likewise the machine drivers are filtered by a top-level
> selector which will allow for selection/reuse of the same machine
> driver
> with existing SST or SOF-based platform drivers.
>
> (simplification with submenu for machine drivers by Vinod Koul)

My comments below.

> +if SND_SOC_INTEL_SST_TOPLEVEL

...

> +
> +endif ## SND_SOC_INTEL_SST_TOPLEVEL

> +# configs common to SST and SOF to use matching tables
> +
> +config SND_SOC_ACPI_INTEL_MATCH
> + tristate
> + depends on X86 && ACPI
> + select SND_SOC_ACPI

> + # this option controls the compilation of ACPI matching
> tables and

this -> This ?

> + # helpers and is not meant to be selected by the user. It is
> not
> + # filtered out on purpose by the top-level selector since it
> will
> + # be selected by SST or SOF platform driver options

> if SND_SOC_INTEL_MACH

> +if SND_SOC_INTEL_HASWELL

...

> +endif
> +
> +if SND_SOC_INTEL_BAYTRAIL
>

> config SND_SOC_INTEL_BYT_MAX98090_MACH
> tristate "ASoC Audio driver for Intel Baytrail with MAX98090
> codec"
> depends on X86_INTEL_LPSS && I2C
> - depends on SND_SST_IPC_ACPI = n
> - depends on SND_SOC_INTEL_BAYTRAIL
> select SND_SOC_MAX98090
> help
> This adds audio driver for Intel Baytrail platform based
> boards
> - with the MAX98090 audio codec.
> + with the MAX98090 audio codec. This driver is deprecated,
> use
> + SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH instead for better
> + functionality.

Looking to somehow established practice (few other Kconfigs in the
kernel) I would suggest to add
" (DEPRECATED)" to the tristate help string.

> +endif
> +
> +if SND_SST_ATOM_HIFI2_PLATFORM

...

> +endif
> +
> +if SND_SOC_INTEL_SKYLAKE

...

> If unsure select "N".

> -

I would rather not remove this empty line.

> endif
> +
> +endif ## SND_SOC_INTEL_MACH

--
Andy Shevchenko <[email protected]>
Intel Finland Oy

2017-12-15 12:30:37

by Pierre-Louis Bossart

[permalink] [raw]
Subject: Re: [PATCH 1/9] ASoC: Intel: Fix Kconfig with top-level selector

On 12/15/17 5:07 AM, Takashi Iwai wrote:
> On Fri, 15 Dec 2017 01:44:43 +0100,
> Pierre-Louis Bossart wrote:
>>
>> +config SND_SOC_ACPI_INTEL_MATCH
>> + tristate
>> + depends on X86 && ACPI
>> + select SND_SOC_ACPI
>
> An item that is selected by others can only select, not depend.
> The depends need to be put for the items that select this instead.

Initially the code was

config SND_SOC_ACPI_INTEL_MATCH
tristate
select SND_SOC_ACPI if ACPI

I changed it to use depends to make some 0-day reports go away, for some
reason this option was selected with ARCH=mn10300 and generated
warnings. I don't quite understand how that happened since X86 and ACPI
are clear dependencies in the items which select this option...

Vinod also added a similar pattern with

+config SND_SOC_INTEL_SST_TOPLEVEL
+ bool "Intel ASoC SST drivers"
+ default y
+ depends on X86 || COMPILE_TEST
+ select SND_SOC_INTEL_MACH

+menuconfig SND_SOC_INTEL_MACH
+ bool "Intel Machine drivers"
depends on SND_SOC_INTEL_SST_TOPLEVEL

Maybe that needs to be removed as well?

2017-12-15 12:34:05

by Pierre-Louis Bossart

[permalink] [raw]
Subject: Re: [PATCH 2/9] ASoC: Intel: Kconfig: Simplify-clarify ACPI/PCI dependencies

On 12/15/17 4:58 AM, Andy Shevchenko wrote:
> On Thu, 2017-12-14 at 18:44 -0600, Pierre-Louis Bossart wrote:
>> PCI/ACPI selections should not happen in Kconfig for machine drivers,
>> move to SOC selections.
>>
>> Add distinction between PCI and ACPI HiFi2 platforms and help text.
>>
>> There should be no functionality change.
>>
>> The PCI-based platforms may be removed at some point since Medfield
>> is not really supported by anyone, and with Edison now defunct support
>> for
>> Merrifield/Edison is to be determined.
>>
>
>> - depends on SND_DMA_SGBUF
>> + depends on SND_DMA_SGBUF && ACPI
>> depends on DMADEVICES
>
> Perhaps
>
> depends on DMADEVICES && ACPI
>
> to be in align with below?
>
>> config SND_SOC_INTEL_BAYTRAIL
>> tristate "Intel ASoC SST driver for Baytrail (legacy)"
>> - depends on DMADEVICES
>> + depends on DMADEVICES && ACPI

I must admit I don't know why it's different, I just cleaned-up what I
could. Maybe Liam can comment since I believe he contributed to both
Haswell and the initial Baytrail driver?

2017-12-19 10:17:14

by Takashi Iwai

[permalink] [raw]
Subject: Re: [PATCH 1/9] ASoC: Intel: Fix Kconfig with top-level selector

On Fri, 15 Dec 2017 13:30:28 +0100,
Pierre-Louis Bossart wrote:
>
> On 12/15/17 5:07 AM, Takashi Iwai wrote:
> > On Fri, 15 Dec 2017 01:44:43 +0100,
> > Pierre-Louis Bossart wrote:
> >>
> >> +config SND_SOC_ACPI_INTEL_MATCH
> >> + tristate
> >> + depends on X86 && ACPI
> >> + select SND_SOC_ACPI
> >
> > An item that is selected by others can only select, not depend.
> > The depends need to be put for the items that select this instead.
>
> Initially the code was
>
> config SND_SOC_ACPI_INTEL_MATCH
> tristate
> select SND_SOC_ACPI if ACPI
>
> I changed it to use depends to make some 0-day reports go away, for
> some reason this option was selected with ARCH=mn10300 and generated
> warnings. I don't quite understand how that happened since X86 and
> ACPI are clear dependencies in the items which select this option...
>
> Vinod also added a similar pattern with
>
> +config SND_SOC_INTEL_SST_TOPLEVEL
> + bool "Intel ASoC SST drivers"
> + default y
> + depends on X86 || COMPILE_TEST
> + select SND_SOC_INTEL_MACH
>
> +menuconfig SND_SOC_INTEL_MACH
> + bool "Intel Machine drivers"
> depends on SND_SOC_INTEL_SST_TOPLEVEL
>
> Maybe that needs to be removed as well?

Having both depends and select on the top-level is OK. The only
problem is when an item that is selected by others has another
depends. For example, a simple-looking case like below is actually
buggy:

config BAR
tristate
depends on X

config FOO
tristate "foo"
select BAR

Here BAR would be enabled by FOO no matter what X is, even if X=n.
That said, when an item is selected, its own dependency is ignored.

For correcting this, the depends-on-X must be moved to the top-level
who selects the item:

config BAR
tristate

config FOO
tristate "foo"
depends on X
select BAR

Note that the reverse-select chain works as expected. The breakage is
only the mixture of select and depends in the selected items.


Takashi

2017-12-19 10:49:39

by Andy Shevchenko

[permalink] [raw]
Subject: Re: [PATCH 2/9] ASoC: Intel: Kconfig: Simplify-clarify ACPI/PCI dependencies

On Fri, 2017-12-15 at 06:34 -0600, Pierre-Louis Bossart wrote:
> On 12/15/17 4:58 AM, Andy Shevchenko wrote:
> > On Thu, 2017-12-14 at 18:44 -0600, Pierre-Louis Bossart wrote:
> > > PCI/ACPI selections should not happen in Kconfig for machine
> > > drivers,
> > > move to SOC selections.
> > >
> > > Add distinction between PCI and ACPI HiFi2 platforms and help
> > > text.
> > >
> > > There should be no functionality change.
> > >
> > > The PCI-based platforms may be removed at some point since
> > > Medfield
> > > is not really supported by anyone, and with Edison now defunct
> > > support
> > > for
> > > Merrifield/Edison is to be determined.
> > >
> > > - depends on SND_DMA_SGBUF
> > > + depends on SND_DMA_SGBUF && ACPI
> > > depends on DMADEVICES
> >
> > Perhaps
> >
> > depends on DMADEVICES && ACPI
> >
> > to be in align with below?
> >
> > > config SND_SOC_INTEL_BAYTRAIL
> > > tristate "Intel ASoC SST driver for Baytrail (legacy)"
> > > - depends on DMADEVICES
> > > + depends on DMADEVICES && ACPI
>
> I must admit I don't know why it's different, I just cleaned-up what
> I
> could.

What I'm talking about is to use same pattern, so, in the first case

depends on SND_DMA_SGBUF
depends on DMADEVICES && ACPI

The question WRT SGBUF is indeed another one to Liam or whoever knows
better.

> Maybe Liam can comment since I believe he contributed to both
> Haswell and the initial Baytrail driver?

--
Andy Shevchenko <[email protected]>
Intel Finland Oy

2017-12-19 12:43:27

by Pierre-Louis Bossart

[permalink] [raw]
Subject: Re: [PATCH 2/9] ASoC: Intel: Kconfig: Simplify-clarify ACPI/PCI dependencies



>>>> - depends on SND_DMA_SGBUF
>>>> + depends on SND_DMA_SGBUF && ACPI
>>>> depends on DMADEVICES
>>> Perhaps
>>>
>>> depends on DMADEVICES && ACPI
>>>
>>> to be in align with below?
>>>
>>>> config SND_SOC_INTEL_BAYTRAIL
>>>> tristate "Intel ASoC SST driver for Baytrail (legacy)"
>>>> - depends on DMADEVICES
>>>> + depends on DMADEVICES && ACPI
>> I must admit I don't know why it's different, I just cleaned-up what
>> I
>> could.
> What I'm talking about is to use same pattern, so, in the first case
>
> depends on SND_DMA_SGBUF
> depends on DMADEVICES && ACPI
ah ok, thanks for the precision.

>
> The question WRT SGBUF is indeed another one to Liam or whoever knows
> better.
>
>> Maybe Liam can comment since I believe he contributed to both
>> Haswell and the initial Baytrail driver?