[PATCH 1/3] regmap: Replace "default y if" by select

From: Geert Uytterhoeven
Date: Thu Jul 06 2023 - 07:42:37 EST


Merely setting the default to enabled is no guarantee that a Kconfig
option is actually enabled. While this works for an invisible option,
the user can still disable it manually if the option is visible.
Hence since the REGMAP option was made visible if KUNIT_ALL_TESTS is
enabled, the user can now manually disable REGMAP, causing build
failures if any of the REGMAP_* configuration options are enabled.

Fix this by replacing "default y if ..." by individual "select REGMAP"
statements for all users.

Fixes: 70a640c0efa76674 ("regmap: REGMAP_KUNIT should not select REGMAP")
Reported-by: Benjamin Gray <bgray@xxxxxxxxxxxxx>
Closes: https://lore.kernel.org/r/20230705003024.1486757-1-bgray@xxxxxxxxxxxxx
Reported-by: Christophe Leroy <christophe.leroy@xxxxxxxxxx>
Closes: https://lore.kernel.org/r/d8437dd4-63b6-13fb-22fd-9b92c661071c@xxxxxxxxxx
Signed-off-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
---
drivers/base/regmap/Kconfig | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/drivers/base/regmap/Kconfig b/drivers/base/regmap/Kconfig
index 0db2021f7477f2ab..e25cc619c75de3d9 100644
--- a/drivers/base/regmap/Kconfig
+++ b/drivers/base/regmap/Kconfig
@@ -5,7 +5,6 @@

config REGMAP
bool "Register Map support" if KUNIT_ALL_TESTS
- default y if (REGMAP_I2C || REGMAP_SPI || REGMAP_SPMI || REGMAP_W1 || REGMAP_AC97 || REGMAP_MMIO || REGMAP_IRQ || REGMAP_SOUNDWIRE || REGMAP_SOUNDWIRE_MBQ || REGMAP_SCCB || REGMAP_I3C || REGMAP_SPI_AVMM || REGMAP_MDIO || REGMAP_FSI)
select IRQ_DOMAIN if REGMAP_IRQ
select MDIO_BUS if REGMAP_MDIO
help
@@ -25,10 +24,12 @@ config REGMAP_KUNIT

config REGMAP_AC97
tristate
+ select REGMAP

config REGMAP_I2C
tristate
depends on I2C
+ select REGMAP

config REGMAP_SLIMBUS
tristate
@@ -37,23 +38,29 @@ config REGMAP_SLIMBUS
config REGMAP_SPI
tristate
depends on SPI
+ select REGMAP

config REGMAP_SPMI
tristate
depends on SPMI
+ select REGMAP

config REGMAP_W1
tristate
depends on W1
+ select REGMAP

config REGMAP_MDIO
tristate
+ select REGMAP

config REGMAP_MMIO
tristate
+ select REGMAP

config REGMAP_IRQ
bool
+ select REGMAP

config REGMAP_RAM
tristate
@@ -61,23 +68,29 @@ config REGMAP_RAM
config REGMAP_SOUNDWIRE
tristate
depends on SOUNDWIRE
+ select REGMAP

config REGMAP_SOUNDWIRE_MBQ
tristate
depends on SOUNDWIRE
+ select REGMAP

config REGMAP_SCCB
tristate
depends on I2C
+ select REGMAP

config REGMAP_I3C
tristate
depends on I3C
+ select REGMAP

config REGMAP_SPI_AVMM
tristate
depends on SPI
+ select REGMAP

config REGMAP_FSI
tristate
depends on FSI
+ select REGMAP
--
2.34.1