Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Unverified Commit c5630877 authored by Arnd Bergmann's avatar Arnd Bergmann Committed by Mark Brown
Browse files

ASoC: rt5514: work around link error



The main rt5514 driver optionally calls into the SPI back-end to load
the firmware. This causes a link error when one driver selects rt5514
as built-in and another driver selects rt5514-spi as a loadable module:

sound/soc/codecs/rt5514.o: In function `rt5514_dsp_voice_wake_up_put':
rt5514.c:(.text+0xac8): undefined reference to `rt5514_spi_burst_write'

As a workaround, this adds another silent symbol, to force rt5514-spi
to be built-in for that configuration. I'm not overly happy with
that solution, but couldn't come up with anything better. Using
'IS_REACHABLE()' would break the case that relies on the loadable
module, and all other ideas would result in more complexity.

Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 7e6358ec
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -749,6 +749,10 @@ config SND_SOC_RT5514
config SND_SOC_RT5514_SPI
	tristate

config SND_SOC_RT5514_SPI_BUILTIN
	bool # force RT5514_SPI to be built-in to avoid link errors
	default SND_SOC_RT5514=y && SND_SOC_RT5514_SPI=m

config SND_SOC_RT5616
	tristate "Realtek RT5616 CODEC"
	depends on I2C
+1 −0
Original line number Diff line number Diff line
@@ -359,6 +359,7 @@ obj-$(CONFIG_SND_SOC_RT286) += snd-soc-rt286.o
obj-$(CONFIG_SND_SOC_RT298)	+= snd-soc-rt298.o
obj-$(CONFIG_SND_SOC_RT5514)	+= snd-soc-rt5514.o
obj-$(CONFIG_SND_SOC_RT5514_SPI)	+= snd-soc-rt5514-spi.o
obj-$(CONFIG_SND_SOC_RT5514_SPI_BUILTIN)	+= snd-soc-rt5514-spi.o
obj-$(CONFIG_SND_SOC_RT5616)	+= snd-soc-rt5616.o
obj-$(CONFIG_SND_SOC_RT5631)	+= snd-soc-rt5631.o
obj-$(CONFIG_SND_SOC_RT5640)	+= snd-soc-rt5640.o