Created
June 11, 2026 00:12
-
-
Save shivanshs9/63a08b106aec969bc960046ded6b6559 to your computer and use it in GitHub Desktop.
Asus TUF Gaming A14 FA401EA speakers fix patch (based on Linux 7.0.10-arch1 kernel)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| diff --git a/sound/soc/amd/acp-config.c b/sound/soc/amd/acp-config.c | |
| index 1604ed679..39428cfa4 100644 | |
| --- a/sound/soc/amd/acp-config.c | |
| +++ b/sound/soc/amd/acp-config.c | |
| @@ -30,6 +30,12 @@ static const struct dmi_system_id acp70_acpi_flag_override_table[] = { | |
| DMI_MATCH(DMI_PRODUCT_NAME, "HN7306EA"), | |
| }, | |
| }, | |
| + { | |
| + .matches = { | |
| + DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK COMPUTER INC."), | |
| + DMI_MATCH(DMI_BOARD_NAME, "FA401EA"), | |
| + }, | |
| + }, | |
| {} | |
| }; | |
| diff --git a/sound/soc/amd/acp/acp-sdw-legacy-mach.c b/sound/soc/amd/acp/acp-sdw-legacy-mach.c | |
| index a9c8d9545..b764270f8 100644 | |
| --- a/sound/soc/amd/acp/acp-sdw-legacy-mach.c | |
| +++ b/sound/soc/amd/acp/acp-sdw-legacy-mach.c | |
| @@ -135,6 +135,14 @@ static const struct dmi_system_id soc_sdw_quirk_table[] = { | |
| }, | |
| .driver_data = (void *)(ASOC_SDW_ACP_DMIC), | |
| }, | |
| + { | |
| + .callback = soc_sdw_quirk_cb, | |
| + .matches = { | |
| + DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK COMPUTER INC."), | |
| + DMI_MATCH(DMI_BOARD_NAME, "FA401EA"), | |
| + }, | |
| + .driver_data = (void *)(ASOC_SDW_CODEC_SPKR), | |
| + }, | |
| {} | |
| }; | |
| diff --git a/sound/soc/amd/acp/amd-acp70-acpi-match.c b/sound/soc/amd/acp/amd-acp70-acpi-match.c | |
| index 1ae43df5d..d5ac73f13 100644 | |
| --- a/sound/soc/amd/acp/amd-acp70-acpi-match.c | |
| +++ b/sound/soc/amd/acp/amd-acp70-acpi-match.c | |
| @@ -585,6 +585,28 @@ static const struct snd_soc_acpi_link_adr acp70_rt1320_l0_rt722_l1[] = { | |
| {} | |
| }; | |
| +static const struct snd_soc_acpi_adr_device rt721_l1u0_jack_amp_dmic_adr[] = { | |
| + { | |
| + .adr = 0x000130025D072101ull, | |
| + /* | |
| + * ASUS FA401EA: jack, internal speakers, and DMIC are all | |
| + * provided by rt721 (AF01 / AF02 / AF04); no external amps. | |
| + */ | |
| + .num_endpoints = ARRAY_SIZE(jack_amp_g1_dmic_endpoints), | |
| + .endpoints = jack_amp_g1_dmic_endpoints, | |
| + .name_prefix = "rt721", | |
| + }, | |
| +}; | |
| + | |
| +static const struct snd_soc_acpi_link_adr acp70_rt721_l1u0_jack_amp_dmic[] = { | |
| + { | |
| + .mask = BIT(1), | |
| + .num_adr = ARRAY_SIZE(rt721_l1u0_jack_amp_dmic_adr), | |
| + .adr_d = rt721_l1u0_jack_amp_dmic_adr, | |
| + }, | |
| + {} | |
| +}; | |
| + | |
| static const struct snd_soc_acpi_adr_device rt721_l1u0_tas2783x2_l1u8b_adr[] = { | |
| { | |
| .adr = 0x000130025D072101ull, | |
| @@ -706,6 +728,11 @@ struct snd_soc_acpi_mach snd_soc_acpi_amd_acp70_sdw_machines[] = { | |
| .machine_check = snd_soc_acpi_amd_sdca_is_device_rt712_vb, | |
| .drv_name = "amd_sdw", | |
| }, | |
| + { | |
| + .link_mask = BIT(1), | |
| + .links = acp70_rt721_l1u0_jack_amp_dmic, | |
| + .drv_name = "amd_sdw", | |
| + }, | |
| { | |
| .link_mask = BIT(1), | |
| .links = acp70_rt721_l1u0_tas2783x2_l1u8b, |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment