Hi all,
This patch series fixes several missing selects related to REGMAP.
The first patch fixes a serious thinko I made when making the regmap
KUnit test depend on REGMAP.
The last two patches fix missing selects I discovered when diving deeper
into the REGMAP_* => REGMAP logic.
Thanks for your comments!
Geert Uytterhoeven (3):
regmap: Replace "default y if" by select
regmap: REGMAP_SLIMBUS should select REGMAP
ASoC: codecs: SND_SOC_WCD934X should select REGMAP_IRQ
drivers/base/regmap/Kconfig | 16 +++++++++++++++-
drivers/mfd/Kconfig | 1 -
sound/soc/codecs/Kconfig | 1 +
3 files changed, 16 insertions(+), 2 deletions(-)
--
2.34.1
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
If CONFIG_SND_SOC_WCD934X=y, CONFIG_COMPILE_TEST=y,
CONFIG_MFD_WCD934X=n, CONFIG_REGMAP=n:
sound/soc/codecs/wcd934x.c:518:38: error: array type has incomplete element type ‘struct regmap_range_cfg’
518 | static const struct regmap_range_cfg wcd934x_ifc_ranges[] = {
| ^~~~~~~~~~~~~~~~~~
Fix this by making REGMAP_SLIMBUS select REGMAP.
Drop the selection of REGMAP by MFD_WCD934X, as this is not needed
(now both REGMAP_SLIMBUS and REGMAP_IRQ select REGMAP).
Signed-off-by: Geert Uytterhoeven <[email protected]>
---
drivers/base/regmap/Kconfig | 1 +
drivers/mfd/Kconfig | 1 -
2 files changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/base/regmap/Kconfig b/drivers/base/regmap/Kconfig
index e25cc619c75de3d9..c3a260ed4e864959 100644
--- a/drivers/base/regmap/Kconfig
+++ b/drivers/base/regmap/Kconfig
@@ -34,6 +34,7 @@ config REGMAP_I2C
config REGMAP_SLIMBUS
tristate
depends on SLIMBUS
+ select REGMAP
config REGMAP_SPI
tristate
diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
index 0b6af476f554a191..5857dad2c64828fa 100644
--- a/drivers/mfd/Kconfig
+++ b/drivers/mfd/Kconfig
@@ -2121,7 +2121,6 @@ config MFD_STMFX
config MFD_WCD934X
tristate "Support for WCD9340/WCD9341 Codec"
depends on SLIMBUS
- select REGMAP
select REGMAP_SLIMBUS
select REGMAP_IRQ
select MFD_CORE
--
2.34.1
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 <[email protected]>
Closes: https://lore.kernel.org/r/[email protected]
Reported-by: Christophe Leroy <[email protected]>
Closes: https://lore.kernel.org/r/[email protected]
Signed-off-by: Geert Uytterhoeven <[email protected]>
---
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
On Thu, Jul 06, 2023 at 01:42:03PM +0200, Geert Uytterhoeven wrote:
> Fix this by making REGMAP_SLIMBUS select REGMAP.
Why is this being done as a separate patch?
> Drop the selection of REGMAP by MFD_WCD934X, as this is not needed
> (now both REGMAP_SLIMBUS and REGMAP_IRQ select REGMAP).
This has always been redudnant, why is it mixed into this patch?
On Thu, Jul 06, 2023 at 01:42:02PM +0200, Geert Uytterhoeven wrote:
> 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.
I already have a separate patch which will go after the merge window
that will move the KUnit visible option to a separate Kconfig since the
current bodge to work around your desire to not have KUnit enable
anything automatically had really substantial usability issues anyway.
I'm getting fed up with all the problems that these KUNIT_ALL_TESTS
issues TBH, the inital patch here seriously damaged the usability.
Hi Mark,
On Thu, Jul 6, 2023 at 2:18 PM Mark Brown <[email protected]> wrote:
> On Thu, Jul 06, 2023 at 01:42:03PM +0200, Geert Uytterhoeven wrote:
>
> > Fix this by making REGMAP_SLIMBUS select REGMAP.
>
> Why is this being done as a separate patch?
Because this is a new select, which was not handled through the
"default y" before. [PATCH 1/3] converted only the existing ones.
> > Drop the selection of REGMAP by MFD_WCD934X, as this is not needed
> > (now both REGMAP_SLIMBUS and REGMAP_IRQ select REGMAP).
>
> This has always been redudnant, why is it mixed into this patch?
Because it is related to REGMAP_SLIMBUS selecting REGMAP.
I agree it was redundant before, as REGMAP_IRQ already selected REGMAP.
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
On Thu, 06 Jul 2023 13:42:01 +0200, Geert Uytterhoeven wrote:
> Hi all,
>
> This patch series fixes several missing selects related to REGMAP.
>
> The first patch fixes a serious thinko I made when making the regmap
> KUnit test depend on REGMAP.
>
> [...]
Applied to
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next
Thanks!
[3/3] ASoC: codecs: SND_SOC_WCD934X should select REGMAP_IRQ
commit: e231cd833f6463e9a1d54acae9614b513c74d45e
All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying
to this mail.
Thanks,
Mark
On Thu, 06 Jul 2023, Geert Uytterhoeven wrote:
> If CONFIG_SND_SOC_WCD934X=y, CONFIG_COMPILE_TEST=y,
> CONFIG_MFD_WCD934X=n, CONFIG_REGMAP=n:
>
> sound/soc/codecs/wcd934x.c:518:38: error: array type has incomplete element type ‘struct regmap_range_cfg’
> 518 | static const struct regmap_range_cfg wcd934x_ifc_ranges[] = {
> | ^~~~~~~~~~~~~~~~~~
>
> Fix this by making REGMAP_SLIMBUS select REGMAP.
>
> Drop the selection of REGMAP by MFD_WCD934X, as this is not needed
> (now both REGMAP_SLIMBUS and REGMAP_IRQ select REGMAP).
>
> Signed-off-by: Geert Uytterhoeven <[email protected]>
> ---
> drivers/base/regmap/Kconfig | 1 +
> drivers/mfd/Kconfig | 1 -
Acked-by: Lee Jones <[email protected]>
> 2 files changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/base/regmap/Kconfig b/drivers/base/regmap/Kconfig
> index e25cc619c75de3d9..c3a260ed4e864959 100644
> --- a/drivers/base/regmap/Kconfig
> +++ b/drivers/base/regmap/Kconfig
> @@ -34,6 +34,7 @@ config REGMAP_I2C
> config REGMAP_SLIMBUS
> tristate
> depends on SLIMBUS
> + select REGMAP
>
> config REGMAP_SPI
> tristate
> diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
> index 0b6af476f554a191..5857dad2c64828fa 100644
> --- a/drivers/mfd/Kconfig
> +++ b/drivers/mfd/Kconfig
> @@ -2121,7 +2121,6 @@ config MFD_STMFX
> config MFD_WCD934X
> tristate "Support for WCD9340/WCD9341 Codec"
> depends on SLIMBUS
> - select REGMAP
> select REGMAP_SLIMBUS
> select REGMAP_IRQ
> select MFD_CORE
> --
> 2.34.1
>
--
Lee Jones [李琼斯]