alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
* SoF support for 8086:9d71?
@ 2020-12-14 16:51 Kai-Heng Feng
  2020-12-14 19:33 ` [Sound-open-firmware] " Pierre-Louis Bossart
  0 siblings, 1 reply; 11+ messages in thread
From: Kai-Heng Feng @ 2020-12-14 16:51 UTC (permalink / raw)
  To: sound-open-firmware; +Cc: SOUND

Hi,

On more recent kernels legacy HDA stops working for device 8086:9d71:
[   47.211381] snd_hda_intel 0000:00:1f.3: DSP detected with PCI 
class/subclass/prog-if info 0x040100
[   47.211383] snd_hda_intel 0000:00:1f.3: Digital mics found on 
Skylake+ platform, using SST driver

However, only legacy HDA supports it:
00:1f.3 Multimedia audio controller [0401]: Intel Corporation Sunrise 
Point-LP HD Audio [8086:9d71] (rev 21)
..
	Kernel modules: snd_hda_intel

Ubuntu kernel doesn't select SND_SOC_INTEL_SKYLAKE, which builds 
snd-soc-skl, because based on the Kconfig description SOF should 
support it.

I wonder if SND_SOC_INTEL_SKYLAKE should be select again?

BugLink: <https://bugs.launchpad.net/bugs/1902457>


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Sound-open-firmware] SoF support for 8086:9d71?
  2020-12-14 16:51 SoF support for 8086:9d71? Kai-Heng Feng
@ 2020-12-14 19:33 ` Pierre-Louis Bossart
  2020-12-15  3:54   ` Kai-Heng Feng
  0 siblings, 1 reply; 11+ messages in thread
From: Pierre-Louis Bossart @ 2020-12-14 19:33 UTC (permalink / raw)
  To: Kai-Heng Feng, sound-open-firmware; +Cc: SOUND


> On more recent kernels legacy HDA stops working for device 8086:9d71:
> [   47.211381] snd_hda_intel 0000:00:1f.3: DSP detected with PCI 
> class/subclass/prog-if info 0x040100
> [   47.211383] snd_hda_intel 0000:00:1f.3: Digital mics found on 
> Skylake+ platform, using SST driver
> 
> However, only legacy HDA supports it:
> 00:1f.3 Multimedia audio controller [0401]: Intel Corporation Sunrise 
> Point-LP HD Audio [8086:9d71] (rev 21)
> ..
>      Kernel modules: snd_hda_intel
> 
> Ubuntu kernel doesn't select SND_SOC_INTEL_SKYLAKE, which builds 
> snd-soc-skl, because based on the Kconfig description SOF should support 
> it.
> 
> I wonder if SND_SOC_INTEL_SKYLAKE should be select again?

SOF does not support Skylake and Kabylake, and only the Up2 board for 
APL. I am not sure what you mean by 'recent' kernels since this dynamic 
selection has been in place for a year now?

At any rate, to make this work again:

1. You can select SND_SOC_INTEL_SKYLAKE or alternatively to be more 
accurate:

SND_SOC_INTEL_SKL
SND_SOC_INTEL_APL
SND_SOC_INTEL_KBL

There are known issues with Conexant codecs, typically on HP devices, 
only Realtek codecs are supported.

2. In addition you will need to have the topology for SKL/KBL w/ HDaudio 
codecs. It's in alsa-topology-conf but would need to be compiled and 
installed.

3. UCM files should be already handled in alsa-ucm-conf	

Hope this helps
-Pierre

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Sound-open-firmware] SoF support for 8086:9d71?
  2020-12-14 19:33 ` [Sound-open-firmware] " Pierre-Louis Bossart
@ 2020-12-15  3:54   ` Kai-Heng Feng
  2020-12-15 17:21     ` Pierre-Louis Bossart
  0 siblings, 1 reply; 11+ messages in thread
From: Kai-Heng Feng @ 2020-12-15  3:54 UTC (permalink / raw)
  To: Pierre-Louis Bossart; +Cc: SOUND, sound-open-firmware



On Mon, Dec 14, 2020 at 13:33, Pierre-Louis Bossart 
<pierre-louis.bossart@linux.intel.com> wrote:
> 
>> On more recent kernels legacy HDA stops working for device 8086:9d71:
>> [   47.211381] snd_hda_intel 0000:00:1f.3: DSP detected with PCI 
>> \x7fclass/subclass/prog-if info 0x040100
>> [   47.211383] snd_hda_intel 0000:00:1f.3: Digital mics found on 
>> \x7fSkylake+ platform, using SST driver
>> 
>> However, only legacy HDA supports it:
>> 00:1f.3 Multimedia audio controller [0401]: Intel Corporation 
>> Sunrise \x7fPoint-LP HD Audio [8086:9d71] (rev 21)
>> ..
>>      Kernel modules: snd_hda_intel
>> 
>> Ubuntu kernel doesn't select SND_SOC_INTEL_SKYLAKE, which builds 
>> \x7fsnd-soc-skl, because based on the Kconfig description SOF should 
>> support \x7fit.
>> 
>> I wonder if SND_SOC_INTEL_SKYLAKE should be select again?
> 
> SOF does not support Skylake and Kabylake, and only the Up2 board for 
> APL. I am not sure what you mean by 'recent' kernels since this 
> dynamic selection has been in place for a year now?

Ubuntu kernel only changed this in 20.10 release.

