Using a kernel version ≥ 6.0.9 with ASUS BIOS version ≥ 311.
✔️ Work (kernel version ≥ 5.19.10 or ≥ 5.15.69 (longterm))
```diff diff --git a/drivers/acpi/resource.c b/drivers/acpi/resource.c index c2d4947844250..510cdec375c4d 100644 --- a/drivers/acpi/resource.c +++ b/drivers/acpi/resource.c @@ -416,6 +416,16 @@ static bool acpi_dev_irq_override(u32 gsi, u8 triggering, u8 polarity, { int i; +#ifdef CONFIG_X86 + /* + * IRQ override isn't needed on modern AMD Zen systems and + * this override breaks active low IRQs on AMD Ryzen 6000 and + * newer systems. Skip it. + */ + if (boot_cpu_has(X86_FEATURE_ZEN)) + return false; +#endif + for (i = 0; i < ARRAY_SIZE(skip_override_table); i++) { const struct irq_override_cmp *entry = &skip_override_table[i]; ```
Patch: kernel/ACPI-skip-IRQ-override-on-AMD-Zen-platforms.patch(included in kernel 5.15.69/5.19.10/6.0, source)
✔️ Work (kernel version ≥ 6.0.9, ASUS BIOS version ≥ 311)
```diff diff --git a/dsdt.dsl b/dsdt.dsl index 663aa79..f485c41 100644 --- a/dsdt.dsl +++ b/dsdt.dsl @@ -18,7 +18,7 @@ * Compiler ID "INTL" * Compiler Version 0x20200717 (538969879) */ -DefinitionBlock ("", "DSDT", 2, "_ASUS_", "Notebook", 0x01072009) +DefinitionBlock ("", "DSDT", 2, "_ASUS_", "Notebook", 0x0107200A) { External (_SB_.ALIB, MethodObj) // 2 Arguments External (_SB_.APTS, MethodObj) // 1 Arguments @@ -14734,6 +14734,85 @@ DefinitionBlock ("", "DSDT", 2, "_ASUS_", "Notebook", 0x01072009) Method (_DIS, 0, NotSerialized) // _DIS: Disable Device { } + + Name (_DSD, Package (0x02) // _DSD: Device-Specific Data + { + ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301") /* Device Properties for _DSD */, + Package (0x06) + { + Package (0x02) + { + "cirrus,dev-index", + Package (0x02) + { + 0x40, + 0x41 + } + }, + + Package (0x02) + { + "reset-gpios", + Package (0x08) + { + SPKR, + Zero, + Zero, + Zero, + SPKR, + Zero, + Zero, + Zero + } + }, + + Package (0x02) + { + "spk-id-gpios", + Package (0x08) + { + SPKR, + 0x02, + Zero, + Zero, + SPKR, + 0x02, + Zero, + Zero + } + }, + + Package (0x02) + { + "cirrus,speaker-position", + Package (0x02) + { + Zero, + One + } + }, + + Package (0x02) + { + "cirrus,gpio1-func", + Package (0x02) + { + Zero, + One + } + }, + + Package (0x02) + { + "cirrus,gpio2-func", + Package (0x02) + { + 0x02, + 0x02 + } + } + } + }) } } ``` See also: [DSDT - ArchWiki](https://wiki.archlinux.org/title/DSDT)
Patch: dsdt/spkr-dsd.patch```diff diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 701a72ec5629a..b4f7ff8cfe41b 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -9404,6 +9404,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { SND_PCI_QUIRK(0x1043, 0x1e8e, "ASUS Zephyrus G15", ALC289_FIXUP_ASUS_GA401), SND_PCI_QUIRK(0x1043, 0x1c52, "ASUS Zephyrus G15 2022", ALC289_FIXUP_ASUS_GA401), SND_PCI_QUIRK(0x1043, 0x1f11, "ASUS Zephyrus G14", ALC289_FIXUP_ASUS_GA401), + SND_PCI_QUIRK(0x1043, 0x1f12, "ASUS UM5302", ALC287_FIXUP_CS35L41_I2C_2), SND_PCI_QUIRK(0x1043, 0x1f92, "ASUS ROG Flow X16", ALC289_FIXUP_ASUS_GA401), SND_PCI_QUIRK(0x1043, 0x3030, "ASUS ZN270IE", ALC256_FIXUP_ASUS_AIO_GPIO2), SND_PCI_QUIRK(0x1043, 0x831a, "ASUS P901", ALC269_FIXUP_STEREO_DMIC), ```
Patch: kernel/ALSA-hda-realtek-Add-quirk-for-ASUS-Zenbook-using-CS35L41.patch(included in kernel 6.0.9/6.1, source)```diff diff --git a/sound/pci/hda/cs35l41_hda.c b/sound/pci/hda/cs35l41_hda.c index e5f0549bf06d..3917f398334d 100644 --- a/sound/pci/hda/cs35l41_hda.c +++ b/sound/pci/hda/cs35l41_hda.c @@ -1231,7 +1231,7 @@ static int cs35l41_no_acpi_dsd(struct cs35l41_hda *cs35l41, struct device *physd if (strncmp(hid, "CLSA0100", 8) == 0) { hw_cfg->bst_type = CS35L41_EXT_BOOST_NO_VSPK_SWITCH; - } else if (strncmp(hid, "CLSA0101", 8) == 0) { + } else if (strncmp(hid, "CLSA0101", 8) == 0 || strncmp(hid, "CSC3551", 7) == 0) { hw_cfg->bst_type = CS35L41_EXT_BOOST; hw_cfg->gpio1.func = CS35l41_VSPK_SWITCH; hw_cfg->gpio1.valid = true; ```
Patch: kernel/cs35l42-hda-no-acpi-dsd-csc3551.patch(rejected, source)
✔️ Work (kernel version ≥ 6.0.3)
```diff diff --git a/sound/soc/amd/yc/acp6x-mach.c b/sound/soc/amd/yc/acp6x-mach.c index e0b24e1daef3d..5eab3baf3573d 100644 --- a/sound/soc/amd/yc/acp6x-mach.c +++ b/sound/soc/amd/yc/acp6x-mach.c @@ -171,6 +171,13 @@ static const struct dmi_system_id yc_acp_quirk_table[] = { DMI_MATCH(DMI_PRODUCT_NAME, "21J6"), } }, + { + .driver_data = &acp6x_card, + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK COMPUTER INC."), + DMI_MATCH(DMI_PRODUCT_NAME, "UM5302TA"), + } + }, {} }; ```
Patch: kernel/ASoC-amd-yc-Add-ASUS-UM5302TA-into-DMI-table.patch(included in kernel 6.0.3/6.1, source)
✔️ Work (kernel version ≥ 6.0)
```diff diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c index 205b7d3b1cc3a..21135a419bcc3 100644 --- a/drivers/bluetooth/btusb.c +++ b/drivers/bluetooth/btusb.c @@ -492,6 +492,9 @@ static const struct usb_device_id blacklist_table[] = { { USB_DEVICE(0x13d3, 0x3568), .driver_info = BTUSB_MEDIATEK | BTUSB_WIDEBAND_SPEECH | BTUSB_VALID_LE_STATES }, + { USB_DEVICE(0x0489, 0xe0e2), .driver_info = BTUSB_MEDIATEK | + BTUSB_WIDEBAND_SPEECH | + BTUSB_VALID_LE_STATES }, /* Additional Realtek 8723AE Bluetooth devices */ { USB_DEVICE(0x0930, 0x021d), .driver_info = BTUSB_REALTEK }, ```
Patch: kernel/Bluetooth-btusb-Add-a-new-VID-PID-0489-e0e2-for-MT7922.patch(included in kernel 6.0, source)
✔️ Work
✔️ Work
Modern standby should work out-of-box.
S3 sleep may be unstable and cause freezing.
``` options mem_sleep_default=deep ```Patch: dsdt/s3.patch
```diff diff --git a/dsdt.dsl b/dsdt.dsl index 01b8c57..fa83d84 100644 --- a/dsdt.dsl +++ b/dsdt.dsl @@ -18,7 +18,7 @@ * Compiler ID "INTL" * Compiler Version 0x20200717 (538969879) */ -DefinitionBlock ("", "DSDT", 2, "_ASUS_", "Notebook", 0x01072009) +DefinitionBlock ("", "DSDT", 2, "_ASUS_", "Notebook", 0x0107200A) { External (_SB_.ALIB, MethodObj) // 2 Arguments External (_SB_.APTS, MethodObj) // 1 Arguments @@ -413,7 +413,7 @@ DefinitionBlock ("", "DSDT", 2, "_ASUS_", "Notebook", 0x01072009) Name (SS1, Zero) Name (SS2, Zero) - Name (SS3, Zero) + Name (SS3, One) Name (SS4, One) Name (IOST, 0xFFFF) Name (TOPM, 0x00000000) @@ -3298,7 +3298,7 @@ DefinitionBlock ("", "DSDT", 2, "_ASUS_", "Notebook", 0x01072009) Zero, Zero }) - Name (XS3, Package (0x04) + Name (_S3, Package (0x04) { 0x03, Zero, ``` See also: [DSDT - ArchWiki](https://wiki.archlinux.org/title/DSDT)
❌ Not work (bug report)