mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH v2 0/4] ASoC: meson: fix missing REGMAP_MMIO dependencies
@ 2026-11-09 15:41 Jude Gyimah
  2026-11-09 15:41 ` [PATCH v2 1/4] ASoC: meson: aiu: select REGMAP_MMIO Jude Gyimah
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Jude Gyimah @ 2026-11-09 15:41 UTC (permalink / raw)
  To: jbrunet, lgirdwood, broonie, perex, tiwai
  Cc: neil.armstrong, khilman, martin.blumenstingl, linux-sound,
	linux-amlogic, linux-arm-kernel, linux-kernel, Jude Gyimah

Each of these drivers can be built into vmlinux while the code
providing a symbol it calls is a module, which fails to link.  The
same shape in 4 drivers, so they are here as one series.

Affected: aiu, axg-pdm, axg-spdifin, axg-spdifout.

The fix is a select rather than a depends on: the providers have no
prompt of their own and are only ever enabled by a select, so a
depends on would leave these drivers unselectable.

Each was reproduced on v7.3, arm64 by a vmlinux link that failed on the
named symbol, and each links once the select is added.

Found with kreach, a static check that compares what Kconfig allows
against the symbols the compiled objects actually reference.

The checker is at https://github.com/JGyimah/kreach, and the
reproducer configuration for each finding is published with it
under results/.

v2: Patch 2/4 opened with "These three do not" without saying 
    which three it meant. That sentence predated the aiu patch, 
    and the context was only in the cover letter, which git am 
    leaves out. As a result, the commit message didn't make 
    sense on its own. Reported by sashiko-bot. No functional 
    change: all four Kconfig diffs are byte-for-byte identical 
    to v1.

Jude Gyimah (4):
  ASoC: meson: aiu: select REGMAP_MMIO
  ASoC: meson: axg-pdm: select REGMAP_MMIO
  ASoC: meson: axg-spdifin: select REGMAP_MMIO
  ASoC: meson: axg-spdifout: select REGMAP_MMIO

 sound/soc/meson/Kconfig | 4 ++++
 1 file changed, 4 insertions(+)

-- 
2.43.0


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH v2 1/4] ASoC: meson: aiu: select REGMAP_MMIO
  2026-11-09 15:41 [PATCH v2 0/4] ASoC: meson: fix missing REGMAP_MMIO dependencies Jude Gyimah
@ 2026-11-09 15:41 ` Jude Gyimah
  2026-11-09 15:41 ` [PATCH v2 2/4] ASoC: meson: axg-pdm: " Jude Gyimah
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Jude Gyimah @ 2026-11-09 15:41 UTC (permalink / raw)
  To: jbrunet, lgirdwood, broonie, perex, tiwai
  Cc: neil.armstrong, khilman, martin.blumenstingl, linux-sound,
	linux-amlogic, linux-arm-kernel, linux-kernel, Jude Gyimah,
	Valerio Setti

gx-formatter.o is part of snd-soc-meson-aiu:

  sound/soc/meson/Makefile:7: snd-soc-meson-aiu-y += gx-formatter.o

so SND_MESON_AIU is the option that decides where its call lands,
and the error below names gx-formatter.c rather than aiu.c.

aiu calls __devm_regmap_init_mmio_clk, which
drivers/base/regmap/regmap-mmio.c provides under REGMAP_MMIO.

  gx-formatter.c:(.text+0x74): undefined reference to
    `__devm_regmap_init_mmio_clk'

The driver can be built into vmlinux while REGMAP_MMIO is a module, in
which case the symbol is not there at link time.

Select rather than depend on: REGMAP_MMIO has no prompt of its own and is
only ever enabled by a select, so a depends on would leave SND_MESON_AIU
unselectable.

Reproduced on v7.3, arm64, with CONFIG_SND_MESON_AIU=y and
CONFIG_REGMAP_MMIO=m.

Found with kreach, a static check that compares what Kconfig allows
against the symbols the compiled objects actually reference.

Fixes: 6ae9ca9ce986 ("ASoC: meson: aiu: add i2s and spdif support")
Signed-off-by: Jude Gyimah <jude.gyimah87@gmail.com>
Reviewed-by: Jerome Brunet <jbrunet@baylibre.com>
Reviewed-by: Valerio Setti <vsetti@baylibre.com>
---
 sound/soc/meson/Kconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/sound/soc/meson/Kconfig b/sound/soc/meson/Kconfig
index d9a730994a2a..d0f60f8af2b5 100644
--- a/sound/soc/meson/Kconfig
+++ b/sound/soc/meson/Kconfig
@@ -4,6 +4,7 @@ menu "Amlogic"
 
 config SND_MESON_AIU
 	tristate "Amlogic AIU"