> 
> At any rate, to make this work again:
> 
> 1. You can select SND_SOC_INTEL_SKYLAKE or alternatively to be more 
> accurate:
> 
> SND_SOC_INTEL_SKL
> SND_SOC_INTEL_APL
> SND_SOC_INTEL_KBL
> 
> There are known issues with Conexant codecs, typically on HP devices, 
> only Realtek codecs are supported.

Right, so we can't really enable this for generic distros like Ubuntu.

Let me think of a more generic solution.

Kai-Heng

> 
> 2. In addition you will need to have the topology for SKL/KBL w/ 
> HDaudio codecs. It's in alsa-topology-conf but would need to be 
> compiled and installed.
> 
> 3. UCM files should be already handled in alsa-ucm-conf
> 
> Hope this helps
> -Pierre


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Sound-open-firmware] SoF support for 8086:9d71?
  2020-12-15  3:54   ` Kai-Heng Feng
@ 2020-12-15 17:21     ` Pierre-Louis Bossart
  2020-12-15 17:48       ` Amadeusz Sławiński
  0 siblings, 1 reply; 11+ messages in thread
From: Pierre-Louis Bossart @ 2020-12-15 17:21 UTC (permalink / raw)
  To: Kai-Heng Feng; +Cc: SOUND, sound-open-firmware



On 12/14/20 9:54 PM, Kai-Heng Feng wrote:
> 
> 
> On Mon, Dec 14, 2020 at 13:33, Pierre-Louis Bossart 
> <pierre-louis.bossart@linux.intel.com> wrote:
>>
>>> On more recent kernels legacy HDA stops working for device 8086:9d71:
>>> [   47.211381] snd_hda_intel 0000:00:1f.3: DSP detected with PCI 
>>> \x7fclass/subclass/prog-if info 0x040100
>>> [   47.211383] snd_hda_intel 0000:00:1f.3: Digital mics found on 
>>> \x7fSkylake+ platform, using SST driver
>>>
>>> However, only legacy HDA supports it:
>>> 00:1f.3 Multimedia audio controller [0401]: Intel Corporation 
>>> Sunrise \x7fPoint-LP HD Audio [8086:9d71] (rev 21)
>>> ..
>>>      Kernel modules: snd_hda_intel
>>>
>>> Ubuntu kernel doesn't select SND_SOC_INTEL_SKYLAKE, which builds 
>>> \x7fsnd-soc-skl, because based on the Kconfig description SOF should 
>>> support \x7fit.
>>>
>>> I wonder if SND_SOC_INTEL_SKYLAKE should be select again?
>>
>> SOF does not support Skylake and Kabylake, and only the Up2 board for 
>> APL. I am not sure what you mean by 'recent' kernels since this 
>> dynamic selection has been in place for a year now?
> 
> Ubuntu kernel only changed this in 20.10 release.
> 
>>
>> At any rate, to make this work again:
>>
>> 1. You can select SND_SOC_INTEL_SKYLAKE or alternatively to be more 
>> accurate:
>>
>> SND_SOC_INTEL_SKL
>> SND_SOC_INTEL_APL
>> SND_SOC_INTEL_KBL
>>
>> There are known issues with Conexant codecs, typically on HP devices, 
>> only Realtek codecs are supported.
> 
> Right, so we can't really enable this for generic distros like Ubuntu.
> 
> Let me think of a more generic solution.

Re-thinking about this, I actually don't know how this problem occurred:
the tables are conditionally built so you would only select SST if you 
had the drivers compiled in.

see sound/hda/intel-dsp-config.c:

/* Kabylake-LP */
#if IS_ENABLED(CONFIG_SND_SOC_INTEL_KBL)
	{
		.flags = FLAG_SST,
		.device = 0x9d71,
		.dmi_table = (const struct dmi_system_id []) {
			{
				.ident = "Google Chromebooks",
				.matches = {
					DMI_MATCH(DMI_SYS_VENDOR, "Google"),
				}
			},
			{}
		}
	},
	{
		.flags = FLAG_SST | FLAG_SST_ONLY_IF_DMIC,
		.device = 0x9d71,
	},
#endif

Something's not adding up here.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Sound-open-firmware] SoF support for 8086:9d71?
  2020-12-15 17:21     ` Pierre-Louis Bossart
@ 2020-12-15 17:48       ` Amadeusz Sławiński
  2020-12-15 17:53         ` Kai-Heng Feng
  0 siblings, 1 reply; 11+ messages in thread
From: Amadeusz Sławiński @ 2020-12-15 17:48 UTC (permalink / raw)
  To: Pierre-Louis Bossart, Kai-Heng Feng; +Cc: SOUND, sound-open-firmware

