Message ID | 20200103233401.160654-1-cujomalainey@chromium.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | ASoC: bdw-rt5677: add spi driver compile switches | expand |
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 */ > { >
On Fri, Jan 3, 2020 at 6:29 PM Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> wrote: > > > > 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. > Good point, we should select the dependencies. I commented on your bug as to what the issue might be. > > > > 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 */ > > { > >
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 */ {
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. 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(+)