linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC PATCH v2 0/7] Fix Intel audio Kconfig issues
@ 2017-11-29  1:45 Pierre-Louis Bossart
  2017-11-29  1:45 ` [RFC PATCH v2 1/7] ASoC: Intel: Fix Kconfig with top-level selector Pierre-Louis Bossart
                   ` (6 more replies)
  0 siblings, 7 replies; 14+ messages in thread
From: Pierre-Louis Bossart @ 2017-11-29  1:45 UTC (permalink / raw)
  To: alsa-devel
  Cc: tiwai, broonie, torvalds, vinod.koul, liam.r.girdwood,
	andriy.shevchenko, arnd, linux-kernel, Pierre-Louis Bossart

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.

The last 3 patches 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, which looks ok but needs to be tested further, hence
the RFCv2 status (this change is fine for Chrome, Ubuntu and other distros
but better be cautious with a second set of tests with randconfig and on
Skylake)

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

 sound/soc/intel/Kconfig        | 118 +++++++++++++++++++++++--------
 sound/soc/intel/boards/Kconfig | 155 ++++++++++++++++++++++-------------------
 2 files changed, 172 insertions(+), 101 deletions(-)

-- 
2.14.1

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [RFC PATCH v2 1/7] ASoC: Intel: Fix Kconfig with top-level selector
  2017-11-29  1:45 [RFC PATCH v2 0/7] Fix Intel audio Kconfig issues Pierre-Louis Bossart
@ 2017-11-29  1:45 ` Pierre-Louis Bossart
  2017-11-29 10:27   ` Vinod Koul
  2017-11-29  1:45 ` [RFC PATCH v2 2/7] ASoC: Intel: Kconfig: Simplify-clarify ACPI/PCI dependencies Pierre-Louis Bossart
                   ` (5 subsequent siblings)
  6 siblings, 1 reply; 14+ messages in thread
From: Pierre-Louis Bossart @ 2017-11-29  1:45 UTC (permalink / raw)
  To: alsa-devel
  Cc: tiwai, broonie, torvalds, vinod.koul, liam.r.girdwood,
	andriy.shevchenko, arnd, linux-kernel, Pierre-Louis Bossart

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)

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_INTEL_COMMON and SND_SOC_ACPI_INTEL_MATCH config
are not filtered out by the top-level selector since they 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.

Fixes: f6a118a800e3 ("ASoC: Intel: clarify Kconfig dependencies")
Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
---
 sound/soc/intel/Kconfig        | 78 +++++++++++++++++++++++++----------
 sound/soc/intel/boards/Kconfig | 94 ++++++++++++++++++++++++------------------
 2 files changed, 109 insertions(+), 63 deletions(-)

diff --git a/sound/soc/intel/Kconfig b/sound/soc/intel/Kconfig
index 7b49d04e3c60..8a659a3b20ea 100644
--- a/sound/soc/intel/Kconfig
+++ b/sound/soc/intel/Kconfig
@@ -1,3 +1,18 @@
+config SND_SOC_INTEL_SST_TOPLEVEL
+	bool "Intel ASoC SST drivers"
+	default y
+	depends on X86 || COMPILE_TEST
+	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 +26,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 +37,69 @@ 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_INTEL_COMMON
+	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_INTEL_COMMON
+	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_INTEL_COMMON
 
 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_INTEL_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.
+
+endif ## SND_SOC_INTEL_SST_TOPLEVEL
 
 # ASoC codec drivers
 source "sound/soc/intel/boards/Kconfig"
+
+# configs common to SST and SOF to compile sound/soc/intel/common
+# directory and use matching tables
+
+config SND_SOC_INTEL_COMMON
+	tristate
+	select SND_SOC_ACPI_INTEL_MATCH if ACPI
+	# this option controls the compilation of the sound/soc/intel/common
+	# directory 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
+
+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. 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/boards/Kconfig b/sound/soc/intel/boards/Kconfig
index 6f754708a48c..ce0eb431cafa 100644
--- a/sound/soc/intel/boards/Kconfig
+++ b/sound/soc/intel/boards/Kconfig
@@ -1,7 +1,16 @@
+if SND_SOC_INTEL_SST_TOPLEVEL
 config SND_SOC_INTEL_MACH
-	tristate "Intel Audio machine drivers"
-	depends on SND_SOC_INTEL_SST_TOPLEVEL
-	select SND_SOC_ACPI_INTEL_MATCH if ACPI
+	bool "Intel ASoC machine drivers"
+	default y
+	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.
+endif
 
 if SND_SOC_INTEL_MACH
 
@@ -17,103 +26,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 +133,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 +201,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 +214,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 +228,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 +241,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 +255,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 +270,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
-- 
2.14.1

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [RFC PATCH v2 2/7] ASoC: Intel: Kconfig: Simplify-clarify ACPI/PCI dependencies
  2017-11-29  1:45 [RFC PATCH v2 0/7] Fix Intel audio Kconfig issues Pierre-Louis Bossart
  2017-11-29  1:45 ` [RFC PATCH v2 1/7] ASoC: Intel: Fix Kconfig with top-level selector Pierre-Louis Bossart
@ 2017-11-29  1:45 ` Pierre-Louis Bossart
  2017-11-29  1:45 ` [RFC PATCH v2 3/7] ASoC: Intel: document what Kconfig options do Pierre-Louis Bossart
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 14+ messages in thread
From: Pierre-Louis Bossart @ 2017-11-29  1:45 UTC (permalink / raw)
  To: alsa-devel
  Cc: tiwai, broonie, torvalds, vinod.koul, liam.r.girdwood,
	andriy.shevchenko, arnd, linux-kernel, Pierre-Louis Bossart

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 <pierre-louis.bossart@linux.intel.com>
---
 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 8a659a3b20ea..a982bc2fde62 100644
--- a/sound/soc/intel/Kconfig
+++ b/sound/soc/intel/Kconfig
@@ -39,7 +39,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
@@ -51,7 +51,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_INTEL_COMMON
@@ -61,11 +61,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_INTEL_COMMON
+	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 ce0eb431cafa..df41a6016217 100644
--- a/sound/soc/intel/boards/Kconfig
+++ b/sound/soc/intel/boards/Kconfig
@@ -14,18 +14,20 @@ endif
 
 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
@@ -88,7 +90,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.
@@ -99,7 +100,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.
@@ -110,7 +110,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.
@@ -121,7 +120,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.
@@ -133,7 +131,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.
@@ -144,7 +141,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.
@@ -155,7 +151,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.
@@ -165,7 +160,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

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [RFC PATCH v2 3/7] ASoC: Intel: document what Kconfig options do
  2017-11-29  1:45 [RFC PATCH v2 0/7] Fix Intel audio Kconfig issues Pierre-Louis Bossart
  2017-11-29  1:45 ` [RFC PATCH v2 1/7] ASoC: Intel: Fix Kconfig with top-level selector Pierre-Louis Bossart
  2017-11-29  1:45 ` [RFC PATCH v2 2/7] ASoC: Intel: Kconfig: Simplify-clarify ACPI/PCI dependencies Pierre-Louis Bossart
@ 2017-11-29  1:45 ` Pierre-Louis Bossart
  2017-11-29  1:45 ` [RFC PATCH v2 4/7] ASoC: Intel: Fix nested/unnecessary Kconfig dependencies Pierre-Louis Bossart
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 14+ messages in thread
From: Pierre-Louis Bossart @ 2017-11-29  1:45 UTC (permalink / raw)
  To: alsa-devel
  Cc: tiwai, broonie, torvalds, vinod.koul, liam.r.girdwood,
	andriy.shevchenko, arnd, linux-kernel, Pierre-Louis Bossart

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 <pierre-louis.bossart@linux.intel.com>
---
 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 a982bc2fde62..2542e71a0e6a 100644
--- a/sound/soc/intel/Kconfig
+++ b/sound/soc/intel/Kconfig
@@ -15,16 +15,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
@@ -33,9 +43,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

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [RFC PATCH v2 4/7] ASoC: Intel: Fix nested/unnecessary Kconfig dependencies
  2017-11-29  1:45 [RFC PATCH v2 0/7] Fix Intel audio Kconfig issues Pierre-Louis Bossart
                   ` (2 preceding siblings ...)
  2017-11-29  1:45 ` [RFC PATCH v2 3/7] ASoC: Intel: document what Kconfig options do Pierre-Louis Bossart
@ 2017-11-29  1:45 ` Pierre-Louis Bossart
  2017-11-29  1:45 ` [RFC PATCH v2 5/7] ASoC: Intel: boards: align Kconfig dependencies for Haswell/Broadwell Pierre-Louis Bossart
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 14+ messages in thread
From: Pierre-Louis Bossart @ 2017-11-29  1:45 UTC (permalink / raw)
  To: alsa-devel
  Cc: tiwai, broonie, torvalds, vinod.koul, liam.r.girdwood,
	andriy.shevchenko, arnd, linux-kernel, Pierre-Louis Bossart

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 <pierre-louis.bossart@linux.intel.com>
---
 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 2542e71a0e6a..b8dcb49f16b2 100644
--- a/sound/soc/intel/Kconfig
+++ b/sound/soc/intel/Kconfig
@@ -26,8 +26,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)
 
@@ -38,7 +36,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
@@ -51,6 +48,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_INTEL_COMMON
 	help
@@ -62,6 +60,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_INTEL_COMMON
 	help
@@ -88,6 +87,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_INTEL_COMMON
 	help
-- 
2.14.1

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [RFC PATCH v2 5/7] ASoC: Intel: boards: align Kconfig dependencies for Haswell/Broadwell
  2017-11-29  1:45 [RFC PATCH v2 0/7] Fix Intel audio Kconfig issues Pierre-Louis Bossart
                   ` (3 preceding siblings ...)
  2017-11-29  1:45 ` [RFC PATCH v2 4/7] ASoC: Intel: Fix nested/unnecessary Kconfig dependencies Pierre-Louis Bossart
@ 2017-11-29  1:45 ` Pierre-Louis Bossart
  2017-11-29 10:31   ` Vinod Koul
  2017-11-29  1:45 ` [RFC PATCH v2 6/7] ASoC: Intel: boards: align Kconfig configurations for HiFi2 Pierre-Louis Bossart
  2017-11-29  1:45 ` [RFC PATCH v2 7/7] ASoC: Intel: boards: align/fix SKL/BXT/KBL Kconfigs Pierre-Louis Bossart
  6 siblings, 1 reply; 14+ messages in thread
From: Pierre-Louis Bossart @ 2017-11-29  1:45 UTC (permalink / raw)
  To: alsa-devel
  Cc: tiwai, broonie, torvalds, vinod.koul, liam.r.girdwood,
	andriy.shevchenko, arnd, linux-kernel, Pierre-Louis Bossart

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 <pierre-louis.bossart@linux.intel.com>
---
 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 df41a6016217..a1e169c86526 100644
--- a/sound/soc/intel/boards/Kconfig
+++ b/sound/soc/intel/boards/Kconfig
@@ -42,7 +42,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

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [RFC PATCH v2 6/7] ASoC: Intel: boards: align Kconfig configurations for HiFi2
  2017-11-29  1:45 [RFC PATCH v2 0/7] Fix Intel audio Kconfig issues Pierre-Louis Bossart
                   ` (4 preceding siblings ...)
  2017-11-29  1:45 ` [RFC PATCH v2 5/7] ASoC: Intel: boards: align Kconfig dependencies for Haswell/Broadwell Pierre-Louis Bossart
@ 2017-11-29  1:45 ` Pierre-Louis Bossart
  2017-11-29  1:45 ` [RFC PATCH v2 7/7] ASoC: Intel: boards: align/fix SKL/BXT/KBL Kconfigs Pierre-Louis Bossart
  6 siblings, 0 replies; 14+ messages in thread
From: Pierre-Louis Bossart @ 2017-11-29  1:45 UTC (permalink / raw)
  To: alsa-devel
  Cc: tiwai, broonie, torvalds, vinod.koul, liam.r.girdwood,
	andriy.shevchenko, arnd, linux-kernel, Pierre-Louis Bossart

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 <pierre-louis.bossart@linux.intel.com>
---
 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 a1e169c86526..850b5ef9265e 100644
--- a/sound/soc/intel/boards/Kconfig
+++ b/sound/soc/intel/boards/Kconfig
@@ -87,29 +87,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.
@@ -119,6 +122,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
@@ -140,6 +144,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

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [RFC PATCH v2 7/7] ASoC: Intel: boards: align/fix SKL/BXT/KBL Kconfigs
  2017-11-29  1:45 [RFC PATCH v2 0/7] Fix Intel audio Kconfig issues Pierre-Louis Bossart
                   ` (5 preceding siblings ...)
  2017-11-29  1:45 ` [RFC PATCH v2 6/7] ASoC: Intel: boards: align Kconfig configurations for HiFi2 Pierre-Louis Bossart
@ 2017-11-29  1:45 ` Pierre-Louis Bossart
  6 siblings, 0 replies; 14+ messages in thread