On 12/15/2020 6:21 PM, Pierre-Louis Bossart wrote:
> 
> 
> On 12/14/20 9:54 PM, Kai-Heng Feng wrote:
>>
>>
>> On Mon, Dec 14, 2020 at 13:33, Pierre-Louis Bossart 
>> <pierre-louis.bossart@linux.intel.com> wrote:
>>>
>>>> On more recent kernels legacy HDA stops working for device 8086:9d71:
>>>> [   47.211381] snd_hda_intel 0000:00:1f.3: DSP detected with PCI 
>>>> \x7fclass/subclass/prog-if info 0x040100
>>>> [   47.211383] snd_hda_intel 0000:00:1f.3: Digital mics found on 
>>>> \x7fSkylake+ platform, using SST driver
>>>>
>>>> However, only legacy HDA supports it:
>>>> 00:1f.3 Multimedia audio controller [0401]: Intel Corporation 
>>>> Sunrise \x7fPoint-LP HD Audio [8086:9d71] (rev 21)
>>>> ..
>>>>      Kernel modules: snd_hda_intel
>>>>
>>>> Ubuntu kernel doesn't select SND_SOC_INTEL_SKYLAKE, which builds 
>>>> \x7fsnd-soc-skl, because based on the Kconfig description SOF should 
>>>> support \x7fit.
>>>>
>>>> I wonder if SND_SOC_INTEL_SKYLAKE should be select again?
>>>
>>> SOF does not support Skylake and Kabylake, and only the Up2 board for 
>>> APL. I am not sure what you mean by 'recent' kernels since this 
>>> dynamic selection has been in place for a year now?
>>
>> Ubuntu kernel only changed this in 20.10 release.
>>
>>>
>>> At any rate, to make this work again:
>>>
>>> 1. You can select SND_SOC_INTEL_SKYLAKE or alternatively to be more 
>>> accurate:
>>>
>>> SND_SOC_INTEL_SKL
>>> SND_SOC_INTEL_APL
>>> SND_SOC_INTEL_KBL
>>>
>>> There are known issues with Conexant codecs, typically on HP devices, 
>>> only Realtek codecs are supported.
>>
>> Right, so we can't really enable this for generic distros like Ubuntu.
>>
>> Let me think of a more generic solution.
> 
> Re-thinking about this, I actually don't know how this problem occurred:
> the tables are conditionally built so you would only select SST if you 
> had the drivers compiled in.
> 
> see sound/hda/intel-dsp-config.c:
> 
> /* Kabylake-LP */
> #if IS_ENABLED(CONFIG_SND_SOC_INTEL_KBL)
>      {
>          .flags = FLAG_SST,
>          .device = 0x9d71,
>          .dmi_table = (const struct dmi_system_id []) {
>              {
>                  .ident = "Google Chromebooks",
>                  .matches = {
>                      DMI_MATCH(DMI_SYS_VENDOR, "Google"),
>                  }
>              },
>              {}
>          }
>      },
>      {
>          .flags = FLAG_SST | FLAG_SST_ONLY_IF_DMIC,
>          .device = 0x9d71,
>      },
> #endif
> 
> Something's not adding up here.

Seems like you can enable CONFIG_SND_SOC_INTEL_KBL (and all other 
platforms), without enabling CONFIG_SND_SOC_INTEL_SKYLAKE, which enables 
building of snd_soc_skl module... I would say that there is something 
wrong with module dependencies in Kconfig :/
Will look at it tomorrow. In the meantime any chance we can get the 
config which was used, to confirm my suspicion?

