Re: [alsa-devel] [PATCH] ASoC: Intel: fix Kconfig dependencies

From: Arnd Bergmann
Date: Thu Nov 02 2017 - 09:12:17 EST


On Thu, Nov 2, 2017 at 2:04 PM, Arnd Bergmann <arnd@xxxxxxxx> wrote:
> On Thu, Nov 2, 2017 at 1:43 PM, Pierre-Louis Bossart
> <pierre-louis.bossart@xxxxxxxxxxxxxxx> wrote:
>> On 11/2/17 6:07 AM, Arnd Bergmann wrote:
>>>
>>> I ran into multiple problems during randconfig builds of the
>>> recently changed Kconfig logic for Intel ASoC drivers:
>>
>>
>> we did quite a bit of testing on this change, looks like we missed a number
>> of cases. Gah.
>>
>>>
>>> - Building without DMADEVICES doesn't work in general
>>
>>
>> the Intel audio hardware has its own DMA in general, be it based on
>> DesignWare controlled by audio firmware or HDaudio, not sure if/why this
>> dependency is needed across the board?
>
> Probably my mistake. I'll try again without the dependency and see
> what problems I run into then and what the correct fix is.

I immediately ran into this Kconfig warning, so this is clearly for the two
users of SND_SOC_INTEL_SST_FIRMWARE:

warning: (SATA_DWC_OLD_DMA && SERIAL_8250_LPSS &&
SND_SOC_INTEL_SST_FIRMWARE) selects DW_DMAC_CORE which has unmet
direct dependencies (DMADEVICES)

I'm testing with this fixup now:

diff --git a/sound/soc/intel/Kconfig b/sound/soc/intel/Kconfig
index e18118209b75..89126fa3f846 100644
--- a/sound/soc/intel/Kconfig
+++ b/sound/soc/intel/Kconfig
@@ -20,7 +20,6 @@ config SND_SOC_INTEL_SST

config SND_SOC_INTEL_SST_FIRMWARE
tristate
- select DW_DMAC_CORE

config SND_SOC_INTEL_SST_ACPI
tristate
@@ -32,19 +31,20 @@ config SND_SOC_ACPI_INTEL_MATCH
config SND_SOC_INTEL_SST_TOPLEVEL
tristate "Intel ASoC SST drivers"
depends on X86 || COMPILE_TEST
- depends on DMADEVICES
select SND_SOC_INTEL_MACH
select SND_SOC_INTEL_COMMON

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 DMADEVICES
select SND_SOC_INTEL_SST
select SND_SOC_INTEL_SST_FIRMWARE

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

diff --git a/sound/soc/intel/boards/Kconfig b/sound/soc/intel/boards/Kconfig
index 449bc8baaa60..5063f15b4ca4 100644
--- a/sound/soc/intel/boards/Kconfig
+++ b/sound/soc/intel/boards/Kconfig
@@ -19,7 +19,6 @@ config SND_SOC_INTEL_HASWELL_MACH
tristate "ASoC Audio DSP support for Intel Haswell Lynxpoint"
depends on SND_SOC_INTEL_MACH
depends on X86_INTEL_LPSS && I2C && I2C_DESIGNWARE_PLATFORM
- depends on DMADEVICES
depends on SND_SOC_INTEL_HASWELL
select SND_SOC_RT5640
help
@@ -32,7 +31,6 @@ config SND_SOC_INTEL_BDW_RT5677_MACH
tristate "ASoC Audio driver for Intel Broadwell with RT5677 codec"
depends on SND_SOC_INTEL_MACH
depends on X86_INTEL_LPSS && GPIOLIB && I2C
- depends on DMADEVICES
depends on SND_SOC_INTEL_HASWELL
select SND_SOC_RT5677
help
@@ -43,7 +41,6 @@ config SND_SOC_INTEL_BROADWELL_MACH
tristate "ASoC Audio DSP support for Intel Broadwell Wildcatpoint"
depends on SND_SOC_INTEL_MACH
depends on X86_INTEL_LPSS && I2C && I2C_DESIGNWARE_PLATFORM
- depends on DMADEVICES
depends on SND_SOC_INTEL_HASWELL
select SND_SOC_RT286
help
@@ -56,7 +53,6 @@ config SND_SOC_INTEL_BYT_MAX98090_MACH
tristate "ASoC Audio driver for Intel Baytrail with MAX98090 codec"
depends on SND_SOC_INTEL_MACH
depends on X86_INTEL_LPSS && I2C
- depends on DMADEVICES
depends on SND_SST_IPC_ACPI = n
depends on SND_SOC_INTEL_BAYTRAIL
select SND_SOC_MAX98090
@@ -68,7 +64,6 @@ config SND_SOC_INTEL_BYT_RT5640_MACH
tristate "ASoC Audio driver for Intel Baytrail with RT5640 codec"
depends on SND_SOC_INTEL_MACH
depends on X86_INTEL_LPSS && I2C
- depends on DMADEVICES
depends on SND_SST_IPC_ACPI = n
depends on SND_SOC_INTEL_BAYTRAIL
select SND_SOC_RT5640