From: Pierre-Louis Bossart @ 2017-11-29  1:45 UTC (permalink / raw)
  To: alsa-devel
  Cc: tiwai, broonie, torvalds, vinod.koul, liam.r.girdwood,
	andriy.shevchenko, arnd, linux-kernel, Pierre-Louis Bossart

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 <pierre-louis.bossart@linux.intel.com>
---
 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 850b5ef9265e..ded21a093587 100644
--- a/sound/soc/intel/boards/Kconfig
+++ b/sound/soc/intel/boards/Kconfig
@@ -180,7 +180,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
@@ -192,7 +192,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
@@ -205,7 +205,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
@@ -218,7 +218,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
@@ -232,7 +232,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
@@ -245,8 +245,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
@@ -259,8 +258,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

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* Re: [RFC PATCH v2 1/7] ASoC: Intel: Fix Kconfig with top-level selector
  2017-11-29  1:45 ` [RFC PATCH v2 1/7] ASoC: Intel: Fix Kconfig with top-level selector Pierre-Louis Bossart
@ 2017-11-29 10:27   ` Vinod Koul
  2017-11-29 10:59     ` Mark Brown
  2017-11-29 14:52     ` Pierre-Louis Bossart
  0 siblings, 2 replies; 14+ messages in thread
From: Vinod Koul @ 2017-11-29 10:27 UTC (permalink / raw)
  To: Pierre-Louis Bossart
  Cc: alsa-devel, tiwai, broonie, torvalds, liam.r.girdwood,
	andriy.shevchenko, arnd, linux-kernel

