mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH 0/5] ASoC: rockchip: fix missing REGMAP_MMIO dependencies
@ 2026-11-03 13:25 Jude Gyimah
  2026-11-03 13:25 ` [PATCH 1/5] ASoC: rockchip_i2s: select REGMAP_MMIO Jude Gyimah
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Jude Gyimah @ 2026-11-03 13:25 UTC (permalink / raw)
  To: lgirdwood, broonie, perex, tiwai, heiko
  Cc: linux-sound, 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 5 drivers, so they are here as one series.

Affected: rockchip_i2s, rockchip_i2s_tdm, rockchip_pdm, rockchip_sai,
rockchip_spdif.

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, x86_64, 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/.

Jude Gyimah (5):
  ASoC: rockchip_i2s: select REGMAP_MMIO
  ASoC: rockchip_i2s_tdm: select REGMAP_MMIO
  ASoC: rockchip_pdm: select REGMAP_MMIO
  ASoC: rockchip_sai: select REGMAP_MMIO
  ASoC: rockchip_spdif: select REGMAP_MMIO

 sound/soc/rockchip/Kconfig | 5 +++++
 1 file changed, 5 insertions(+)

-- 
2.43.0


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

* [PATCH 1/5] ASoC: rockchip_i2s: select REGMAP_MMIO
  2026-11-03 13:25 [PATCH 0/5] ASoC: rockchip: fix missing REGMAP_MMIO dependencies Jude Gyimah
@ 2026-11-03 13:25 ` Jude Gyimah
  2026-11-03 13:25 ` [PATCH 2/5] ASoC: rockchip_i2s_tdm: " Jude Gyimah
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Jude Gyimah @ 2026-11-03 13:25 UTC (permalink / raw)
  To: lgirdwood, broonie, perex, tiwai, heiko
  Cc: linux-sound, linux-arm-kernel, linux-kernel, Jude Gyimah

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

  rockchip_i2s.c:(.text+0x418): 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_SOC_ROCKCHIP_I2S unselectable.

Reproduced on v7.3, x86_64, with CONFIG_SND_SOC_ROCKCHIP_I2S=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: 4495c89fcf26 ("ASoC: add driver for Rockchip RK3xxx I2S controller")
Signed-off-by: Jude Gyimah <jude.gyimah87@gmail.com>
---
 sound/soc/rockchip/Kconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/sound/soc/rockchip/Kconfig b/sound/soc/rockchip/Kconfig
index 391ce2225fde..d7ec1fbe17a5 100644
--- a/sound/soc/rockchip/Kconfig
+++ b/sound/soc/rockchip/Kconfig
@@ -5,6 +5,7 @@ menu "Rockchip"
 
 config SND_SOC_ROCKCHIP_I2S
 	tristate "Rockchip I2S Device Driver"
+	select REGMAP_MMIO
 	select SND_SOC_GENERIC_DMAENGINE_PCM
 	help
 	  Say Y or M if you want to add support for I2S driver for
-- 
2.43.0


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

* [PATCH 2/5] ASoC: rockchip_i2s_tdm: select REGMAP_MMIO
  2026-11-03 13:25 [PATCH 0/5] ASoC: rockchip: fix missing REGMAP_MMIO dependencies Jude Gyimah
  2026-11-03 13:25 ` [PATCH 1/5] ASoC: rockchip_i2s: select REGMAP_MMIO Jude Gyimah
@ 2026-11-03 13:25 ` Jude Gyimah
  2026-11-03 13:25 ` [PATCH 3/5] ASoC: rockchip_pdm: " Jude Gyimah
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Jude Gyimah @ 2026-11-03 13:25 UTC (permalink / raw)
  To: lgirdwood, broonie, perex, tiwai, heiko
  Cc: linux-sound, linux-arm-kernel, linux-kernel, Jude Gyimah

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

  rockchip_i2s_tdm.c:1304:(.text+0x14b1b6): 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_SOC_ROCKCHIP_I2S_TDM unselectable.

Reproduced on v7.3, x86_64, with CONFIG_SND_SOC_ROCKCHIP_I2S_TDM=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: 081068fd6414 ("ASoC: rockchip: add support for i2s-tdm controller")
Signed-off-by: Jude Gyimah <jude.gyimah87@gmail.com>
---
 sound/soc/rockchip/Kconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/sound/soc/rockchip/Kconfig b/sound/soc/rockchip/Kconfig
index d7ec1fbe17a5..0f8ef6868356 100644
--- a/sound/soc/rockchip/Kconfig
+++ b/sound/soc/rockchip/Kconfig
@@ -14,6 +14,7 @@ config SND_SOC_ROCKCHIP_I2S
 
 config SND_SOC_ROCKCHIP_I2S_TDM
 	tristate "Rockchip I2S/TDM Device Driver"
+	select REGMAP_MMIO
 	select SND_SOC_GENERIC_DMAENGINE_PCM
 	help
 	  Say Y or M if you want to add support for the I2S/TDM driver for
-- 
2.43.0


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

* [PATCH 3/5] ASoC: rockchip_pdm: select REGMAP_MMIO
  2026-11-03 13:25 [PATCH 0/5] ASoC: rockchip: fix missing REGMAP_MMIO dependencies Jude Gyimah
  2026-11-03 13:25 ` [PATCH 1/5] ASoC: rockchip_i2s: select REGMAP_MMIO Jude Gyimah
  2026-11-03 13:25 ` [PATCH 2/5] ASoC: rockchip_i2s_tdm: " Jude Gyimah
@ 2026-11-03 13:25 ` Jude Gyimah
  2026-11-03 13:25 ` [PATCH 4/5] ASoC: rockchip_sai: " Jude Gyimah
  2026-11-03 13:25 ` [PATCH 5/5] ASoC: rockchip_spdif: " Jude Gyimah
  4 siblings, 0 replies; 6+ messages in thread
From: Jude Gyimah @ 2026-11-03 13:25 UTC (permalink / raw)
  To: lgirdwood, broonie, perex, tiwai, heiko
  Cc: linux-sound, linux-arm-kernel, linux-kernel, Jude Gyimah

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

  rockchip_pdm.c:(.text+0xef4): 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_SOC_ROCKCHIP_PDM unselectable.

Reproduced on v7.3, x86_64, with CONFIG_SND_SOC_ROCKCHIP_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: fc05a5b22253 ("ASoC: rockchip: add support for pdm controller")
Signed-off-by: Jude Gyimah <jude.gyimah87@gmail.com>
---
 sound/soc/rockchip/Kconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/sound/soc/rockchip/Kconfig b/sound/soc/rockchip/Kconfig
index 0f8ef6868356..e0ded1fa4da5 100644
--- a/sound/soc/rockchip/Kconfig
+++ b/sound/soc/rockchip/Kconfig
@@ -25,6 +25,7 @@ config SND_SOC_ROCKCHIP_I2S_TDM
 
 config SND_SOC_ROCKCHIP_PDM
 	tristate "Rockchip PDM Controller Driver"
+	select REGMAP_MMIO
 	select SND_SOC_GENERIC_DMAENGINE_PCM
 	select RATIONAL
 	help
-- 
2.43.0


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

* [PATCH 4/5] ASoC: rockchip_sai: select REGMAP_MMIO
  2026-11-03 13:25 [PATCH 0/5] ASoC: rockchip: fix missing REGMAP_MMIO dependencies Jude Gyimah
                   ` (2 preceding siblings ...)
  2026-11-03 13:25 ` [PATCH 3/5] ASoC: rockchip_pdm: " Jude Gyimah
@ 2026-11-03 13:25 ` Jude Gyimah
  2026-11-03 13:25 ` [PATCH 5/5] ASoC: rockchip_spdif: " Jude Gyimah
  4 siblings, 0 replies; 6+ messages in thread
From: Jude Gyimah @ 2026-11-03 13:25 UTC (permalink / raw)
  To: lgirdwood, broonie, perex, tiwai, heiko
  Cc: linux-sound, linux-arm-kernel, linux-kernel, Jude Gyimah

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

  rockchip_sai.c:1424:(.text+0x153060): 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_SOC_ROCKCHIP_SAI unselectable.

Reproduced on v7.3, x86_64, with CONFIG_SND_SOC_ROCKCHIP_SAI=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: cc78d1eaabad ("ASoC: rockchip: add Serial Audio Interface (SAI) driver")
Signed-off-by: Jude Gyimah <jude.gyimah87@gmail.com>
---
 sound/soc/rockchip/Kconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/sound/soc/rockchip/Kconfig b/sound/soc/rockchip/Kconfig
index e0ded1fa4da5..aba9a518d3b2 100644
--- a/sound/soc/rockchip/Kconfig
+++ b/sound/soc/rockchip/Kconfig
@@ -35,6 +35,7 @@ config SND_SOC_ROCKCHIP_PDM
 
 config SND_SOC_ROCKCHIP_SAI
 	tristate "Rockchip SAI Controller Driver"
+	select REGMAP_MMIO
 	select SND_SOC_GENERIC_DMAENGINE_PCM
 	help
 	  Say Y or M if you want to add support for the Rockchip Serial Audio
-- 
2.43.0


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

* [PATCH 5/5] ASoC: rockchip_spdif: select REGMAP_MMIO
  2026-11-03 13:25 [PATCH 0/5] ASoC: rockchip: fix missing REGMAP_MMIO dependencies Jude Gyimah
                   ` (3 preceding siblings ...)
  2026-11-03 13:25 ` [PATCH 4/5] ASoC: rockchip_sai: " Jude Gyimah
@ 2026-11-03 13:25 ` Jude Gyimah
  4 siblings, 0 replies; 6+ messages in thread
