summaryrefslogtreecommitdiffstats
path: root/sound/soc/codecs/rt5677.c
diff options
context:
space:
mode:
authorArnd Bergmann2015-01-28 22:31:30 +0100
committerMark Brown2015-01-29 12:52:21 +0100
commit4c121129c9dcb43b33d1cd568c8f2636e72597b0 (patch)
tree862bb1ac06bc307cf88a93306dbe4267b472b80e /sound/soc/codecs/rt5677.c
parentASoC: rt5677: Add the slot_width "25" support in the TDM mode (diff)
downloadkernel-qcow2-linux-4c121129c9dcb43b33d1cd568c8f2636e72597b0.tar.gz
kernel-qcow2-linux-4c121129c9dcb43b33d1cd568c8f2636e72597b0.tar.xz
kernel-qcow2-linux-4c121129c9dcb43b33d1cd568c8f2636e72597b0.zip
ASoC: rt5677: fix SPI dependency
The rt5677 codec has gained code that requires SPI to work correctly, but there is no provision in Kconfig to prevent the driver from being used when SPI is disabled or a loadable module, resulting in this build error: sound/built-in.o: In function `rt5677_spi_write': :(.text+0xa7ba0): undefined reference to `spi_sync' sound/built-in.o: In function `rt5677_spi_driver_init': :(.init.text+0x253c): undefined reference to `spi_register_driver' ERROR: "spi_sync" [sound/soc/codecs/snd-soc-rt5677-spi.ko] undefined! ERROR: "spi_register_driver" [sound/soc/codecs/snd-soc-rt5677-spi.ko] undefined! This makes the SPI portion of the driver depend on the SPI subsystem, and disables the function that uses SPI for firmware download if SPI is disabled. The latter may not be the correct solution, but I could not come up with a better one. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Fixes: af48f1d08a54741 ("ASoC: rt5677: Support DSP function for VAD application") Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/codecs/rt5677.c')
-rw-r--r--sound/soc/codecs/rt5677.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sound/soc/codecs/rt5677.c b/sound/soc/codecs/rt5677.c
index 88de759fb7fc..75d2d73be545 100644
--- a/sound/soc/codecs/rt5677.c
+++ b/sound/soc/codecs/rt5677.c
@@ -702,6 +702,9 @@ static int rt5677_set_dsp_vad(struct snd_soc_codec *codec, bool on)
static bool activity;
int ret;
+ if (!IS_ENABLED(CONFIG_SND_SOC_RT5677_SPI))
+ return -ENXIO;
+
if (on && !activity) {
activity = true;