On Tue, Nov 28, 2017 at 07:45:45PM -0600, Pierre-Louis Bossart wrote:

I am not sure about top level being default to Y...

>  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_INTEL_COMMON
>  
>  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_INTEL_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.

this is good stuff, helps in improving UX vastly. Btw can we have select ALL
machine also as an option for people who dont want to select a specfic one,
that one will really help for a better UX

> +
> +endif ## SND_SOC_INTEL_SST_TOPLEVEL
>  
>  # ASoC codec drivers
>  source "sound/soc/intel/boards/Kconfig"
> +
> +# configs common to SST and SOF to compile sound/soc/intel/common
> +# directory and use matching tables
> +
> +config SND_SOC_INTEL_COMMON
> +	tristate
> +	select SND_SOC_ACPI_INTEL_MATCH if ACPI

common selects only MATCH

> +	# this option controls the compilation of the sound/soc/intel/common
> +	# directory 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
> +
> +config SND_SOC_ACPI_INTEL_MATCH
> +	tristate
> +	select SND_SOC_ACPI if ACPI

then why keep common, lets remove one level and have
SND_SOC_ACPI_INTEL_MATCH selected. ACPI is must have at top level so we can
add depends on that symbol

-- 
~Vinod

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [RFC PATCH v2 5/7] ASoC: Intel: boards: align Kconfig dependencies for Haswell/Broadwell
  2017-11-29  1:45 ` [RFC PATCH v2 5/7] ASoC: Intel: boards: align Kconfig dependencies for Haswell/Broadwell Pierre-Louis Bossart
@ 2017-11-29 10:31   ` Vinod Koul
  0 siblings, 0 replies; 14+ messages in thread
From: Vinod Koul @ 2017-11-29 10:31 UTC (permalink / raw)
  To: Pierre-Louis Bossart
  Cc: alsa-devel, tiwai, broonie, torvalds, liam.r.girdwood,
	andriy.shevchenko, arnd, linux-kernel

On Tue, Nov 28, 2017 at 07:45:49PM -0600, Pierre-Louis Bossart wrote:
> 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

not really, given that we will come with platforms where I2C may not be used
for audio, we should keep this in machine or better move to codecs as it
belongs to them, machine being second best :)

> 
> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
> ---
>  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 df41a6016217..a1e169c86526 100644
> --- a/sound/soc/intel/boards/Kconfig
> +++ b/sound/soc/intel/boards/Kconfig
> @@ -42,7 +42,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
> 

-- 
~Vinod

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [RFC PATCH v2 1/7] ASoC: Intel: Fix Kconfig with top-level selector
  2017-11-29 10:27   ` Vinod Koul
@ 2017-11-29 10:59     ` Mark Brown
  2017-11-29 14:52     ` Pierre-Louis Bossart
  1 sibling, 0 replies; 14+ messages in thread
From: Mark Brown @ 2017-11-29 10:59 UTC (permalink / raw)
  To: Vinod Koul
  Cc: Pierre-Louis Bossart, alsa-devel, tiwai, torvalds,
	liam.r.girdwood, andriy.shevchenko, arnd, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 464 bytes --]

On Wed, Nov 29, 2017 at 03:57:34PM +0530, Vinod Koul wrote:
> On Tue, Nov 28, 2017 at 07:45:45PM -0600, Pierre-Louis Bossart wrote:

> I am not sure about top level being default to Y...

This is the same as the handling of the vendor configuration options for
ethernet drivers - it doesn't enable any actual code itself, it just
makes the configuration options below it visible by default so that
people running make oldconfig don't get their drivers turned off.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [RFC PATCH v2 1/7] ASoC: Intel: Fix Kconfig with top-level selector
  2017-11-29 10:27   ` Vinod Koul
  2017-11-29 10:59     ` Mark Brown
@ 2017-11-29 14:52     ` Pierre-Louis Bossart
  2017-11-30 12:24       ` Vinod Koul
  1 sibling, 1 reply; 14+ messages in thread
From: Pierre-Louis Bossart @ 2017-11-29 14:52 UTC (permalink / raw)
  To: Vinod Koul
  Cc: alsa-devel, tiwai, broonie, torvalds, liam.r.girdwood,
	andriy.shevchenko, arnd, linux-kernel

On 11/29/17 4:27 AM, Vinod Koul wrote:
> On Tue, Nov 28, 2017 at 07:45:45PM -0600, Pierre-Louis Bossart wrote:
> 
> I am not sure about top level being default to Y...

It's standard procedure apparently, see Linus/Mark/Takashi's emails.

> 
>>   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_INTEL_COMMON
>>   
>>   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_INTEL_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.
> 
> this is good stuff, helps in improving UX vastly. Btw can we have select ALL
> machine also as an option for people who dont want to select a specfic one,
> that one will really help for a better UX

no, we shouldn't select things, especially with the Baytrail legacy 
which is kept to avoid breaking existing setups but shouldn't be used 
any longer.
And with SOF coming, we may have hybrid configurations with SOF used on 
Baytrail/Cherrytrail/APL/CNL but SST used on Skylake/Kabylake due to 
firmware authentication stuff.

> 
>> +
>> +endif ## SND_SOC_INTEL_SST_TOPLEVEL
>>   
>>   # ASoC codec drivers
>>   source "sound/soc/intel/boards/Kconfig"
>> +
>> +# configs common to SST and SOF to compile sound/soc/intel/common
>> +# directory and use matching tables
>> +
>> +config SND_SOC_INTEL_COMMON
>> +	tristate
>> +	select SND_SOC_ACPI_INTEL_MATCH if ACPI
> 
> common selects only MATCH

COMMON is only there to go compile the sound/soc/intel/common directory. 
That's not very useful indeed but otherwise the Makefile doesn't compile 
the match tables or the sst-ipc stuff. If you find a better solution I 
am all ears.

> 
>> +	# this option controls the compilation of the sound/soc/intel/common
>> +	# directory 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
>> +
>> +config SND_SOC_ACPI_INTEL_MATCH
>> +	tristate
>> +	select SND_SOC_ACPI if ACPI
> 
> then why keep common, lets remove one level and have
> SND_SOC_ACPI_INTEL_MATCH selected. ACPI is must have at top level so we can
> add depends on that symbol

we still have platforms which don't depend on ACPI, so we shouldn't take 
this out.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [RFC PATCH v2 1/7] ASoC: Intel: Fix Kconfig with top-level selector
  2017-11-29 14:52     ` Pierre-Louis Bossart