+	select REGMAP_MMIO
 	select SND_MESON_CODEC_GLUE
 	select SND_PCM_IEC958
 	imply SND_SOC_MESON_T9015
-- 
2.43.0


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH v2 2/4] ASoC: meson: axg-pdm: select REGMAP_MMIO
  2026-11-09 15:41 [PATCH v2 0/4] ASoC: meson: fix missing REGMAP_MMIO dependencies Jude Gyimah
  2026-11-09 15:41 ` [PATCH v2 1/4] ASoC: meson: aiu: select REGMAP_MMIO Jude Gyimah
@ 2026-11-09 15:41 ` Jude Gyimah
  2026-11-09 15:41 ` [PATCH v2 3/4] ASoC: meson: axg-spdifin: " Jude Gyimah
  2026-11-09 15:41 ` [PATCH v2 4/4] ASoC: meson: axg-spdifout: " Jude Gyimah
  3 siblings, 0 replies; 5+ messages in thread
From: Jude Gyimah @ 2026-11-09 15:41 UTC (permalink / raw)
  To: jbrunet, lgirdwood, broonie, perex, tiwai
  Cc: neil.armstrong, khilman, martin.blumenstingl, linux-sound,
	linux-amlogic, linux-arm-kernel, linux-kernel, Jude Gyimah,
	Valerio Setti

Several stanzas in the same file already select REGMAP_MMIO,
SND_MESON_G12A_TOACODEC among them.  However, SND_MESON_AXG_PDM does not.

axg-pdm calls __devm_regmap_init_mmio_clk, which
drivers/base/regmap/regmap-mmio.c provides under REGMAP_MMIO.

  axg-pdm.c:(.text+0xc4): undefined reference to
    `__devm_regmap_init_mmio_clk'

The driver can be built into vmlinux while REGMAP_MMIO is a module, in
which case the symbol is not there at link time.

Select rather than depend on: REGMAP_MMIO has no prompt of its own and is
only ever enabled by a select, so a depends on would leave
SND_MESON_AXG_PDM unselectable.

Reproduced on v7.3, arm64, with CONFIG_SND_MESON_AXG_PDM=y and
CONFIG_REGMAP_MMIO=m.

Found with kreach, a static check that compares what Kconfig allows
against the symbols the compiled objects actually reference.

Fixes: 2cfc123eea74 ("ASoC: meson: add axg pdm input")
Signed-off-by: Jude Gyimah <jude.gyimah87@gmail.com>
Reviewed-by: Jerome Brunet <jbrunet@baylibre.com>
Reviewed-by: Valerio Setti <vsetti@baylibre.com>
---
 sound/soc/meson/Kconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/sound/soc/meson/Kconfig b/sound/soc/meson/Kconfig
index d0f60f8af2b5..4b06a9e7c72a 100644
--- a/sound/soc/meson/Kconfig
+++ b/sound/soc/meson/Kconfig
@@ -92,6 +92,7 @@ config SND_MESON_AXG_SPDIFIN
 
 config SND_MESON_AXG_PDM
 	tristate "Amlogic AXG PDM Input Support"
+	select REGMAP_MMIO
 	imply SND_SOC_DMIC
 	imply COMMON_CLK_AXG_AUDIO
 	help
-- 
2.43.0


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH v2 3/4] ASoC: meson: axg-spdifin: select REGMAP_MMIO
  2026-11-09 15:41 [PATCH v2 0/4] ASoC: meson: fix missing REGMAP_MMIO dependencies Jude Gyimah
  2026-11-09 15:41 ` [PATCH v2 1/4] ASoC: meson: aiu: select REGMAP_MMIO Jude Gyimah
  2026-11-09 15:41 ` [PATCH v2 2/4] ASoC: meson: axg-pdm: " Jude Gyimah
@ 2026-11-09 15:41 ` Jude Gyimah
  2026-11-09 15:41 ` [PATCH v2 4/4] ASoC: meson: axg-spdifout: " Jude Gyimah
  3 siblings, 0 replies; 5+ messages in thread
From: Jude Gyimah @ 2026-11-09 15:41 UTC (permalink / raw)
  To: jbrunet, lgirdwood, broonie, perex, tiwai
  Cc: neil.armstrong, khilman, martin.blumenstingl, linux-sound,
	linux-amlogic, linux-arm-kernel, linux-kernel, Jude Gyimah,
	Valerio Setti

axg-spdifin calls __devm_regmap_init_mmio_clk, which
drivers/base/regmap/regmap-mmio.c provides under REGMAP_MMIO.

  axg-spdifin.c:(.text+0x154): undefined reference to
    `__devm_regmap_init_mmio_clk'

The driver can be built into vmlinux while REGMAP_MMIO is a module, in
which case the symbol is not there at link time.

Select rather than depend on: REGMAP_MMIO has no prompt of its own and is
only ever enabled by a select, so a depends on would leave
SND_MESON_AXG_SPDIFIN unselectable.

