aboutsummaryrefslogtreecommitdiff
path: root/SOURCES/tas2781-Fix-ROG-ALLY-X-audio.patch
diff options
context:
space:
mode:
Diffstat (limited to 'SOURCES/tas2781-Fix-ROG-ALLY-X-audio.patch')
-rw-r--r--SOURCES/tas2781-Fix-ROG-ALLY-X-audio.patch74
1 files changed, 74 insertions, 0 deletions
diff --git a/SOURCES/tas2781-Fix-ROG-ALLY-X-audio.patch b/SOURCES/tas2781-Fix-ROG-ALLY-X-audio.patch
new file mode 100644
index 0000000..2ecd5e8
--- /dev/null
+++ b/SOURCES/tas2781-Fix-ROG-ALLY-X-audio.patch
@@ -0,0 +1,74 @@
+From ebfb5a57caa4e2e2203883ac6669bf8a294e7c89 Mon Sep 17 00:00:00 2001
+From: Jonathan LoBue <jlobue10@gmail.com>
+Date: Sun, 11 Aug 2024 21:53:25 -0700
+Subject: ALSA: hda/realtek: tas2781: Fix ROG ALLY X audio
+
+This patch enables the TI TAS2781 amplifier SoC for the ASUS ROG ALLY X.
+This is a design change from the original ASUS ROG ALLY, creating the need
+for this patch. All other Realtek Codec settings seem to be re-used from
+the original ROG ALLY design (on the ROG ALLY X). This patch maintains the
+previous settings for the Realtek codec portion, but enables the I2C
+binding for the TI TAS2781 amplifier (instead of the Cirrus CS35L41 amp
+used on the original ASUS ROG ALLY).
+
+One other requirement must be met for audio to work on the ASUS ROG ALLY X.
+A proper firmware file in the correct location with a proper symlink. We
+had reached out to TI engineers and confirmed that the firmware found in
+the Windows' driver package has a GPL license. Bazzite Github is hosting
+this firmware file for now until proper linux-firmware upstreaming can
+occur. https://github.com/ublue-os/bazzite
+
+This firmware file should be placed in
+/usr/lib/firmware/ti/tas2781/TAS2XXX1EB3.bin with a symlink to it from
+/usr/lib/firmware/TAS2XXX1EB3.bin
+
+Co-developed by: Kyle Gospodnetich <me@kylegospodneti.ch>
+Signed-off-by: Kyle Gospodnetich <me@kylegospodneti.ch>
+Co-developed by: Jan Drogehoff <sentrycraft123@gmail.com>
+Signed-off-by: Jan Drogehoff <sentrycraft123@gmail.com>
+Signed-off-by: Antheas Kapenekakis <lkml@antheas.dev>
+Tested-by: Richard Alvarez <alvarez.richard@gmail.com>
+Tested-by: Miles Montierth <cyber_dopamine@intheblackmedia.com>
+Signed-off-by: Jonathan LoBue <jlobue10@gmail.com>
+Link: https://patch.msgid.link/20240812045325.47736-1-jlobue10@gmail.com
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+---
+ sound/pci/hda/patch_realtek.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
+index d022a25635f9bf..2f080e02f1db97 100644
+--- a/sound/pci/hda/patch_realtek.c
++++ b/sound/pci/hda/patch_realtek.c
+@@ -7492,6 +7492,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,
+@@ -8960,6 +8961,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[]) {
+@@ -10411,6 +10418,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),
+--
+cgit 1.2.3-korg
+