@ 2017-11-30 12:24       ` Vinod Koul
  2017-11-30 14:41         ` [alsa-devel] " Pierre-Louis Bossart
  0 siblings, 1 reply; 14+ messages in thread
From: Vinod Koul @ 2017-11-30 12:24 UTC (permalink / raw)
  To: Pierre-Louis Bossart
  Cc: alsa-devel, tiwai, broonie, torvalds, liam.r.girdwood,
	andriy.shevchenko, arnd, linux-kernel

On Wed, Nov 29, 2017 at 08:52:58AM -0600, Pierre-Louis Bossart wrote:
> On 11/29/17 4:27 AM, Vinod Koul wrote:
> >On Tue, Nov 28, 2017 at 07:45:45PM -0600, Pierre-Louis Bossart wrote:
> >
> >I am not sure about top level being default to Y...
> 
> It's standard procedure apparently, see Linus/Mark/Takashi's emails.
> 
> >
> >>  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_INTEL_COMMON
> >>  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_INTEL_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.
> >
> >this is good stuff, helps in improving UX vastly. Btw can we have select ALL
> >machine also as an option for people who dont want to select a specfic one,
> >that one will really help for a better UX
> 
> no, we shouldn't select things, especially with the Baytrail legacy which is
> kept to avoid breaking existing setups but shouldn't be used any longer.
> And with SOF coming, we may have hybrid configurations with SOF used on
> Baytrail/Cherrytrail/APL/CNL but SST used on Skylake/Kabylake due to
> firmware authentication stuff.

Okay I am checking this out.

Btw you need to rebase this series I wasn't able to apply to mark/intel/topic
So I grabbed the branch from your github tree. Assuming I have the right
branch (topic/fix-kconfig)

At top level UX is bit confusing:

			[ ]   Intel ASoC SST drivers
			[*]   Intel ASoC machine drivers

And selecting first symbol shows me the platforms and once I select platform
then machines appear under second menu. Now this is really not a great way
from UX. Why are we adding platforms selectable? We might be able to
simplify this by getting rid of first set and let machine then select
Platfroms specfied.

			[*]   Intel ASoC SST drivers
			< >     Intel ASoC SST driver for Haswell/Broadwell (NEW)
			< >     Intel ASoC SST driver for Baytrail (legacy) (NEW)
			< >     Intel ASoC SST driver for PCI HiFi2 platforms (Medfield, Merrifield) (NEW)
			< >     Intel ASoC SST driver for ACPI HiFi2 platforms (Baytrail, Cherrytrail) (NEW)
			<*>     Intel ASoC SST driver for SKL/BXT/KBL/GLK/CNL
			[*]   Intel ASoC machine drivers
			< >     ASoC Audio driver for SKL with RT286 I2S mode (NEW)
			< >     ASoC Audio driver for SKL with NAU88L25 and SSM4567 in I2S Mode (NEW)
			< >     ASoC Audio driver for SKL with NAU88L25 and MAX98357A in I2S Mode (NEW) 