Reproduced on v7.3, arm64, with CONFIG_SND_MESON_AXG_SPDIFIN=y and
CONFIG_REGMAP_MMIO=m.

Found with kreach, a static check that compares what Kconfig allows
against the symbols the compiled objects actually reference.

Fixes: 5ce5658375e6 ("ASoC: meson: add axg spdif input")
Signed-off-by: Jude Gyimah <jude.gyimah87@gmail.com>
Reviewed-by: Jerome Brunet <jbrunet@baylibre.com>
Reviewed-by: Valerio Setti <vsetti@baylibre.com>
---
 sound/soc/meson/Kconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/sound/soc/meson/Kconfig b/sound/soc/meson/Kconfig
index 4b06a9e7c72a..10c7d59a5ad1 100644
--- a/sound/soc/meson/Kconfig
+++ b/sound/soc/meson/Kconfig
@@ -85,6 +85,7 @@ config SND_MESON_AXG_SPDIFOUT
 
 config SND_MESON_AXG_SPDIFIN
 	tristate "Amlogic AXG SPDIF Input Support"
+	select REGMAP_MMIO
 	imply SND_SOC_SPDIF
 	help
 	  Select Y or M to add support for SPDIF input embedded
-- 
2.43.0


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH v2 4/4] ASoC: meson: axg-spdifout: select REGMAP_MMIO
  2026-11-09 15:41 [PATCH v2 0/4] ASoC: meson: fix missing REGMAP_MMIO dependencies Jude Gyimah
                   ` (2 preceding siblings ...)
  2026-11-09 15:41 ` [PATCH v2 3/4] ASoC: meson: axg-spdifin: " Jude Gyimah
@ 2026-11-09 15:41 ` Jude Gyimah
  3 siblings, 0 replies; 5+ messages in thread
From: Jude Gyimah @ 2026-11-09 15:41 UTC (permalink / raw)
  To: jbrunet, lgirdwood, broonie, perex, tiwai
  Cc: neil.armstrong, khilman, martin.blumenstingl, linux-sound,
	linux-amlogic, linux-arm-kernel, linux-kernel, Jude Gyimah,
	Valerio Setti

axg-spdifout calls __devm_regmap_init_mmio_clk, which
drivers/base/regmap/regmap-mmio.c provides under REGMAP_MMIO.

  axg-spdifout.c:(.text+0x9c): undefined reference to
    `__devm_regmap_init_mmio_clk'

The driver can be built into vmlinux while REGMAP_MMIO is a module, in
which case the symbol is not there at link time.

Select rather than depend on: REGMAP_MMIO has no prompt of its own and is
only ever enabled by a select, so a depends on would leave
SND_MESON_AXG_SPDIFOUT unselectable.

Reproduced on v7.3, arm64, with CONFIG_SND_MESON_AXG_SPDIFOUT=y and
CONFIG_REGMAP_MMIO=m.

Found with kreach, a static check that compares what Kconfig allows
against the symbols the compiled objects actually reference.

Fixes: 53eb4b7aaa04 ("ASoC: meson: add axg spdif output")
Signed-off-by: Jude Gyimah <jude.gyimah87@gmail.com>
Reviewed-by: Jerome Brunet <jbrunet@baylibre.com>
Reviewed-by: Valerio Setti <vsetti@baylibre.com>
---
 sound/soc/meson/Kconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/sound/soc/meson/Kconfig b/sound/soc/meson/Kconfig
index 10c7d59a5ad1..272639dd8eaf 100644
--- a/sound/soc/meson/Kconfig
+++ b/sound/soc/meson/Kconfig
@@ -76,6 +76,7 @@ config SND_MESON_AXG_SOUND_CARD
 
 config SND_MESON_AXG_SPDIFOUT
 	tristate "Amlogic AXG SPDIF Output Support"
+	select REGMAP_MMIO
 	select SND_PCM_IEC958
 	imply SND_SOC_SPDIF
 	imply COMMON_CLK_AXG_AUDIO
-- 
2.43.0


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2026-11-09 15:41 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-11-09 15:41 [PATCH v2 0/4] ASoC: meson: fix missing REGMAP_MMIO dependencies Jude Gyimah
2026-11-09 15:41 ` [PATCH v2 1/4] ASoC: meson: aiu: select REGMAP_MMIO Jude Gyimah
2026-11-09 15:41 ` [PATCH v2 2/4] ASoC: meson: axg-pdm: " Jude Gyimah
2026-11-09 15:41 ` [PATCH v2 3/4] ASoC: meson: axg-spdifin: " Jude Gyimah
2026-11-09 15:41 ` [PATCH v2 4/4] ASoC: meson: axg-spdifout: " Jude Gyimah

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®