Thanks,
Amadeusz

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Sound-open-firmware] SoF support for 8086:9d71?
  2020-12-15 17:48       ` Amadeusz Sławiński
@ 2020-12-15 17:53         ` Kai-Heng Feng
  2020-12-15 17:59           ` Pierre-Louis Bossart
  0 siblings, 1 reply; 11+ messages in thread
From: Kai-Heng Feng @ 2020-12-15 17:53 UTC (permalink / raw)
  To: Amadeusz Sławiński
  Cc: SOUND, Pierre-Louis Bossart, sound-open-firmware

On Wed, Dec 16, 2020 at 1:48 AM Amadeusz Sławiński
<amadeuszx.slawinski@linux.intel.com> wrote:
>
> On 12/15/2020 6:21 PM, Pierre-Louis Bossart wrote:
> >
> >
> > On 12/14/20 9:54 PM, Kai-Heng Feng wrote:
> >>
> >>
> >> On Mon, Dec 14, 2020 at 13:33, Pierre-Louis Bossart
> >> <pierre-louis.bossart@linux.intel.com> wrote:
> >>>
> >>>> On more recent kernels legacy HDA stops working for device 8086:9d71:
> >>>> [   47.211381] snd_hda_intel 0000:00:1f.3: DSP detected with PCI
> >>>>  class/subclass/prog-if info 0x040100
> >>>> [   47.211383] snd_hda_intel 0000:00:1f.3: Digital mics found on
> >>>>  Skylake+ platform, using SST driver
> >>>>
> >>>> However, only legacy HDA supports it:
> >>>> 00:1f.3 Multimedia audio controller [0401]: Intel Corporation
> >>>> Sunrise  Point-LP HD Audio [8086:9d71] (rev 21)
> >>>> ..
> >>>>      Kernel modules: snd_hda_intel
> >>>>
> >>>> Ubuntu kernel doesn't select SND_SOC_INTEL_SKYLAKE, which builds
> >>>>  snd-soc-skl, because based on the Kconfig description SOF should
> >>>> support  it.
> >>>>
> >>>> I wonder if SND_SOC_INTEL_SKYLAKE should be select again?
> >>>
> >>> SOF does not support Skylake and Kabylake, and only the Up2 board for
> >>> APL. I am not sure what you mean by 'recent' kernels since this
> >>> dynamic selection has been in place for a year now?
> >>
> >> Ubuntu kernel only changed this in 20.10 release.
> >>
> >>>
> >>> At any rate, to make this work again:
> >>>
> >>> 1. You can select SND_SOC_INTEL_SKYLAKE or alternatively to be more
> >>> accurate:
> >>>
> >>> SND_SOC_INTEL_SKL
> >>> SND_SOC_INTEL_APL
> >>> SND_SOC_INTEL_KBL
> >>>
> >>> There are known issues with Conexant codecs, typically on HP devices,
> >>> only Realtek codecs are supported.
> >>
> >> Right, so we can't really enable this for generic distros like Ubuntu.
> >>
> >> Let me think of a more generic solution.
> >
> > Re-thinking about this, I actually don't know how this problem occurred:
> > the tables are conditionally built so you would only select SST if you
> > had the drivers compiled in.
> >
> > see sound/hda/intel-dsp-config.c:
> >
> > /* Kabylake-LP */
> > #if IS_ENABLED(CONFIG_SND_SOC_INTEL_KBL)
> >      {
> >          .flags = FLAG_SST,
> >          .device = 0x9d71,
> >          .dmi_table = (const struct dmi_system_id []) {
> >              {
> >                  .ident = "Google Chromebooks",
> >                  .matches = {
> >                      DMI_MATCH(DMI_SYS_VENDOR, "Google"),
> >                  }
> >              },
> >              {}
> >          }
> >      },
> >      {
> >          .flags = FLAG_SST | FLAG_SST_ONLY_IF_DMIC,
> >          .device = 0x9d71,
> >      },
> > #endif
> >
> > Something's not adding up here.
>
> Seems like you can enable CONFIG_SND_SOC_INTEL_KBL (and all other
> platforms), without enabling CONFIG_SND_SOC_INTEL_SKYLAKE, which enables
> building of snd_soc_skl module... I would say that there is something
> wrong with module dependencies in Kconfig :/

Yes that's exactly what happened here.
So I wonder why we need to separate CONFIG_SND_SOC_INTEL_SKYLAKE from
other configs...

> Will look at it tomorrow. In the meantime any chance we can get the
> config which was used, to confirm my suspicion?

Ubuntu 5.8 kernel has this:
# CONFIG_SND_SOC_INTEL_SKYLAKE is not set
CONFIG_SND_SOC_INTEL_SKL=m
CONFIG_SND_SOC_INTEL_APL=m
CONFIG_SND_SOC_INTEL_KBL=m
CONFIG_SND_SOC_INTEL_GLK=m
# CONFIG_SND_SOC_INTEL_CNL is not set
# CONFIG_SND_SOC_INTEL_CFL is not set
# CONFIG_SND_SOC_INTEL_CML_H is not set
# CONFIG_SND_SOC_INTEL_CML_LP is not set
CONFIG_SND_SOC_INTEL_SKYLAKE_FAMILY=m
CONFIG_SND_SOC_INTEL_SKYLAKE_SSP_CLK=m
# CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC is not set
CONFIG_SND_SOC_INTEL_SKYLAKE_COMMON=m

So I guess we can do something like this?
diff --git a/sound/hda/intel-dsp-config.c b/sound/hda/intel-dsp-config.c
index 1c5114dedda9..c8142520532e 100644
--- a/sound/hda/intel-dsp-config.c
+++ b/sound/hda/intel-dsp-config.c
@@ -417,7 +417,7 @@ int snd_intel_dsp_driver_probe(struct pci_dev *pci)
                        return SND_INTEL_DSP_DRIVER_SOF;
        }

-
+#if IS_REACHABLE(CONFIG_SND_SOC_INTEL_SKYLAKE)
        if (cfg->flags & FLAG_SST) {
                if (cfg->flags & FLAG_SST_ONLY_IF_DMIC) {
                        if (snd_intel_dsp_check_dmic(pci)) {
@@ -428,6 +428,7 @@ int snd_intel_dsp_driver_probe(struct pci_dev *pci)
                        return SND_INTEL_DSP_DRIVER_SST;
                }
        }
+#endif

        return SND_INTEL_DSP_DRIVER_LEGACY;
 }

Kai-Heng

>
> Thanks,
> Amadeusz

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [Sound-open-firmware] SoF support for 8086:9d71?
  2020-12-15 17:53         ` Kai-Heng Feng
@ 2020-12-15 17:59           ` Pierre-Louis Bossart
  2020-12-16  3:55             ` Kai-Heng Feng
  0 siblings, 1 reply; 11+ messages in thread
From: Pierre-Louis Bossart @ 2020-12-15 17:59 UTC (permalink / raw)
  To: Kai-Heng Feng, Amadeusz Sławiński; +Cc: SOUND, sound-open-firmware



>>> Something's not adding up here.
>>
>> Seems like you can enable CONFIG_SND_SOC_INTEL_KBL (and all other
>> platforms), without enabling CONFIG_SND_SOC_INTEL_SKYLAKE, which enables
>> building of snd_soc_skl module... I would say that there is something
>> wrong with module dependencies in Kconfig :/

rather the Makefile is wrong, see below.