If we still want both I would like the machine to appear below the
respective platform, in above example, I would like to see:

			[*]   Intel ASoC SST drivers
			< >     Intel ASoC SST driver for Haswell/Broadwell (NEW)
			< >     Intel ASoC SST driver for Baytrail (legacy) (NEW)
			< >     Intel ASoC SST driver for PCI HiFi2 platforms (Medfield, Merrifield) (NEW)
			< >     Intel ASoC SST driver for ACPI HiFi2 platforms (Baytrail, Cherrytrail) (NEW)
			<*>     Intel ASoC SST driver for SKL/BXT/KBL/GLK/CNL
			< >       ASoC Audio driver for SKL with RT286 I2S mode (NEW)
			< >       ASoC Audio driver for SKL with NAU88L25 and SSM4567 in I2S Mode (NEW)
			< >       ASoC Audio driver for SKL with NAU88L25 and MAX98357A in I2S Mode (NEW) 

Then you can get rid of global mach symbol and select platform and then
respective machine and better UX :).

> >>+endif ## SND_SOC_INTEL_SST_TOPLEVEL
> >>  # ASoC codec drivers
> >>  source "sound/soc/intel/boards/Kconfig"
> >>+
> >>+# configs common to SST and SOF to compile sound/soc/intel/common
> >>+# directory and use matching tables
> >>+
> >>+config SND_SOC_INTEL_COMMON
> >>+	tristate
> >>+	select SND_SOC_ACPI_INTEL_MATCH if ACPI
> >
> >common selects only MATCH
> 
> COMMON is only there to go compile the sound/soc/intel/common directory.
> That's not very useful indeed but otherwise the Makefile doesn't compile the
> match tables or the sst-ipc stuff. If you find a better solution I am all
> ears.

Coming to this topic (my original intention to check this), I found that
common symbol is not doing anything expect adding common directory, which is
not really needed as we have individual bits for files, so I kept this but
removed the match one.

-- >8 --

diff --git a/sound/soc/intel/Kconfig b/sound/soc/intel/Kconfig
index dee731d42634..33a05aa2cf32 100644
--- a/sound/soc/intel/Kconfig
+++ b/sound/soc/intel/Kconfig
@@ -99,8 +99,4 @@ source "sound/soc/intel/boards/Kconfig"

 config SND_SOC_INTEL_COMMON
        tristate
-       select SND_SOC_ACPI_INTEL_MATCH if ACPI
-
-config SND_SOC_ACPI_INTEL_MATCH
-       tristate
-       select SND_SOC_ACPI if ACPI
+       depends on ACPI
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/common/Makefile
b/sound/soc/intel/common/Makefile
index 7379d8830c39..92c66c47eb78 100644
--- a/sound/soc/intel/common/Makefile
+++ b/sound/soc/intel/common/Makefile
@@ -8,4 +8,4 @@ snd-soc-acpi-intel-match-objs := soc-acpi-intel-byt-match.o
soc-acpi-intel-cht-m
 obj-$(CONFIG_SND_SOC_INTEL_SST) += snd-soc-sst-dsp.o snd-soc-sst-ipc.o
 obj-$(CONFIG_SND_SOC_INTEL_SST_ACPI) += snd-soc-sst-acpi.o
 obj-$(CONFIG_SND_SOC_INTEL_SST_FIRMWARE) += snd-soc-sst-firmware.o
-obj-$(CONFIG_SND_SOC_ACPI_INTEL_MATCH) += snd-soc-acpi-intel-match.o
+obj-$(CONFIG_SND_SOC_INTEL_COMMON) += snd-soc-acpi-intel-match.o

-- >8 --

This way we have one lesser symbol to manage :) I am okay if you want to
keep match and remove common.


> >>+	# this option controls the compilation of the sound/soc/intel/common
> >>+	# directory 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
> >>+
> >>+config SND_SOC_ACPI_INTEL_MATCH
> >>+	tristate
> >>+	select SND_SOC_ACPI if ACPI
> >
> >then why keep common, lets remove one level and have
> >SND_SOC_ACPI_INTEL_MATCH selected. ACPI is must have at top level so we can
> >add depends on that symbol
> 
> we still have platforms which don't depend on ACPI, so we shouldn't take
> this out.

For the controllers which are PCI only, yes. But as a platform we won't boot
without ACPI :) so take your pick!

-- 
~Vinod

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* Re: [alsa-devel] [RFC PATCH v2 1/7] ASoC: Intel: Fix Kconfig with top-level selector
  2017-11-30 12:24       ` Vinod Koul
@ 2017-11-30 14:41         ` Pierre-Louis Bossart
  0 siblings, 0 replies; 14+ messages in thread
From: Pierre-Louis Bossart @ 2017-11-30 14:41 UTC (permalink / raw)
  To: Vinod Koul
  Cc: alsa-devel, tiwai, broonie, torvalds, liam.r.girdwood,
	andriy.shevchenko, arnd, linux-kernel

