public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
To: Arnd Bergmann <arnd@kernel.org>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Peter Ujfalusi <peter.ujfalusi@linux.intel.com>,
	Bard Liao <yung-chuan.liao@linux.intel.com>,
	Ranjani Sridharan <ranjani.sridharan@linux.intel.com>,
	Daniel Baluta <daniel.baluta@nxp.com>,
	Mark Brown <broonie@kernel.org>
Cc: alsa-devel@alsa-project.org, Arnd Bergmann <arnd@arndb.de>,
	Kai Vehmanen <kai.vehmanen@linux.intel.com>,
	linux-kernel@vger.kernel.org,
	Richard Fitzgerald <rf@opensource.cirrus.com>,
	Takashi Iwai <tiwai@suse.com>, Vinod Koul <vkoul@kernel.org>,
	Sanyog Kale <sanyog.r.kale@intel.com>,
	sound-open-firmware@alsa-project.org
Subject: Re: [PATCH] ASoC: SOF: fix intel-soundwire link failure
Date: Fri, 3 Feb 2023 08:28:21 -0600	[thread overview]
Message-ID: <854f131d-3777-2728-d2fc-4f3cf315a80d@linux.intel.com> (raw)
In-Reply-To: <20230202102247.806749-1-arnd@kernel.org>



On 2/2/23 04:22, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
> 
> My randconfig build setup ran into a rare build failure with
> 
> CONFIG_SND_SOC_SOF_INTEL_SOUNDWIRE_LINK_BASELINE=y
> CONFIG_SND_SOC_SOF_INTEL_SOUNDWIRE=m
> CONFIG_SOUNDWIRE=y
> CONFIG_SOUNDWIRE_INTEL=m
> CONFIG_SND_SOC_SOF_HDA=y
> CONFIG_SND_SOC_SOF_INTEL_TGL=y
> 
> x86_64-linux-ld: sound/soc/sof/intel/hda.o: in function `hda_init_caps':
> hda.c:(.text+0x691): undefined reference to `sdw_intel_cnl_hw_ops'
> x86_64-linux-ld: hda.c:(.text+0x6f2): undefined reference to `sdw_intel_probe'
> x86_64-linux-ld: sound/soc/sof/intel/hda.o: in function `hda_sdw_startup':
> hda.c:(.text+0x1c40): undefined reference to `sdw_intel_startup'
> x86_64-linux-ld: sound/soc/sof/intel/hda.o: in function `hda_sdw_process_wakeen':
> hda.c:(.text+0x1cb6): undefined reference to `sdw_intel_process_wakeen_event'
> x86_64-linux-ld: sound/soc/sof/intel/hda.o: in function `hda_dsp_interrupt_thread':
> hda.c:(.text+0x1d67): undefined reference to `sdw_intel_thread'
> x86_64-linux-ld: sound/soc/sof/intel/hda.o: in function `hda_dsp_remove':
> hda.c:(.text+0x2655): undefined reference to `sdw_intel_exit'
> 
> My best understanding is that the definition of
> SND_SOC_SOF_INTEL_SOUNDWIRE_LINK_BASELINE was intended to avoid this
> problem, but got it wrong for the SND_SOC_SOF_INTEL_SOUNDWIRE=m case,
> where the 'select' is meant to set SOUNDWIRE_INTEL to the value of
> SND_SOC_SOF_INTEL_SOUNDWIRE_LINK_BASELINE rather than the intersection of
> SND_SOC_SOF_INTEL_SOUNDWIRE_LINK_BASELINE and SND_SOC_SOF_INTEL_SOUNDWIRE.
> 
> Change the condition to check for SND_SOC_SOF_INTEL_SOUNDWIRE to be a
> boolean rather than a tristate expression in order to propagate this
> as intended.
> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
> I could not figure out if this is a recent regression or if the
> problem has existed for a long time and is just really hard to
> trigger. I first saw it on linux-next-20230201.
> ---
>  sound/soc/sof/intel/Kconfig | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/sound/soc/sof/intel/Kconfig b/sound/soc/sof/intel/Kconfig
> index 36a0e2bf30ff..715ba8a7f2f8 100644
> --- a/sound/soc/sof/intel/Kconfig
> +++ b/sound/soc/sof/intel/Kconfig
> @@ -322,8 +322,8 @@ config SND_SOC_SOF_HDA_PROBES
>  
>  config SND_SOC_SOF_INTEL_SOUNDWIRE_LINK_BASELINE
>  	tristate
> -	select SOUNDWIRE_INTEL if SND_SOC_SOF_INTEL_SOUNDWIRE
> -	select SND_INTEL_SOUNDWIRE_ACPI if SND_SOC_SOF_INTEL_SOUNDWIRE
> +	select SOUNDWIRE_INTEL if SND_SOC_SOF_INTEL_SOUNDWIRE != n
> +	select SND_INTEL_SOUNDWIRE_ACPI if SND_SOC_SOF_INTEL_SOUNDWIRE != n

I think the problem has been around for a very long time. I can't figure
out what we tried to fix and why the Kconfig is written this way.

We already have this:

config SND_SOC_SOF_INTEL_SOUNDWIRE
	tristate "SOF support for SoundWire"
	default SND_SOC_SOF_INTEL_SOUNDWIRE_LINK_BASELINE
	depends on SND_SOC_SOF_INTEL_SOUNDWIRE_LINK_BASELINE
	depends on ACPI && SOUNDWIRE
	depends on !(SOUNDWIRE=m && SND_SOC_SOF_INTEL_SOUNDWIRE_LINK_BASELINE=y)

We're doing something wrong here if both of the Kconfigs make references
to the value of the other.

The only requirement here is that we want to be able to build if
SoundWire is not enabled. We have a similar requirement for HDaudio, but
for some reason it's only a boolean for HDaudio and a tristate for
SoundWire. I have no idea if it was intentional or not, it's been too
much time already since we looked at this....

  reply	other threads:[~2023-02-03 15:17 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-02 10:22 [PATCH] ASoC: SOF: fix intel-soundwire link failure Arnd Bergmann
2023-02-03 14:28 ` Pierre-Louis Bossart [this message]
2023-02-03 14:56 ` Mark Brown

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=854f131d-3777-2728-d2fc-4f3cf315a80d@linux.intel.com \
    --to=pierre-louis.bossart@linux.intel.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=arnd@arndb.de \
    --cc=arnd@kernel.org \
    --cc=broonie@kernel.org \
    --cc=daniel.baluta@nxp.com \
    --cc=kai.vehmanen@linux.intel.com \
    --cc=lgirdwood@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=peter.ujfalusi@linux.intel.com \
    --cc=ranjani.sridharan@linux.intel.com \
    --cc=rf@opensource.cirrus.com \
    --cc=sanyog.r.kale@intel.com \
    --cc=sound-open-firmware@alsa-project.org \
    --cc=tiwai@suse.com \
    --cc=vkoul@kernel.org \
    --cc=yung-chuan.liao@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox