ASoC: bdw-rt5677: add spi driver compile switches
diff mbox series

Message ID 20200103233401.160654-1-cujomalainey@chromium.org
State New
Headers show
Series
  • ASoC: bdw-rt5677: add spi driver compile switches
Related show

Commit Message

Curtis Malainey Jan. 3, 2020, 11:34 p.m. UTC
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(+)

Comments

Pierre-Louis Bossart Jan. 4, 2020, 2:29 a.m. UTC | #1
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 */
>   	{
>
Curtis Malainey Jan. 6, 2020, 8:27 p.m. UTC | #2
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 */
> >       {
> >

Patch
diff mbox series

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 */
 	{