On 11/30/17 6:24 AM, Vinod Koul wrote:
> On Wed, Nov 29, 2017 at 08:52:58AM -0600, Pierre-Louis Bossart wrote:
>> On 11/29/17 4:27 AM, Vinod Koul wrote:
>>> On Tue, Nov 28, 2017 at 07:45:45PM -0600, Pierre-Louis Bossart wrote:
>>>
>>> I am not sure about top level being default to Y...
>>
>> It's standard procedure apparently, see Linus/Mark/Takashi's emails.
>>
>>>
>>>>   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_INTEL_COMMON
>>>>   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_INTEL_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.
>>>
>>> this is good stuff, helps in improving UX vastly. Btw can we have select ALL
>>> machine also as an option for people who dont want to select a specfic one,
>>> that one will really help for a better UX
>>
>> no, we shouldn't select things, especially with the Baytrail legacy which is
>> kept to avoid breaking existing setups but shouldn't be used any longer.
>> And with SOF coming, we may have hybrid configurations with SOF used on
>> Baytrail/Cherrytrail/APL/CNL but SST used on Skylake/Kabylake due to
>> firmware authentication stuff.
> 
> Okay I am checking this out.
> 
> Btw you need to rebase this series I wasn't able to apply to mark/intel/topic
> So I grabbed the branch from your github tree. Assuming I have the right
> branch (topic/fix-kconfig)

I rebased against Mark's for-next branch on Tuesday?

> 
> At top level UX is bit confusing:
> 
> 			[ ]   Intel ASoC SST drivers
> 			[*]   Intel ASoC machine drivers

I don't know how you reached this since there is a dependency on the 
first one. Is this a real case you've seen, it's not supposed to happen.

I just tested and the second line is indeed filtered out if the first 
one is not selected. Can you please check on your side?

The opposite can happen though if the user explicitly disables the 
compilation of machine drivers

[*]   Intel ASoC SST drivers
[ ]   Intel ASoC machine drivers

not sure if there's a way or need to prevent this though?

> 
> And selecting first symbol shows me the platforms and once I select platform
> then machines appear under second menu. Now this is really not a great way
> from UX. Why are we adding platforms selectable? We might be able to
> simplify this by getting rid of first set and let machine then select
> Platfroms specfied.

No. This is done so that I can have alternate platform drivers based on 
SOF and still share the machine drivers.
The selection of machine first also leads to multiple complications 
mixing Intel and board level.

> 
> 			[*]   Intel ASoC SST drivers
> 			< >     Intel ASoC SST driver for Haswell/Broadwell (NEW)
> 			< >     Intel ASoC SST driver for Baytrail (legacy) (NEW)
> 			< >     Intel ASoC SST driver for PCI HiFi2 platforms (Medfield, Merrifield) (NEW)
> 			< >     Intel ASoC SST driver for ACPI HiFi2 platforms (Baytrail, Cherrytrail) (NEW)
> 			<*>     Intel ASoC SST driver for SKL/BXT/KBL/GLK/CNL
> 			[*]   Intel ASoC machine drivers
> 			< >     ASoC Audio driver for SKL with RT286 I2S mode (NEW)
> 			< >     ASoC Audio driver for SKL with NAU88L25 and SSM4567 in I2S Mode (NEW)
> 			< >     ASoC Audio driver for SKL with NAU88L25 and MAX98357A in I2S Mode (NEW)
> 
> If we still want both I would like the machine to appear below the
> respective platform, in above example, I would like to see:
> 
> 			[*]   Intel ASoC SST drivers
> 			< >     Intel ASoC SST driver for Haswell/Broadwell (NEW)
> 			< >     Intel ASoC SST driver for Baytrail (legacy) (NEW)
> 			< >     Intel ASoC SST driver for PCI HiFi2 platforms (Medfield, Merrifield) (NEW)
> 			< >     Intel ASoC SST driver for ACPI HiFi2 platforms (Baytrail, Cherrytrail) (NEW)
> 			<*>     Intel ASoC SST driver for SKL/BXT/KBL/GLK/CNL
> 			< >       ASoC Audio driver for SKL with RT286 I2S mode (NEW)
> 			< >       ASoC Audio driver for SKL with NAU88L25 and SSM4567 in I2S Mode (NEW)
> 			< >       ASoC Audio driver for SKL with NAU88L25 and MAX98357A in I2S Mode (NEW)
> 
> Then you can get rid of global mach symbol and select platform and then
> respective machine and better UX :).

And how is this going to look when I add SOF? I'll have to duplicate the 
machine drivers entry?

> 
>>>> +endif ## SND_SOC_INTEL_SST_TOPLEVEL
>>>>   # ASoC codec drivers
>>>>   source "sound/soc/intel/boards/Kconfig"
>>>> +
>>>> +# configs common to SST and SOF to compile sound/soc/intel/common
>>>> +# directory and use matching tables
>>>> +
>>>> +config SND_SOC_INTEL_COMMON
>>>> +	tristate
>>>> +	select SND_SOC_ACPI_INTEL_MATCH if ACPI
>>>
>>> common selects only MATCH
>>
>> COMMON is only there to go compile the sound/soc/intel/common directory.
>> That's not very useful indeed but otherwise the Makefile doesn't compile the
>> match tables or the sst-ipc stuff. If you find a better solution I am all
>> ears.
> 
> Coming to this topic (my original intention to check this), I found that
> common symbol is not doing anything expect adding common directory, which is
> not really needed as we have individual bits for files, so I kept this but
> removed the match one.

