diff mbox series

ASoC: amd: rt5682: fix soundwire dependencies

Message ID 20200527134151.834555-1-arnd@arndb.de (mailing list archive)
State New, archived
Headers show
Series ASoC: amd: rt5682: fix soundwire dependencies | expand

Commit Message

Arnd Bergmann May 27, 2020, 1:41 p.m. UTC
A built-in SND_SOC_AMD_RV_RT5682_MACH driver can not select
SND_SOC_RT5682 when that is linking against a modular soundwire
layer:

WARNING: unmet direct dependencies detected for SND_SOC_RT5682
  Depends on [m]: SOUND [=y] && !UML && SND [=y] && SND_SOC [=y] && (I2C [=y] || SOUNDWIRE [=m]) && (SOUNDWIRE [=m] || !SOUNDWIRE [=m]) && (I2C [=y] || !I2C [=y])
  Selected by [y]:
  - SND_SOC_AMD_RV_RT5682_MACH [=y] && SOUND [=y] && !UML && SND [=y] && SND_SOC [=y] && SND_SOC_AMD_ACP3x [=y] && I2C [=y] && CROS_EC [=y]
  Selected by [m]:
  - SND_SOC_RT5682_SDW [=m] && SOUND [=y] && !UML && SND [=y] && SND_SOC [=y] && SOUNDWIRE [=m] && (I2C [=y] || !I2C [=y])

This one is a bit awkward because the AMD driver itself has no interest
in soundwire, but I could not come up with a cleaner workaround so far.

Maybe the SND_SOC_RT5682 driver itself can be reworked so that
the common part depends on neither soundwire nor i2c and the two
bus specific options can be loadable modules when the common part
is built-in.

Fixes: 6b8e4e7db3cd ("ASoC: amd: Add machine driver for Raven based platform")
Fixes: fd443a20c2f0 ("ASoC: rt5682: fix I2C/Soundwire dependencies")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 sound/soc/amd/Kconfig | 1 +
 1 file changed, 1 insertion(+)

Comments

Mark Brown May 27, 2020, 1:47 p.m. UTC | #1
On Wed, May 27, 2020 at 03:41:26PM +0200, Arnd Bergmann wrote:

> Maybe the SND_SOC_RT5682 driver itself can be reworked so that
> the common part depends on neither soundwire nor i2c and the two
> bus specific options can be loadable modules when the common part
> is built-in.

Yes, please do that.
Arnd Bergmann May 27, 2020, 3:59 p.m. UTC | #2
On Wed, May 27, 2020 at 3:47 PM Mark Brown <broonie@kernel.org> wrote:
>
> On Wed, May 27, 2020 at 03:41:26PM +0200, Arnd Bergmann wrote:
>
> > Maybe the SND_SOC_RT5682 driver itself can be reworked so that
> > the common part depends on neither soundwire nor i2c and the two
> > bus specific options can be loadable modules when the common part
> > is built-in.
>
> Yes, please do that.

It took me longer than I thought it would, but I have a patch now.
I'll send it after it passes more randconfig builds to ensure it covers
all corner cases.

      Arnd
diff mbox series

Patch

diff --git a/sound/soc/amd/Kconfig b/sound/soc/amd/Kconfig
index 77ffdb41bee5..878cf97b050e 100644
--- a/sound/soc/amd/Kconfig
+++ b/sound/soc/amd/Kconfig
@@ -34,6 +34,7 @@  config SND_SOC_AMD_RV_RT5682_MACH
 	select SND_SOC_CROS_EC_CODEC
 	select I2C_CROS_EC_TUNNEL
 	depends on SND_SOC_AMD_ACP3x && I2C && CROS_EC
+	depends on SOUNDWIRE || !SOUNDWIRE
 	help
 	 This option enables machine driver for RT5682 and MAX9835.