* [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).