On 1/3/20 5:34 PM, Curtis Malainey wrote:
If the SPI driver is not compiled in then the RT5677_SPI driver will not be included as well which will cause the bdw-rt5677 driver to fail to probe since the DSP components are managed by the RT5677_SPI driver. The solution is to remove them when the driver is not present as part of the build.
it should be the other way around, this machine driver should have a dependency on SPI and select RT5677_SPI?
That said, even with this fix, I still see issues, somehow the spi-RT5677AA component does not probe/register, see https://github.com/thesofproject/linux/pull/1659
There must be an additional issue with SPI support here.
Signed-off-by: Curtis Malainey cujomalainey@chromium.org Cc: Pierre-Louis Bossart pierre-louis.bossart@linux.intel.com CC: Pan Xiuli xiuli.pan@linux.intel.com
sound/soc/intel/boards/bdw-rt5677.c | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/sound/soc/intel/boards/bdw-rt5677.c b/sound/soc/intel/boards/bdw-rt5677.c index 2af8e5a62da84..d5ded2c545d2c 100644 --- a/sound/soc/intel/boards/bdw-rt5677.c +++ b/sound/soc/intel/boards/bdw-rt5677.c @@ -74,11 +74,13 @@ static const struct snd_soc_dapm_route bdw_rt5677_map[] = { /* CODEC BE connections */ {"SSP0 CODEC IN", NULL, "AIF1 Capture"}, {"AIF1 Playback", NULL, "SSP0 CODEC OUT"}, +#if IS_ENABLED(CONFIG_SND_SOC_RT5677_SPI) {"DSP Capture", NULL, "DSP Buffer"},
/* DSP Clock Connections */ { "DSP Buffer", NULL, "SSP0 CODEC IN" }, { "SSP0 CODEC IN", NULL, "DSPTX" }, +#endif };
static const struct snd_kcontrol_new bdw_rt5677_controls[] = { @@ -319,6 +321,7 @@ static struct snd_soc_dai_link bdw_rt5677_dais[] = { SND_SOC_DAILINK_REG(fe, dummy, platform), },
+#if IS_ENABLED(CONFIG_SND_SOC_RT5677_SPI) /* Non-DPCM links */ { .name = "Codec DSP", @@ -326,6 +329,7 @@ static struct snd_soc_dai_link bdw_rt5677_dais[] = { .ops = &bdw_rt5677_dsp_ops, SND_SOC_DAILINK_REG(dsp), }, +#endif
/* Back End DAI links */ {