On Thu, 18 Apr 2024 15:24:10 +0200, Pierre-Louis Bossart wrote:
On 4/18/24 05:04, Mauro Carvalho Chehab wrote:
Em Thu, 18 Apr 2024 09:48:27 +0100 Mauro Carvalho Chehab mchehab@kernel.org escreveu:
Newer Matebook D14 model comes with essx8336 and supports SOF, but the initial models use the legacy driver, with a Realtek ALC 256 AC97 chip on it.
The BIOS seems to be prepared to be used by both models, so it contains an entry for ESSX8336 on its DSDT table.
Add a quirk, as otherwise dspconfig driver will try to load SOF, causing audio probe to fail.
Cc: stable@vger.kernel.org Signed-off-by: Mauro Carvalho Chehab mchehab@kernel.org
Worth to mention that I opened an issue on Github about that:
https://github.com/thesofproject/linux/issues/4934
I added there the ACPI DSDT table as a reference.
This sounds like an 'easy enough' fix, but I don't have a burning desire to start adding quirks of this nature. To be clear, the entire support of the ES8336 is an absolute nightmare that I've stopped looking at completely given the lack of support of vendor/OEMs.
In this case, the ACPI table is completely wrong, we should try to 'mark' the ES8336 device as 'not present' or detect the presence of HDaudio.
Andy, what do you think and what would be your recommendation?
This one is still pending, and I'd like to hear the decision from Intel people. Let me know if this hack is acceptable.
thanks,
Takashi
sound/hda/intel-dsp-config.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+)
diff --git a/sound/hda/intel-dsp-config.c b/sound/hda/intel-dsp-config.c index 6a384b922e4f..8e728f0585dd 100644 --- a/sound/hda/intel-dsp-config.c +++ b/sound/hda/intel-dsp-config.c @@ -46,6 +46,22 @@ static const struct snd_soc_acpi_codecs __maybe_unused essx_83x6 = {
- the first successful match will win
*/ static const struct config_entry config_table[] = {
- /* Quirks */
- {
.flags = 0, /* Model uses AC97 with Realtek ALC 256 */
.device = PCI_DEVICE_ID_INTEL_HDA_CML_LP,
.dmi_table = (const struct dmi_system_id []) {
{
.ident = "Huawei NBLB-WAX9N",
.matches = {
DMI_MATCH(DMI_SYS_VENDOR, "HUAWEI"),
DMI_MATCH(DMI_PRODUCT_NAME, "NBLB-WAX9N"),
}
},
{}
}
- },
/* Merrifield */ #if IS_ENABLED(CONFIG_SND_SOC_SOF_MERRIFIELD) {