Message ID | 20240812045325.47736-1-jlobue10@gmail.com |
---|---|
State | Accepted |
Commit | ebfb5a57caa4e2e2203883ac6669bf8a294e7c89 |
Headers | show |
Series | ALSA: hda/realtek: tas2781: Fix ROG ALLY X audio | expand |
On 15/8/24 19:58, Antheas Kapenekakis wrote: > Hi everyone, > I created the following Draft MR for the Ally firmware files: > https://gitlab.com/kernel-firmware/linux-firmware/-/merge_requests/272 > > Please comment on it at your leisure. I will remove the Draft status once > all the sign-off members verify it for correctness. > > @Shenghao: can you restate publicly the license of the firmware files and if > there are no issues, sign-off on the MR? > > Best, > Antheas The firmware is now finally merged upstream: https://gitlab.com/kernel-firmware/linux-firmware/-/merge_requests/317/diffs For now a symlink was added to make the current driver implementation by Jonathan work: https://gitlab.com/kernel-firmware/linux-firmware/-/merge_requests/318/diffs Jim and Robin from TI will adjust the tas2781_hda_i2c driver to load the correct firmware per speaker vendor so the different optimized protection parameters are given. For example the following can be used to readout the GUID for calibration data in UEFI BIOS: status = efi.get_variable(efi_name, &efi_guid, &attr, &total_sz, data); Example source: find /sys/firmware/efi/efivars/ -name *-1f52* -print -exec hexdump -C {} \; /sys/firmware/efi/efivars/CALI_DATA-1f52d2a1-bb3a-457d-bc09-43a3f4310a92 00000000 07 00 00 00 dd f5 15 41 4d ab bb 0f f4 11 bd 31 |.......AM......1| 00000010 bf 5e 97 00 00 00 00 24 2f 8d 10 3e 77 b9 7f 10 |.^.....$/..>w...| 00000020 f3 07 6e 2f b3 d0 93 00 00 00 00 24 00 00 00 00 |..n/.......$....| 00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00000050 00 00 00 00 f2 e1 73 66 8e 08 d9 2b 00 00 00 01 |......sf...+....| 00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00000080 00 00 00 00 |....| 00000084
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 480e82df7a4c..9bc39c2ee6b9 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -7410,6 +7410,7 @@ enum { ALC285_FIXUP_THINKPAD_X1_GEN7, ALC285_FIXUP_THINKPAD_HEADSET_JACK, ALC294_FIXUP_ASUS_ALLY, + ALC294_FIXUP_ASUS_ALLY_X, ALC294_FIXUP_ASUS_ALLY_PINS, ALC294_FIXUP_ASUS_ALLY_VERBS, ALC294_FIXUP_ASUS_ALLY_SPEAKER, @@ -8877,6 +8878,12 @@ static const struct hda_fixup alc269_fixups[] = { .chained = true, .chain_id = ALC294_FIXUP_ASUS_ALLY_PINS }, + [ALC294_FIXUP_ASUS_ALLY_X] = { + .type = HDA_FIXUP_FUNC, + .v.func = tas2781_fixup_i2c, + .chained = true, + .chain_id = ALC294_FIXUP_ASUS_ALLY_PINS + }, [ALC294_FIXUP_ASUS_ALLY_PINS] = { .type = HDA_FIXUP_PINS, .v.pins = (const struct hda_pintbl[]) { @@ -10313,6 +10320,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { SND_PCI_QUIRK(0x1043, 0x1740, "ASUS UX430UA", ALC295_FIXUP_ASUS_DACS), SND_PCI_QUIRK(0x1043, 0x17d1, "ASUS UX431FL", ALC294_FIXUP_ASUS_DUAL_SPK), SND_PCI_QUIRK(0x1043, 0x17f3, "ROG Ally NR2301L/X", ALC294_FIXUP_ASUS_ALLY), + SND_PCI_QUIRK(0x1043, 0x1eb3, "ROG Ally X RC72LA", ALC294_FIXUP_ASUS_ALLY_X), SND_PCI_QUIRK(0x1043, 0x1863, "ASUS UX6404VI/VV", ALC245_FIXUP_CS35L41_SPI_2), SND_PCI_QUIRK(0x1043, 0x1881, "ASUS Zephyrus S/M", ALC294_FIXUP_ASUS_GX502_PINS), SND_PCI_QUIRK(0x1043, 0x18b1, "Asus MJ401TA", ALC256_FIXUP_ASUS_HEADSET_MIC),