> 
> Yes that's exactly what happened here.
> So I wonder why we need to separate CONFIG_SND_SOC_INTEL_SKYLAKE from
> other configs...
> 
>> Will look at it tomorrow. In the meantime any chance we can get the
>> config which was used, to confirm my suspicion?
> 
> Ubuntu 5.8 kernel has this:
> # CONFIG_SND_SOC_INTEL_SKYLAKE is not set
> CONFIG_SND_SOC_INTEL_SKL=m
> CONFIG_SND_SOC_INTEL_APL=m
> CONFIG_SND_SOC_INTEL_KBL=m
> CONFIG_SND_SOC_INTEL_GLK=m
> # CONFIG_SND_SOC_INTEL_CNL is not set
> # CONFIG_SND_SOC_INTEL_CFL is not set
> # CONFIG_SND_SOC_INTEL_CML_H is not set
> # CONFIG_SND_SOC_INTEL_CML_LP is not set
> CONFIG_SND_SOC_INTEL_SKYLAKE_FAMILY=m
> CONFIG_SND_SOC_INTEL_SKYLAKE_SSP_CLK=m
> # CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC is not set

that would be needed to support DMIC+HDaudio platforms (with the 
Connexant restriction).

> CONFIG_SND_SOC_INTEL_SKYLAKE_COMMON=m
> 
> So I guess we can do something like this?
> diff --git a/sound/hda/intel-dsp-config.c b/sound/hda/intel-dsp-config.c
> index 1c5114dedda9..c8142520532e 100644
> --- a/sound/hda/intel-dsp-config.c
> +++ b/sound/hda/intel-dsp-config.c
> @@ -417,7 +417,7 @@ int snd_intel_dsp_driver_probe(struct pci_dev *pci)
>                          return SND_INTEL_DSP_DRIVER_SOF;
>          }
> 
> -
> +#if IS_REACHABLE(CONFIG_SND_SOC_INTEL_SKYLAKE)
>          if (cfg->flags & FLAG_SST) {
>                  if (cfg->flags & FLAG_SST_ONLY_IF_DMIC) {
>                          if (snd_intel_dsp_check_dmic(pci)) {
> @@ -428,6 +428,7 @@ int snd_intel_dsp_driver_probe(struct pci_dev *pci)
>                          return SND_INTEL_DSP_DRIVER_SST;
>                  }
>          }
> +#endif
> 
>          return SND_INTEL_DSP_DRIVER_LEGACY;
>   }
> 
> Kai-Heng

Can you try this instead, the dependencies are indeed wrong in the Makefile:

diff --git a/sound/soc/intel/Makefile b/sound/soc/intel/Makefile
index 4e0248d2accc..7c5038803be7 100644
--- a/sound/soc/intel/Makefile
+++ b/sound/soc/intel/Makefile
@@ -5,7 +5,7 @@ obj-$(CONFIG_SND_SOC) += common/
  # Platform Support
  obj-$(CONFIG_SND_SST_ATOM_HIFI2_PLATFORM) += atom/
  obj-$(CONFIG_SND_SOC_INTEL_CATPT) += catpt/
-obj-$(CONFIG_SND_SOC_INTEL_SKYLAKE) += skylake/
+obj-$(CONFIG_SND_SOC_INTEL_SKYLAKE_COMMON) += skylake/
  obj-$(CONFIG_SND_SOC_INTEL_KEEMBAY) += keembay/

  # Machine support



^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [Sound-open-firmware] SoF support for 8086:9d71?
  2020-12-15 17:59           ` Pierre-Louis Bossart
@ 2020-12-16  3:55             ` Kai-Heng Feng
  2020-12-17  8:25               ` Kai-Heng Feng
  0 siblings, 1 reply; 11+ messages in thread
From: Kai-Heng Feng @ 2020-12-16  3:55 UTC (permalink / raw)
  To: Pierre-Louis Bossart
  Cc: SOUND, sound-open-firmware, Amadeusz Sławiński

On Wed, Dec 16, 2020 at 1:59 AM Pierre-Louis Bossart
<pierre-louis.bossart@linux.intel.com> wrote:
>
>
>
> >>> Something's not adding up here.
> >>
> >> Seems like you can enable CONFIG_SND_SOC_INTEL_KBL (and all other
> >> platforms), without enabling CONFIG_SND_SOC_INTEL_SKYLAKE, which enables
> >> building of snd_soc_skl module... I would say that there is something
> >> wrong with module dependencies in Kconfig :/
>
> rather the Makefile is wrong, see below.
>
> >
> > Yes that's exactly what happened here.
> > So I wonder why we need to separate CONFIG_SND_SOC_INTEL_SKYLAKE from
> > other configs...
> >
> >> Will look at it tomorrow. In the meantime any chance we can get the
> >> config which was used, to confirm my suspicion?
> >
> > Ubuntu 5.8 kernel has this:
> > # CONFIG_SND_SOC_INTEL_SKYLAKE is not set
> > CONFIG_SND_SOC_INTEL_SKL=m
> > CONFIG_SND_SOC_INTEL_APL=m
> > CONFIG_SND_SOC_INTEL_KBL=m
> > CONFIG_SND_SOC_INTEL_GLK=m
> > # CONFIG_SND_SOC_INTEL_CNL is not set
> > # CONFIG_SND_SOC_INTEL_CFL is not set
> > # CONFIG_SND_SOC_INTEL_CML_H is not set
> > # CONFIG_SND_SOC_INTEL_CML_LP is not set
> > CONFIG_SND_SOC_INTEL_SKYLAKE_FAMILY=m
> > CONFIG_SND_SOC_INTEL_SKYLAKE_SSP_CLK=m
> > # CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC is not set
>
> that would be needed to support DMIC+HDaudio platforms (with the
> Connexant restriction).

So should I enable this option? Is it safe for platforms with Connexant codec?

>
> > CONFIG_SND_SOC_INTEL_SKYLAKE_COMMON=m
> >
> > So I guess we can do something like this?
> > diff --git a/sound/hda/intel-dsp-config.c b/sound/hda/intel-dsp-config.c
> > index 1c5114dedda9..c8142520532e 100644
> > --- a/sound/hda/intel-dsp-config.c
> > +++ b/sound/hda/intel-dsp-config.c
> > @@ -417,7 +417,7 @@ int snd_intel_dsp_driver_probe(struct pci_dev *pci)
> >                          return SND_INTEL_DSP_DRIVER_SOF;
> >          }
> >
> > -
> > +#if IS_REACHABLE(CONFIG_SND_SOC_INTEL_SKYLAKE)
> >          if (cfg->flags & FLAG_SST) {
> >                  if (cfg->flags & FLAG_SST_ONLY_IF_DMIC) {
> >                          if (snd_intel_dsp_check_dmic(pci)) {
> > @@ -428,6 +428,7 @@ int snd_intel_dsp_driver_probe(struct pci_dev *pci)
> >                          return SND_INTEL_DSP_DRIVER_SST;
> >                  }
> >          }
> > +#endif
> >
> >          return SND_INTEL_DSP_DRIVER_LEGACY;
> >   }
> >
> > Kai-Heng
>
> Can you try this instead, the dependencies are indeed wrong in the Makefile:

Ok, compiling a kernel for user to test...

Kai-Heng

>
> diff --git a/sound/soc/intel/Makefile b/sound/soc/intel/Makefile
> index 4e0248d2accc..7c5038803be7 100644
> --- a/sound/soc/intel/Makefile
> +++ b/sound/soc/intel/Makefile
> @@ -5,7 +5,7 @@ obj-$(CONFIG_SND_SOC) += common/
>   # Platform Support
>   obj-$(CONFIG_SND_SST_ATOM_HIFI2_PLATFORM) += atom/
>   obj-$(CONFIG_SND_SOC_INTEL_CATPT) += catpt/
> -obj-$(CONFIG_SND_SOC_INTEL_SKYLAKE) += skylake/
> +obj-$(CONFIG_SND_SOC_INTEL_SKYLAKE_COMMON) += skylake/
>   obj-$(CONFIG_SND_SOC_INTEL_KEEMBAY) += keembay/
>
>   # Machine support
>
>

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Sound-open-firmware] SoF support for 8086:9d71?
  2020-12-16  3:55             ` Kai-Heng Feng
@ 2020-12-17  8:25               ` Kai-Heng Feng
  2021-01-12 13:25                 ` Amadeusz Sławiński
  0 siblings, 1 reply; 11+ messages in thread
From: Kai-Heng Feng @ 2020-12-17  8:25 UTC (permalink / raw)
  To: Pierre-Louis Bossart
  Cc: SOUND, sound-open-firmware, Amadeusz Sławiński

On Wed, Dec 16, 2020 at 11:55 AM Kai-Heng Feng
<kai.heng.feng@canonical.com> wrote:
>
> On Wed, Dec 16, 2020 at 1:59 AM Pierre-Louis Bossart
> <pierre-louis.bossart@linux.intel.com> wrote:
> >
> >
> >
> > >>> Something's not adding up here.
> > >>
> > >> Seems like you can enable CONFIG_SND_SOC_INTEL_KBL (and all other
> > >> platforms), without enabling CONFIG_SND_SOC_INTEL_SKYLAKE, which enables
> > >> building of snd_soc_skl module... I would say that there is something
> > >> wrong with module dependencies in Kconfig :/
> >
> > rather the Makefile is wrong, see below.
> >
> > >
> > > Yes that's exactly what happened here.
> > > So I wonder why we need to separate CONFIG_SND_SOC_INTEL_SKYLAKE from
> > > other configs...
> > >
> > >> Will look at it tomorrow. In the meantime any chance we can get the
> > >> config which was used, to confirm my suspicion?
> > >
> > > Ubuntu 5.8 kernel has this:
> > > # CONFIG_SND_SOC_INTEL_SKYLAKE is not set
> > > CONFIG_SND_SOC_INTEL_SKL=m
> > > CONFIG_SND_SOC_INTEL_APL=m
> > > CONFIG_SND_SOC_INTEL_KBL=m
> > > CONFIG_SND_SOC_INTEL_GLK=m
> > > # CONFIG_SND_SOC_INTEL_CNL is not set
> > > # CONFIG_SND_SOC_INTEL_CFL is not set
> > > # CONFIG_SND_SOC_INTEL_CML_H is not set
> > > # CONFIG_SND_SOC_INTEL_CML_LP is not set
> > > CONFIG_SND_SOC_INTEL_SKYLAKE_FAMILY=m
> > > CONFIG_SND_SOC_INTEL_SKYLAKE_SSP_CLK=m
> > > # CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC is not set
> >
> > that would be needed to support DMIC+HDaudio platforms (with the
> > Connexant restriction).
>
> So should I enable this option? Is it safe for platforms with Connexant codec?
>
> >
> > > CONFIG_SND_SOC_INTEL_SKYLAKE_COMMON=m
> > >
> > > So I guess we can do something like this?
> > > diff --git a/sound/hda/intel-dsp-config.c b/sound/hda/intel-dsp-config.c
> > > index 1c5114dedda9..c8142520532e 100644
> > > --- a/sound/hda/intel-dsp-config.c
> > > +++ b/sound/hda/intel-dsp-config.c
> > > @@ -417,7 +417,7 @@ int snd_intel_dsp_driver_probe(struct pci_dev *pci)
> > >                          return SND_INTEL_DSP_DRIVER_SOF;
> > >          }
> > >
> > > -
> > > +#if IS_REACHABLE(CONFIG_SND_SOC_INTEL_SKYLAKE)
> > >          if (cfg->flags & FLAG_SST) {
> > >                  if (cfg->flags & FLAG_SST_ONLY_IF_DMIC) {
> > >                          if (snd_intel_dsp_check_dmic(pci)) {
> > > @@ -428,6 +428,7 @@ int snd_intel_dsp_driver_probe(struct pci_dev *pci)
> > >                          return SND_INTEL_DSP_DRIVER_SST;
> > >                  }
> > >          }
> > > +#endif
> > >
> > >          return SND_INTEL_DSP_DRIVER_LEGACY;
> > >   }
> > >
> > > Kai-Heng
> >
> > Can you try this instead, the dependencies are indeed wrong in the Makefile:
>
> Ok, compiling a kernel for user to test...

Well, this happens:
ERROR: modpost: "skl_dsp_set_dma_control"
[sound/soc/intel/skylake/snd-soc-skl-ssp-clk.ko] undefined!
make[1]: *** [scripts/Makefile.modpost:111: sound/Module.symvers] Error 1
make[1]: *** Deleting file 'sound/Module.symvers'
make: *** [Makefile:1709: modules] Error 2

Kai-Heng

>
> Kai-Heng
>
> >
> > diff --git a/sound/soc/intel/Makefile b/sound/soc/intel/Makefile
> > index 4e0248d2accc..7c5038803be7 100644
> > --- a/sound/soc/intel/Makefile
> > +++ b/sound/soc/intel/Makefile
> > @@ -5,7 +5,7 @@ obj-$(CONFIG_SND_SOC) += common/
> >   # Platform Support
> >   obj-$(CONFIG_SND_SST_ATOM_HIFI2_PLATFORM) += atom/
> >   obj-$(CONFIG_SND_SOC_INTEL_CATPT) += catpt/
> > -obj-$(CONFIG_SND_SOC_INTEL_SKYLAKE) += skylake/
> > +obj-$(CONFIG_SND_SOC_INTEL_SKYLAKE_COMMON) += skylake/
> >   obj-$(CONFIG_SND_SOC_INTEL_KEEMBAY) += keembay/
> >
> >   # Machine support
> >
> >

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Sound-open-firmware] SoF support for 8086:9d71?
  2020-12-17  8:25               ` Kai-Heng Feng
@ 2021-01-12 13:25                 ` Amadeusz Sławiński
       [not found]                   ` <CAAd53p7OHhqXDJDuEamXwfseXiUdGfDsJhNJbdUYo_4uoBdzdQ@mail.gmail.com>
  0 siblings, 1 reply; 11+ messages in thread
From: Amadeusz Sławiński @ 2021-01-12 13:25 UTC (permalink / raw)
  To: Kai-Heng Feng, Pierre-Louis Bossart; +Cc: SOUND, sound-open-firmware

On 12/17/2020 9:25 AM, Kai-Heng Feng wrote:
(...)
>>>
>>> Can you try this instead, the dependencies are indeed wrong in the Makefile:
>>
>> Ok, compiling a kernel for user to test...
> 
> Well, this happens:
> ERROR: modpost: "skl_dsp_set_dma_control"
> [sound/soc/intel/skylake/snd-soc-skl-ssp-clk.ko] undefined!
> make[1]: *** [scripts/Makefile.modpost:111: sound/Module.symvers] Error 1
> make[1]: *** Deleting file 'sound/Module.symvers'
> make: *** [Makefile:1709: modules] Error 2
> 
> Kai-Heng
> 
>>
>> Kai-Heng
>>
>>>
>>> diff --git a/sound/soc/intel/Makefile b/sound/soc/intel/Makefile
>>> index 4e0248d2accc..7c5038803be7 100644
>>> --- a/sound/soc/intel/Makefile
>>> +++ b/sound/soc/intel/Makefile
>>> @@ -5,7 +5,7 @@ obj-$(CONFIG_SND_SOC) += common/
>>>    # Platform Support
>>>    obj-$(CONFIG_SND_SST_ATOM_HIFI2_PLATFORM) += atom/
>>>    obj-$(CONFIG_SND_SOC_INTEL_CATPT) += catpt/
>>> -obj-$(CONFIG_SND_SOC_INTEL_SKYLAKE) += skylake/
>>> +obj-$(CONFIG_SND_SOC_INTEL_SKYLAKE_COMMON) += skylake/
>>>    obj-$(CONFIG_SND_SOC_INTEL_KEEMBAY) += keembay/
>>>
>>>    # Machine support
>>>
>>>

Hi,

what is the status of this issue?
Does it now work with usptream kernel?
Can you provide full .config, so we can test on our side?

Amadeusz

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Sound-open-firmware] SoF support for 8086:9d71?
       [not found]                   ` <CAAd53p7OHhqXDJDuEamXwfseXiUdGfDsJhNJbdUYo_4uoBdzdQ@mail.gmail.com>
@ 2021-01-13 13:44                     ` Amadeusz Sławiński
  0 siblings, 0 replies; 11+ messages in thread
From: Amadeusz Sławiński @ 2021-01-13 13:44 UTC (permalink / raw)
  To: Kai-Heng Feng
  Cc: SOUND, Pierre-Louis Bossart,
	moderated list:SOUND - SOUND OPEN FIRMWARE (SOF) DRIVERS

On 1/13/2021 5:48 AM, Kai-Heng Feng wrote:
> On Tue, Jan 12, 2021 at 9:25 PM Amadeusz Sławiński
> <amadeuszx.slawinski@linux.intel.com> wrote:
>>
>> On 12/17/2020 9:25 AM, Kai-Heng Feng wrote:
>> (...)
>>>>>
>>>>> Can you try this instead, the dependencies are indeed wrong in the Makefile:
>>>>
>>>> Ok, compiling a kernel for user to test...
>>>
>>> Well, this happens:
>>> ERROR: modpost: "skl_dsp_set_dma_control"
>>> [sound/soc/intel/skylake/snd-soc-skl-ssp-clk.ko] undefined!
>>> make[1]: *** [scripts/Makefile.modpost:111: sound/Module.symvers] Error 1
>>> make[1]: *** Deleting file 'sound/Module.symvers'
>>> make: *** [Makefile:1709: modules] Error 2
>>>
>>> Kai-Heng
>>>
>>>>
>>>> Kai-Heng
>>>>
>>>>>
>>>>> diff --git a/sound/soc/intel/Makefile b/sound/soc/intel/Makefile
>>>>> index 4e0248d2accc..7c5038803be7 100644
>>>>> --- a/sound/soc/intel/Makefile
>>>>> +++ b/sound/soc/intel/Makefile
>>>>> @@ -5,7 +5,7 @@ obj-$(CONFIG_SND_SOC) += common/
>>>>>     # Platform Support
>>>>>     obj-$(CONFIG_SND_SST_ATOM_HIFI2_PLATFORM) += atom/
>>>>>     obj-$(CONFIG_SND_SOC_INTEL_CATPT) += catpt/
>>>>> -obj-$(CONFIG_SND_SOC_INTEL_SKYLAKE) += skylake/
>>>>> +obj-$(CONFIG_SND_SOC_INTEL_SKYLAKE_COMMON) += skylake/
>>>>>     obj-$(CONFIG_SND_SOC_INTEL_KEEMBAY) += keembay/
>>>>>
>>>>>     # Machine support
>>>>>
>>>>>
>>
>> Hi,
>>
>> what is the status of this issue?
> 
> Still the same, unresolved.
> 
>> Does it now work with usptream kernel?
> 
> No it doesn't.
> 

Can you try with following patch:

diff --git a/sound/soc/intel/Makefile b/sound/soc/intel/Makefile
index 4e0248d2accc..7c5038803be7 100644
--- a/sound/soc/intel/Makefile
+++ b/sound/soc/intel/Makefile
@@ -5,7 +5,7 @@ obj-$(CONFIG_SND_SOC) += common/
  # Platform Support
  obj-$(CONFIG_SND_SST_ATOM_HIFI2_PLATFORM) += atom/
  obj-$(CONFIG_SND_SOC_INTEL_CATPT) += catpt/
-obj-$(CONFIG_SND_SOC_INTEL_SKYLAKE) += skylake/
+obj-$(CONFIG_SND_SOC_INTEL_SKYLAKE_COMMON) += skylake/
  obj-$(CONFIG_SND_SOC_INTEL_KEEMBAY) += keembay/

  # Machine support
diff --git a/sound/soc/intel/skylake/Makefile 
b/sound/soc/intel/skylake/Makefile
index dd39149b89b1..1c4649bccec5 100644
--- a/sound/soc/intel/skylake/Makefile
+++ b/sound/soc/intel/skylake/Makefile
@@ -7,7 +7,7 @@ ifdef CONFIG_DEBUG_FS
    snd-soc-skl-objs += skl-debug.o
  endif

-obj-$(CONFIG_SND_SOC_INTEL_SKYLAKE) += snd-soc-skl.o
+obj-$(CONFIG_SND_SOC_INTEL_SKYLAKE_COMMON) += snd-soc-skl.o

  #Skylake Clock device support
  snd-soc-skl-ssp-clk-objs := skl-ssp-clk.o

^ permalink raw reply related	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2021-01-13 13:46 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-12-14 16:51 SoF support for 8086:9d71? Kai-Heng Feng
2020-12-14 19:33 ` [Sound-open-firmware] " Pierre-Louis Bossart
2020-12-15  3:54   ` Kai-Heng Feng
2020-12-15 17:21     ` Pierre-Louis Bossart
2020-12-15 17:48       ` Amadeusz Sławiński
2020-12-15 17:53         ` Kai-Heng Feng
2020-12-15 17:59           ` Pierre-Louis Bossart
2020-12-16  3:55             ` Kai-Heng Feng
2020-12-17  8:25               ` Kai-Heng Feng
2021-01-12 13:25                 ` Amadeusz Sławiński
     [not found]                   ` <CAAd53p7OHhqXDJDuEamXwfseXiUdGfDsJhNJbdUYo_4uoBdzdQ@mail.gmail.com>
2021-01-13 13:44                     ` Amadeusz Sławiński

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).