[alsa-devel] [PATCH] ASoC: SOF: Intel: add PCI ID for CometLake-S

Takashi Iwai tiwai at suse.de
Wed Dec 18 07:32:20 CET 2019


On Wed, 18 Dec 2019 01:50:42 +0100,
Pierre-Louis Bossart wrote:
> 
> 
> >> diff --git a/sound/soc/sof/sof-pci-dev.c b/sound/soc/sof/sof-pci-dev.c
> >> index bbeffd932de7..0b39ea6117cf 100644
> >> --- a/sound/soc/sof/sof-pci-dev.c
> >> +++ b/sound/soc/sof/sof-pci-dev.c
> >> @@ -417,6 +417,10 @@ static const struct pci_device_id sof_pci_ids[] = {
> >>   	{ PCI_DEVICE(0x8086, 0x06c8),
> >>   		.driver_data = (unsigned long)&cml_desc},
> >>   #endif
> >> +#if IS_ENABLED(CONFIG_SND_SOC_SOF_COMETLAKE_S)
> >> +	{ PCI_DEVICE(0x8086, 0xa3f0),
> >> +		.driver_data = (unsigned long)&cml_desc},
> >> +#endif
> >>   #if IS_ENABLED(CONFIG_SND_SOC_SOF_TIGERLAKE)
> >>   	{ PCI_DEVICE(0x8086, 0xa0c8),
> >>   		.driver_data = (unsigned long)&tgl_desc},
> 
> Sorry Takashi, I was checking why this patch wasn't merged and only
> realized now that I missed your feedback (likely an effect of the
> Thanksgiving holiday).
> 
> > I guess the change in ifdef for cml_desc definition is still missing.
> 
> Not sure what change you are referring to?

Take a look at the definition of cml_desc.  It's wrapped with

#if IS_ENABLED(CONFIG_SND_SOC_SOF_COMETLAKE_LP) || \
        IS_ENABLED(CONFIG_SND_SOC_SOF_COMETLAKE_H)

but this wasn't updated for the new COMETLAKE_S.

> > But, I wonder whether it'd be simpler to have Kconfigs only per
> > sof_dev_desc?  That is, have CONFIG_SND_SOC_SOF_COMETLAKE, and all CML
> > model PCI entries are enabled by that as long as they use the same
> > cml_desc definition.
> 
> it's difficult to have a classification that's complete and accurate,
> some PCH versions are reused in products that use a different family
> name. For example you will find the same PCI ID for CNL and WHL, and
> in others the -H, -U and -Y skews are not identical. Even Intel folks
> get lost at times, myself included.
> 
> For now we prefer having one Kconfig per PCI ID, and we try to provide
> a name for the Kconfig that is the most accurate without being
> cryptic. One of the reasons for having different Kconfigs is that we
> have multiple versions of the audio IP, and the ability to narrow the
> selection to a single device helps make sure the code is in the right
> place/module and dependencies are correct.
> 
> > Also, can we reduce even the ifdef around sof_dev_desc definitions by
> > __maybe_unused atttribute?
> 
> Sorry, I am not following your suggestion. I would really like to keep
> the ifdefs for now, and while it can be seen as overkill to have
> descriptors that are identical in some cases the past experience shows
> it's useful when we have to add quirks for specific 'hardware
> recommended programming sequences'.

What I suggested was simple, just dropping ifdef by something like

diff --git a/sound/soc/sof/sof-pci-dev.c b/sound/soc/sof/sof-pci-dev.c
index bbeffd932de7..297632a54f1b 100644
--- a/sound/soc/sof/sof-pci-dev.c
+++ b/sound/soc/sof/sof-pci-dev.c
@@ -36,8 +36,7 @@ MODULE_PARM_DESC(sof_pci_debug, "SOF PCI debug options (0x0 all off)");
 
 #define SOF_PCI_DISABLE_PM_RUNTIME BIT(0)
 
-#if IS_ENABLED(CONFIG_SND_SOC_SOF_APOLLOLAKE)
-static const struct sof_dev_desc bxt_desc = {
+static const struct sof_dev_desc __maybe_unused bxt_desc = {
 	.machines		= snd_soc_acpi_intel_bxt_machines,
 	.resindex_lpe_base	= 0,
 	.resindex_pcicfg_base	= -1,
@@ -52,10 +51,8 @@ static const struct sof_dev_desc bxt_desc = {
 	.ops = &sof_apl_ops,
 	.arch_ops = &sof_xtensa_arch_ops
 };
-#endif
 
-#if IS_ENABLED(CONFIG_SND_SOC_SOF_GEMINILAKE)
-static const struct sof_dev_desc glk_desc = {
+static const struct sof_dev_desc __maybe_unused glk_desc = {
 	.machines		= snd_soc_acpi_intel_glk_machines,
 	.resindex_lpe_base	= 0,
 	.resindex_pcicfg_base	= -1,
@@ -70,10 +67,8 @@ static const struct sof_dev_desc glk_desc = {
 	.ops = &sof_apl_ops,
 	.arch_ops = &sof_xtensa_arch_ops
 };
-#endif
.....
 

Then the issue I pointed above can be solved as well.


thanks,

Takashi


More information about the Alsa-devel mailing list