[PATCH 3/3] ASoC: fsl_xcvr: select BITREVERSE
From: Jude Gyimah
Date: Wed Nov 04 2026 - 08:55:36 EST
SND_SOC_FSL_SPDIF, a few stanzas up in the same file, already selects
BITREVERSE for the same reason. SND_SOC_FSL_XCVR is missing it.
fsl_xcvr calls byte_rev_table, which lib/bitrev.c provides under
BITREVERSE.
fsl_xcvr.c:(.text+0x1634): undefined reference to `byte_rev_table'
The driver can be built into vmlinux while GENERIC_BITREVERSE is a module,
in which case the symbol is not there at link time.
Select rather than depend on: BITREVERSE has no prompt of its own and is
only ever enabled by a select, so a depends on would leave
SND_SOC_FSL_XCVR unselectable.
BITREVERSE is the symbol to select rather than GENERIC_BITREVERSE: it
selects GENERIC_BITREVERSE only where the architecture has no native
implementation, so this stays correct on the architectures that do.
Reproduced on v7.3, x86_64, with CONFIG_SND_SOC_FSL_XCVR=y and
CONFIG_GENERIC_BITREVERSE=m.
Found with kreach, a static check that compares what Kconfig allows
against the symbols the compiled objects actually reference.
Fixes: 28564486866f ("ASoC: fsl_xcvr: Add XCVR ASoC CPU DAI driver")
Signed-off-by: Jude Gyimah <jude.gyimah87@xxxxxxxxx>
---
sound/soc/fsl/Kconfig | 1 +
1 file changed, 1 insertion(+)
diff --git a/sound/soc/fsl/Kconfig b/sound/soc/fsl/Kconfig
index 2f58a1a51afd..21b0509da76d 100644
--- a/sound/soc/fsl/Kconfig
+++ b/sound/soc/fsl/Kconfig
@@ -104,6 +104,7 @@ config SND_SOC_FSL_EASRC
config SND_SOC_FSL_XCVR
tristate "NXP Audio Transceiver (XCVR) module support"
+ select BITREVERSE
select REGMAP_MMIO
select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n
select SND_SOC_GENERIC_DMAENGINE_PCM
--
2.43.0