I have three opens with this ACPI/PCI change
1. the baseline change fails on my cross-compilation checks, see below the result of the attached script (simplification of the one I use to avoid 0day reports).
2. there are different patterns to express the dependency on PCI e.g.
config MMC_SDHCI_ACPI tristate "SDHCI support for ACPI enumerated SDHCI controllers" depends on MMC_SDHCI && ACPI - select IOSF_MBI if X86 + select IOSF_MBI if (X86 && PCI)
but
config SND_SST_ATOM_HIFI2_PLATFORM_ACPI tristate "ACPI HiFi2 (Baytrail, Cherrytrail) Platforms" default ACPI - depends on X86 && ACPI + depends on X86 && ACPI && PCI select SND_SST_IPC_ACPI select SND_SST_ATOM_HIFI2_PLATFORM select SND_SOC_ACPI_INTEL_MATCH
IOSF is only needed for Baytrail-CR detection, and the code will compile fine without it, so maybe it'd be a better model if you used the following diff?
diff --git a/sound/soc/intel/Kconfig b/sound/soc/intel/Kconfig index 2fd1b61e8331..68af0ea5c96c 100644 --- a/sound/soc/intel/Kconfig +++ b/sound/soc/intel/Kconfig @@ -95,7 +95,7 @@ config SND_SST_ATOM_HIFI2_PLATFORM_ACPI select SND_SST_IPC_ACPI select SND_SST_ATOM_HIFI2_PLATFORM select SND_SOC_ACPI_INTEL_MATCH - select IOSF_MBI + select IOSF_MBI if PCI
3. All the Intel machine drivers depend on X86_INTEL_LPSS which depends on PCI. But for Baytrail/Haswell/Broadwell we have only a dependency on ACPI, so we expose drivers that can be selected but fail on probe since there are no machine drivers. I am not sure if we want to be strict and only expose meaningful configurations, or allow for more compilations tests and corner cases?
-Pierre
cross-compilation issue:
git checkout next-20190102
make CROSS_COMPILE=/opt/gcc-8.1.0-nolibc/ia64-linux/bin/ia64-linux- --jobs=16 allmodconfig ARCH=ia64 HOSTCC scripts/basic/fixdep HOSTCC scripts/kconfig/conf.o YACC scripts/kconfig/zconf.tab.c LEX scripts/kconfig/zconf.lex.c HOSTCC scripts/kconfig/confdata.o HOSTCC scripts/kconfig/expr.o HOSTCC scripts/kconfig/symbol.o YACC scripts/kconfig/zconf.tab.h HOSTCC scripts/kconfig/preprocess.o HOSTCC scripts/kconfig/zconf.tab.o HOSTCC scripts/kconfig/zconf.lex.o HOSTLD scripts/kconfig/conf scripts/kconfig/conf --allmodconfig Kconfig arch/ia64/Kconfig:128:error: recursive dependency detected! arch/ia64/Kconfig:128: choice <choice> contains symbol IA64_HP_SIM arch/ia64/Kconfig:202: symbol IA64_HP_SIM is part of choice PM kernel/power/Kconfig:144: symbol PM is selected by PM_SLEEP kernel/power/Kconfig:104: symbol PM_SLEEP depends on HIBERNATE_CALLBACKS kernel/power/Kconfig:31: symbol HIBERNATE_CALLBACKS is selected by HIBERNATION kernel/power/Kconfig:34: symbol HIBERNATION depends on SWAP init/Kconfig:250: symbol SWAP depends on BLOCK block/Kconfig:5: symbol BLOCK is selected by UBIFS_FS fs/ubifs/Kconfig:1: symbol UBIFS_FS depends on MISC_FILESYSTEMS fs/Kconfig:227: symbol MISC_FILESYSTEMS is selected by ACPI_APEI drivers/acpi/apei/Kconfig:8: symbol ACPI_APEI depends on ACPI drivers/acpi/Kconfig:9: symbol ACPI depends on ARCH_SUPPORTS_ACPI drivers/acpi/Kconfig:6: symbol ARCH_SUPPORTS_ACPI is selected by IA64_HP_SIM arch/ia64/Kconfig:202: symbol IA64_HP_SIM is part of choice <choice> For a resolution refer to Documentation/kbuild/kconfig-language.txt subsection "Kconfig recursive dependency limitations"