From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
To: Arnd Bergmann <arnd@arndb.de>
Cc: alsa-devel@alsa-project.org,
Guneshwor Singh <guneshwor.o.singh@intel.com>,
Sriram Periyasamy <sriramx.periyasamy@intel.com>,
Jie Yang <yang.jie@linux.intel.com>,
Takashi Iwai <tiwai@suse.com>,
Liam Girdwood <liam.r.girdwood@linux.intel.com>,
Vinod Koul <vkoul@kernel.org>, Mark Brown <broonie@kernel.org>,
Rakesh Ughreja <rakesh.a.ughreja@intel.com>,
Pankaj Bharadiya <pankaj.laxminarayan.bharadiya@intel.com>,
Naveen Manohar <naveen.m@intel.com>,
Sanyog Kale <sanyog.r.kale@intel.com>,
Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
linux-kernel@vger.kernel.org
Subject: Re: [alsa-devel] [PATCH] ASoC: skl: always select SND_SOC_HDAC_HDA
Date: Sun, 4 Nov 2018 10:45:17 -0600 [thread overview]
Message-ID: <adc83eaa-b7c0-2c76-a434-f1d5872337f6@linux.intel.com> (raw)
In-Reply-To: <CAK8P3a1FCVTuB+ydE6syMHYPWnUW0WTCFDuyMmm35VNnpTTGBw@mail.gmail.com>
On 11/2/18 5:03 PM, Arnd Bergmann wrote:
> On 11/2/18, Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> wrote:
>> On 11/2/18 6:24 AM, Arnd Bergmann wrote:
>>> The skylake sound support is written to work both with or without
>>> CONFIG_SND_SOC_HDAC_HDA, and uses an #ifdef to decide whether it should
>>> link against that. However, this fails with SND_SOC_ALL_CODECS=m or
>>> SND_SOC_INTEL_SKL_HDA_DSP_GENERIC_MACH=m when the Skylake support itself
>>> is built-in, with this link error:
>>>
>>> sound/soc/intel/skylake/skl.o: In function `skl_probe':
>>> skl.c:(.text+0x56c): undefined reference to `snd_soc_hdac_hda_get_ops'
>>>
>>> Using an explicit 'select' here simplifies the logic and prevents
>>> it from happening, at the cost of always including the compile
>>> time dependency.
>> Thanks Arnd for the report. I don't quite agree with the proposal, this
>> should be similar to HDAC_HDMI which is not selected by default, and
>> there's no reason to force the support for HDAudio when the vast
>> majority of Skylake+ devices which enable this driver don't have any
>> HDaudio codec.
> Sure, feel free to treat this patch as a bug report and come up with
> a better fix.
I have to rewind my statement. Arnd is correct, the config cannot be the
same as hdac_hdmi since there is a code dependency I completely missed.
So yes indeed we have to add a select HDAC_HDA statement under the
SKYLAKE config - i just don't know of any other means to say "don't
build HDAC_HDA as a module when SKYLAKE is buit-in"
That said, we can add a condition that will only select HDAC_HDA if
required by the machine drivers selected. The patch below doesn't seem
to have circular dependencies and compiles fine with Arnd's config. I
thought of it while multitasking with "Home IT" work and haven't done
any testing beyond compilation. Arnd, can you give it a spin to see if
this solves the issues?
diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig
index 9cc4f1848c9b..91000924eb7c 100644
--- a/sound/soc/codecs/Kconfig
+++ b/sound/soc/codecs/Kconfig
@@ -627,6 +627,14 @@ config SND_SOC_HDAC_HDA
tristate
select SND_HDA
+config SND_SOC_HDAC_HDA_CODEC
+ bool
+ help
+ This config is set by machine drivers who need SND_SOC_HDAC_HDA,
+ which is selected by the platform drivers (Skylake or SOF) based
+ on the value of this boolean. This indirection is required to deal
+ with a code dependency between platform driver and codec driver.
+
config SND_SOC_ICS43432
tristate
diff --git a/sound/soc/intel/Kconfig b/sound/soc/intel/Kconfig
index 0caa1f4eb94d..25f3bca5e56d 100644
--- a/sound/soc/intel/Kconfig
+++ b/sound/soc/intel/Kconfig
@@ -107,6 +107,7 @@ config SND_SOC_INTEL_SKYLAKE_SSP_CLK
config SND_SOC_INTEL_SKYLAKE
tristate "SKL/BXT/KBL/GLK/CNL... Platforms"
depends on PCI && ACPI
+ select SND_SOC_HDAC_HDA if SND_SOC_HDAC_HDA_CODEC
select SND_HDA_EXT_CORE
select SND_HDA_DSP_LOADER
select SND_SOC_TOPOLOGY
diff --git a/sound/soc/intel/boards/Kconfig b/sound/soc/intel/boards/Kconfig
index 73ca1350aa31..5e7d3f4aa3ff 100644
--- a/sound/soc/intel/boards/Kconfig
+++ b/sound/soc/intel/boards/Kconfig
@@ -296,7 +296,7 @@ config SND_SOC_INTEL_KBL_DA7219_MAX98927_MACH
config SND_SOC_INTEL_SKL_HDA_DSP_GENERIC_MACH
tristate "SKL/KBL/BXT/APL with HDA Codecs"
select SND_SOC_HDAC_HDMI
- select SND_SOC_HDAC_HDA
+ select SND_SOC_HDAC_HDA_CODEC
help
This adds support for ASoC machine driver for Intel platforms
SKL/KBL/BXT/APL with iDisp, HDA audio codecs.
diff --git a/sound/soc/intel/skylake/skl.c b/sound/soc/intel/skylake/skl.c
index 29225623b4b4..e0dda3fd689b 100644
--- a/sound/soc/intel/skylake/skl.c
+++ b/sound/soc/intel/skylake/skl.c
@@ -870,7 +870,7 @@ static int skl_create(struct pci_dev *pci,
hbus = skl_to_hbus(skl);
bus = skl_to_bus(skl);
-#if IS_ENABLED(CONFIG_SND_SOC_HDAC_HDA)
+#if IS_ENABLED(CONFIG_SND_SOC_HDAC_HDA_CODEC)
ext_ops = snd_soc_hdac_hda_get_ops();
#endif
snd_hdac_ext_bus_init(bus, &pci->dev, &bus_core_ops, io_ops,
ext_ops);
next prev parent reply other threads:[~2018-11-04 16:45 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-11-02 11:24 [PATCH] ASoC: skl: always select SND_SOC_HDAC_HDA Arnd Bergmann
2018-11-02 14:56 ` Pierre-Louis Bossart
2018-11-02 22:03 ` Arnd Bergmann
2018-11-04 16:45 ` Pierre-Louis Bossart [this message]
2018-11-05 13:35 ` [alsa-devel] " Andy Shevchenko
2018-11-05 15:07 ` Arnd Bergmann
2018-11-05 15:25 ` Takashi Iwai
2018-11-05 17:18 ` Pierre-Louis Bossart
2018-11-05 20:46 ` Andy Shevchenko
2018-11-05 21:19 ` Arnd Bergmann
2018-11-06 10:10 ` Andy Shevchenko
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=adc83eaa-b7c0-2c76-a434-f1d5872337f6@linux.intel.com \
--to=pierre-louis.bossart@linux.intel.com \
--cc=alsa-devel@alsa-project.org \
--cc=andriy.shevchenko@linux.intel.com \
--cc=arnd@arndb.de \
--cc=broonie@kernel.org \
--cc=guneshwor.o.singh@intel.com \
--cc=liam.r.girdwood@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=naveen.m@intel.com \
--cc=pankaj.laxminarayan.bharadiya@intel.com \
--cc=rakesh.a.ughreja@intel.com \
--cc=sanyog.r.kale@intel.com \
--cc=sriramx.periyasamy@intel.com \
--cc=tiwai@suse.com \
--cc=vkoul@kernel.org \
--cc=yang.jie@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;
as well as URLs for NNTP newsgroup(s).