[PATCH 3/5] ASoC: Intel: add machine driver for SOF+ES8336
Mauro Carvalho Chehab
mchehab at kernel.org
Thu Dec 23 13:38:19 CET 2021
Em Thu, 23 Dec 2021 12:45:15 +0100
Mauro Carvalho Chehab <mchehab at kernel.org> escreveu:
> Hi Pierre-Louis,
>
> Em Mon, 22 Nov 2021 10:45:35 -0600
> Pierre-Louis Bossart <pierre-louis.bossart at linux.intel.com> escreveu:
>
> > Hi Mauro,
> >
> > >> Add machine driver to support APL/GLK/TGL platforms.
> > >> The TGL platform supports DMIC, APL and GLK do not.
> > >
> > > I just bought a Comet Lake notebook with ES8336, but I'm having a hard
> > > time to make audio work on it.
> >
> > Yes, we're aware of this design and we've tried to help. There's a
> > series of devices based on this I2C/I2S device, which is the exception
> > to the rule that all Windows-based designs are based on HDaudio or
> > SoundWire. Intel wasn't informed of this device so we we've added quirks
> > device after device, as bug reports came in.
> >
> > The CometLake enablement is tracked at
> > https://github.com/thesofproject/linux/issues/3248
> >
> > I will upstream the two quirks for CometLake later today.
> >
> > The latest hacky recipe to get the driver to probe is at
> > https://github.com/thesofproject/linux/pull/3107
> >
> > There is still work to do for the 'topology' part. The comment
> > https://github.com/thesofproject/linux/issues/3248#issuecomment-959573378 has
> > a tar file with 3 possible options for the I2S/SSP connection.
> >
> > The remaining part will be the codec driver, which is problematic for
> > now, we're still waiting for updates from the vendor and it's unclear
> > if/when they will be submitted.
>
> Sorry for taking a long time to answer. I lost access to the notebook,
> due to a travel.
>
> I applied all "es8336" branches from your tree altogether:
>
> 8af10fc5d7f4 (HEAD) Merge remote-tracking branch 'plbossart/fix/es8336-codec' into HEAD
> f47dc3daf1da Merge remote-tracking branch 'plbossart/fix/es8336-cml' into HEAD
> b8df4ae02c0a Merge remote-tracking branch 'plbossart/fix/es8336-acpi-hid' into HEAD
> 5e149dc4d6e9 (plbossart/fix/sof-es8336-quirk) fixup! ALSA: intel-nhlt: add helper to detect SSP link mask
>
> Unfortunately, it is failing to modprobe the SOF driver:
>
> [ 3.479810] snd_hda_intel 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100
> [ 3.479828] snd_hda_intel 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver
> [ 3.479830] [681] snd_hda_intel 0000:00:1f.3: HDAudio driver not selected, aborting probe
> [ 3.655569] snd_soc_skl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100
> [ 3.655587] snd_soc_skl 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver
> [ 3.706810] RPC: Registered named UNIX socket transport module.
> [ 3.730708] sof-audio-pci-intel-cnl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100
> [ 3.730728] sof-audio-pci-intel-cnl 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver
> [ 3.730952] sof-audio-pci-intel-cnl 0000:00:1f.3: enabling device (0000 -> 0002)
> [ 3.731103] sof-audio-pci-intel-cnl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100
> [ 3.731204] sof-audio-pci-intel-cnl 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
> [ 3.741143] sof-audio-pci-intel-cnl 0000:00:1f.3: use msi interrupt mode
> [ 3.791894] [80] sof-audio-pci-intel-cnl 0000:00:1f.3: intel_nhlt_get_dmic_geo: found 2 format definitions
> [ 3.791898] [80] sof-audio-pci-intel-cnl 0000:00:1f.3: intel_nhlt_get_dmic_geo: max channels found 2
> [ 3.791900] [80] sof-audio-pci-intel-cnl 0000:00:1f.3: intel_nhlt_get_dmic_geo: Array with 2 dmics
> [ 3.791902] [80] sof-audio-pci-intel-cnl 0000:00:1f.3: intel_nhlt_get_dmic_geo: dmic number 2 max_ch 2
> [ 3.791904] sof-audio-pci-intel-cnl 0000:00:1f.3: hda codecs found, mask 4
> [ 3.793102] sof-audio-pci-intel-cnl 0000:00:1f.3: Firmware info: version 1:9:2-e096c
> [ 3.793108] sof-audio-pci-intel-cnl 0000:00:1f.3: Firmware: ABI 3:20:0 Kernel ABI 3:18:0
> [ 3.793110] sof-audio-pci-intel-cnl 0000:00:1f.3: warn: FW ABI is more recent than kernel
> [ 3.793114] sof-audio-pci-intel-cnl 0000:00:1f.3: unknown sof_ext_man header type 3 size 0x30
> [ 3.852602] Bluetooth: BNEP socket layer initialized
> [ 3.891581] sof-audio-pci-intel-cnl 0000:00:1f.3: Firmware info: version 1:9:2-e096c
> [ 3.891585] sof-audio-pci-intel-cnl 0000:00:1f.3: Firmware: ABI 3:20:0 Kernel ABI 3:18:0
> [ 3.891588] sof-audio-pci-intel-cnl 0000:00:1f.3: warn: FW ABI is more recent than kernel
> [ 3.901310] sof-essx8336 sof-essx8336: quirk SSP2
> [ 3.903162] sof-audio-pci-intel-cnl 0000:00:1f.3: Topology: ABI 3:20:0 Kernel ABI 3:18:0
> [ 3.903167] sof-audio-pci-intel-cnl 0000:00:1f.3: warn: topology ABI is more recent than kernel
> [ 3.903180] sof-audio-pci-intel-cnl 0000:00:1f.3: error: can't connect DAI SSP0.OUT stream SSP0-Codec
> [ 3.903182] sof-audio-pci-intel-cnl 0000:00:1f.3: error: failed to add widget id 0 type 27 name : SSP0.OUT stream SSP0-Codec
> [ 3.903184] sof-essx8336 sof-essx8336: ASoC: failed to load widget SSP0.OUT
> [ 3.903185] sof-essx8336 sof-essx8336: ASoC: topology: could not load header: -22
> [ 3.903187] sof-audio-pci-intel-cnl 0000:00:1f.3: error: tplg component load failed -22
> [ 3.903191] sof-audio-pci-intel-cnl 0000:00:1f.3: error: failed to load DSP topology -22
> [ 3.903193] sof-audio-pci-intel-cnl 0000:00:1f.3: ASoC: error at snd_soc_component_probe on 0000:00:1f.3: -22
> [ 3.903201] sof-essx8336 sof-essx8336: ASoC: failed to instantiate card -22
> [ 3.903302] sof-essx8336 sof-essx8336: snd_soc_register_card failed: -22
> [ 3.903304] sof-essx8336: probe of sof-essx8336 failed with error -22
>
> Any hints about how to fix the topology issues on it?
Adding a quirk to modprobe partially solved the issue:
https://github.com/thesofproject/linux/issues/3248#issuecomment-1000275241
With that, the speaker is now working fine, but microphone is marked
as unavailable, and headphones aren't working yet.
Thanks,
Mauro
More information about the Alsa-devel
mailing list