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

From: Arnd Bergmann
Date: Thu Nov 02 2017 - 12:25:06 EST


On Thu, Nov 2, 2017 at 5:04 PM, Vinod Koul <vinod.koul@xxxxxxxxx> wrote:
> On Thu, Nov 02, 2017 at 02:12:11PM +0100, Arnd Bergmann wrote:
>> 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)
>
> The BYT legacy drivers used DMAengine (dw) to load the firmware and hence the
> dependency. The Skylake and other drivers do not need that, so we should
> move this from toplevel to the BYT driver only.

Ok, so Haswell also shouldn't select SND_SOC_INTEL_SST_FIRMWARE, right?

>> config SND_SOC_INTEL_SST_FIRMWARE
>> tristate
>> - select DW_DMAC_CORE
>
> this is required as we need this DMA driver. It might not have issues on
> compile but functionality would be broken.

It's also broken at compile time, I just ran into that.

>> 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
>
> This is fine
>
>> 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
>
> yes this and below seems right fix to me.

Ok, thanks for taking a look! I'll let the randconfig builder chew on this
overnight, and send a new version tomorrow.

Arnd