From: Jude Gyimah @ 2026-11-03 13:25 UTC (permalink / raw)
  To: lgirdwood, broonie, perex, tiwai, heiko
  Cc: linux-sound, linux-arm-kernel, linux-kernel, Jude Gyimah

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

  rockchip_spdif.c:(.text+0xf67): 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_SOC_ROCKCHIP_SPDIF unselectable.

Reproduced on v7.3, x86_64, with CONFIG_SND_SOC_ROCKCHIP_SPDIF=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: f874b80e1571 ("ASoC: rockchip: Add rockchip SPDIF transceiver driver")
Signed-off-by: Jude Gyimah <jude.gyimah87@gmail.com>
---
 sound/soc/rockchip/Kconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/sound/soc/rockchip/Kconfig b/sound/soc/rockchip/Kconfig
index aba9a518d3b2..0e5110125c14 100644
--- a/sound/soc/rockchip/Kconfig
+++ b/sound/soc/rockchip/Kconfig
@@ -45,6 +45,7 @@ config SND_SOC_ROCKCHIP_SAI
 
 config SND_SOC_ROCKCHIP_SPDIF
 	tristate "Rockchip SPDIF Device Driver"
+	select REGMAP_MMIO
 	select SND_PCM_IEC958
 	select SND_SOC_GENERIC_DMAENGINE_PCM
 	help
-- 
2.43.0


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

end of thread, other threads:[~2026-11-03 13:26 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-11-03 13:25 [PATCH 0/5] ASoC: rockchip: fix missing REGMAP_MMIO dependencies Jude Gyimah
2026-11-03 13:25 ` [PATCH 1/5] ASoC: rockchip_i2s: select REGMAP_MMIO Jude Gyimah
2026-11-03 13:25 ` [PATCH 2/5] ASoC: rockchip_i2s_tdm: " Jude Gyimah
2026-11-03 13:25 ` [PATCH 3/5] ASoC: rockchip_pdm: " Jude Gyimah
2026-11-03 13:25 ` [PATCH 4/5] ASoC: rockchip_sai: " Jude Gyimah
2026-11-03 13:25 ` [PATCH 5/5] ASoC: rockchip_spdif: " 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®