I really don't get what you are trying to do, see below.

> 
> -- >8 --
> 
> diff --git a/sound/soc/intel/Kconfig b/sound/soc/intel/Kconfig
> index dee731d42634..33a05aa2cf32 100644
> --- a/sound/soc/intel/Kconfig
> +++ b/sound/soc/intel/Kconfig
> @@ -99,8 +99,4 @@ source "sound/soc/intel/boards/Kconfig"
> 
>   config SND_SOC_INTEL_COMMON
>          tristate
> -       select SND_SOC_ACPI_INTEL_MATCH if ACPI
> -
> -config SND_SOC_ACPI_INTEL_MATCH
> -       tristate
> -       select SND_SOC_ACPI if ACPI
> +       depends on ACPI
> 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/common/Makefile
> b/sound/soc/intel/common/Makefile
> index 7379d8830c39..92c66c47eb78 100644
> --- a/sound/soc/intel/common/Makefile
> +++ b/sound/soc/intel/common/Makefile
> @@ -8,4 +8,4 @@ snd-soc-acpi-intel-match-objs := soc-acpi-intel-byt-match.o
> soc-acpi-intel-cht-m
>   obj-$(CONFIG_SND_SOC_INTEL_SST) += snd-soc-sst-dsp.o snd-soc-sst-ipc.o
>   obj-$(CONFIG_SND_SOC_INTEL_SST_ACPI) += snd-soc-sst-acpi.o
>   obj-$(CONFIG_SND_SOC_INTEL_SST_FIRMWARE) += snd-soc-sst-firmware.o
> -obj-$(CONFIG_SND_SOC_ACPI_INTEL_MATCH) += snd-soc-acpi-intel-match.o
> +obj-$(CONFIG_SND_SOC_INTEL_COMMON) += snd-soc-acpi-intel-match.o

not very elegant, is it?

> 
> -- >8 --
> 
> This way we have one lesser symbol to manage :) I am okay if you want to
> keep match and remove common.

if that's possible yes, i don't mind removing the common part and moving 
the CONFIG_SND_SOC_ACPI_INTEL_MATCH to each platform where it makes 
sense. In my initial trial the COMMON symbol was required, if it can be 
removed then fine.

> 
> 
>>>> +	# this option controls the compilation of the sound/soc/intel/common
>>>> +	# directory 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
>>>> +
>>>> +config SND_SOC_ACPI_INTEL_MATCH
>>>> +	tristate
>>>> +	select SND_SOC_ACPI if ACPI
>>>
>>> then why keep common, lets remove one level and have
>>> SND_SOC_ACPI_INTEL_MATCH selected. ACPI is must have at top level so we can
>>> add depends on that symbol
>>
>> we still have platforms which don't depend on ACPI, so we shouldn't take
>> this out.
> 
> For the controllers which are PCI only, yes. But as a platform we won't boot
> without ACPI :) so take your pick!

I was referring to Medfield/Merrifield. As I mentioned it the fate of 
those platforms in to be determined but as of today your assertions that 
all platforms need ACPI is not correct.

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2017-11-30 14:41 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-11-29  1:45 [RFC PATCH v2 0/7] Fix Intel audio Kconfig issues Pierre-Louis Bossart
2017-11-29  1:45 ` [RFC PATCH v2 1/7] ASoC: Intel: Fix Kconfig with top-level selector Pierre-Louis Bossart
2017-11-29 10:27   ` Vinod Koul
2017-11-29 10:59     ` Mark Brown
2017-11-29 14:52     ` Pierre-Louis Bossart
2017-11-30 12:24       ` Vinod Koul
2017-11-30 14:41         ` [alsa-devel] " Pierre-Louis Bossart
2017-11-29  1:45 ` [RFC PATCH v2 2/7] ASoC: Intel: Kconfig: Simplify-clarify ACPI/PCI dependencies Pierre-Louis Bossart
2017-11-29  1:45 ` [RFC PATCH v2 3/7] ASoC: Intel: document what Kconfig options do Pierre-Louis Bossart
2017-11-29  1:45 ` [RFC PATCH v2 4/7] ASoC: Intel: Fix nested/unnecessary Kconfig dependencies Pierre-Louis Bossart
2017-11-29  1:45 ` [RFC PATCH v2 5/7] ASoC: Intel: boards: align Kconfig dependencies for Haswell/Broadwell Pierre-Louis Bossart
2017-11-29 10:31   ` Vinod Koul
2017-11-29  1:45 ` [RFC PATCH v2 6/7] ASoC: Intel: boards: align Kconfig configurations for HiFi2 Pierre-Louis Bossart
2017-11-29  1:45 ` [RFC PATCH v2 7/7] ASoC: Intel: boards: align/fix SKL/BXT/KBL Kconfigs Pierre-Louis Bossart

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).