* [PATCH RFC v2 1/2] ASoC: amd: acp: Add ACP70 ACPI flag override for LG gram 16Z95U
2026-11-11 1:39 [PATCH RFC v2 0/2] ASoC: amd: SoundWire audio for LG gram 16Z95U (rt713 + rt1320), speaker still silent fixca
@ 2026-11-11 1:39 ` fixca
2026-11-11 1:57 ` Mukunda,Vijendar
2026-11-11 1:39 ` [PATCH RFC v2 2/2] ASoC: amd: acp70: Add rt713 + rt1320 SoundWire machine " fixca
2026-11-11 1:55 ` [PATCH RFC v2 0/2] ASoC: amd: SoundWire audio for LG gram 16Z95U (rt713 + rt1320), speaker still silent Mukunda,Vijendar
2 siblings, 1 reply; 6+ messages in thread
From: fixca @ 2026-11-11 1:39 UTC (permalink / raw)
To: broonie, Vijendar.Mukunda, shumingf
Cc: linux-sound, linux-kernel, Jaehoon Kim, Claude Opus 5.5
From: Jaehoon Kim <jaehoon1744@dankook.ac.kr>
The LG gram 16 (16Z95U, AMD Ryzen AI 400 series, ACP rev 0x72) BIOS
sets "acp-audio-config-flag" to 0x10 (FLAG_AMD_LEGACY_ONLY_DMIC), but
the machine has no ACP PDM microphone. All audio endpoints are
SoundWire peripherals declared under the ACP SoundWire controller:
link 0: RT713 (UAJ + SmartMic functions), _ADR 0x000030025D071301
link 1: RT1320 (SmartAmp function), _ADR 0x000131025D132001
With the flag honoured, snd_pci_ps bails out with -ENODEV, the legacy
snd_acp_pci driver binds instead and fails with:
platform acp_asoc_acp70.0: warning: No matching ASoC machine driver found
so no sound card is created at all.
Add the machine to acp70_acpi_flag_override_table so that the
SoundWire path is used.
Tested on LG gram 16Z95U-GS59K (PCI SSID 1854:056c): with this change
snd_pci_ps binds and both peripherals enumerate
(sdw:0:0:025d:0713:01, sdw:0:1:025d:1320:01).
Signed-off-by: Jaehoon Kim <jaehoon1744@dankook.ac.kr>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---
v2: rebased onto broonie/sound for-next (v1 did not apply).
sound/soc/amd/acp-config.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/sound/soc/amd/acp-config.c b/sound/soc/amd/acp-config.c
index 3d4c852..febf559 100644
--- a/sound/soc/amd/acp-config.c
+++ b/sound/soc/amd/acp-config.c
@@ -140,6 +140,13 @@ static const struct dmi_system_id acp70_acpi_flag_override_table[] = {
DMI_MATCH(DMI_PRODUCT_NAME, "Dell 14S DS14265"),
},
},
+ {
+ /* LG gram 16 16Z95U (ACP 7.2) */
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "LG Electronics"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "16Z95U"),
+ },
+ },
{}
};
--
2.43.0
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: [PATCH RFC v2 1/2] ASoC: amd: acp: Add ACP70 ACPI flag override for LG gram 16Z95U
2026-11-11 1:39 ` [PATCH RFC v2 1/2] ASoC: amd: acp: Add ACP70 ACPI flag override for LG gram 16Z95U fixca
@ 2026-11-11 1:57 ` Mukunda,Vijendar
0 siblings, 0 replies; 6+ messages in thread
From: Mukunda,Vijendar @ 2026-11-11 1:57 UTC (permalink / raw)
To: fixca, broonie, shumingf; +Cc: linux-sound, linux-kernel, Claude Opus 5.5
On 11/11/26 07:09, fixca wrote:
> [You don't often get email from jaehoon1744@dankook.ac.kr. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ]
>
> From: Jaehoon Kim <jaehoon1744@dankook.ac.kr>
>
> The LG gram 16 (16Z95U, AMD Ryzen AI 400 series, ACP rev 0x72) BIOS
> sets "acp-audio-config-flag" to 0x10 (FLAG_AMD_LEGACY_ONLY_DMIC), but
> the machine has no ACP PDM microphone. All audio endpoints are
> SoundWire peripherals declared under the ACP SoundWire controller:
>
> link 0: RT713 (UAJ + SmartMic functions), _ADR 0x000030025D071301
> link 1: RT1320 (SmartAmp function), _ADR 0x000131025D132001
>
> With the flag honoured, snd_pci_ps bails out with -ENODEV, the legacy
> snd_acp_pci driver binds instead and fails with:
>
> platform acp_asoc_acp70.0: warning: No matching ASoC machine driver found
>
> so no sound card is created at all.
>
> Add the machine to acp70_acpi_flag_override_table so that the
> SoundWire path is used.
>
> Tested on LG gram 16Z95U-GS59K (PCI SSID 1854:056c): with this change
> snd_pci_ps binds and both peripherals enumerate
> (sdw:0:0:025d:0713:01, sdw:0:1:025d:1320:01).
>
> Signed-off-by: Jaehoon Kim <jaehoon1744@dankook.ac.kr>
> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Reviwed-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com>
> ---
> v2: rebased onto broonie/sound for-next (v1 did not apply).
> sound/soc/amd/acp-config.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/sound/soc/amd/acp-config.c b/sound/soc/amd/acp-config.c
> index 3d4c852..febf559 100644
> --- a/sound/soc/amd/acp-config.c
> +++ b/sound/soc/amd/acp-config.c
> @@ -140,6 +140,13 @@ static const struct dmi_system_id acp70_acpi_flag_override_table[] = {
> DMI_MATCH(DMI_PRODUCT_NAME, "Dell 14S DS14265"),
> },
> },
> + {
> + /* LG gram 16 16Z95U (ACP 7.2) */
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "LG Electronics"),
> + DMI_MATCH(DMI_PRODUCT_NAME, "16Z95U"),
> + },
> + },
> {}
> };
>
> --
> 2.43.0
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH RFC v2 2/2] ASoC: amd: acp70: Add rt713 + rt1320 SoundWire machine for LG gram 16Z95U
2026-11-11 1:39 [PATCH RFC v2 0/2] ASoC: amd: SoundWire audio for LG gram 16Z95U (rt713 + rt1320), speaker still silent fixca
2026-11-11 1:39 ` [PATCH RFC v2 1/2] ASoC: amd: acp: Add ACP70 ACPI flag override for LG gram 16Z95U fixca
@ 2026-11-11 1:39 ` fixca
2026-11-11 2:05 ` Mukunda,Vijendar
2026-11-11 1:55 ` [PATCH RFC v2 0/2] ASoC: amd: SoundWire audio for LG gram 16Z95U (rt713 + rt1320), speaker still silent Mukunda,Vijendar
2 siblings, 1 reply; 6+ messages in thread
From: fixca @ 2026-11-11 1:39 UTC (permalink / raw)
To: broonie, Vijendar.Mukunda, shumingf
Cc: linux-sound, linux-kernel, Jaehoon Kim, Claude Opus 5.5
From: Jaehoon Kim <jaehoon1744@dankook.ac.kr>
The LG gram 16 (16Z95U) uses an RT713 jack codec on SoundWire link 0
and a single stereo RT1320 amplifier (unique ID 1) on link 1. There is
no matching entry in snd_soc_acpi_amd_acp70_sdw_machines[], so no
machine device is registered even once the SoundWire path is selected.
Add two machine entries:
- rt713 (jack + DMIC endpoints) on link 0 and rt1320 on link 1, used
when the RT713 exposes a SmartMic SDCA function (rt712-vb check).
On this machine the internal microphones are routed through the
RT713 SmartMic function; the ACP PDM controller is not used.
- a fallback with only the rt713 jack endpoint and rt1320.
The existing jack_dmic_endpoints cannot be reused: it maps the DMIC to
endpoint #2 for rt721, while on rt713 the SmartMic DAI is the second
DAI, so endpoint #1.
Tested on LG gram 16Z95U-GS59K with kernel 7.2.14. The "amd-soundwire"
card is created with these PCMs:
SDW0-PIN0-PLAYBACK-SimpleJack rt712-sdca-aif1
SDW0-PIN3-CAPTURE-SimpleJack rt712-sdca-aif1
SDW0-PIN5-CAPTURE-SmartMic rt712-sdca-aif3
SDW1-PIN1-PLAYBACK-SmartAmp rt1320-aif1
Headphone playback and internal microphone capture work with the
stock alsa-ucm-conf (1.2.16.1) HiFi profile; headset microphone
capture was not tested. Speaker playback through the RT1320 is still
silent although the stream starts without errors; see the cover
letter.
Signed-off-by: Jaehoon Kim <jaehoon1744@dankook.ac.kr>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---
v2: rebased onto broonie/sound for-next (v1 did not apply).
sound/soc/amd/acp/amd-acp70-acpi-match.c | 83 ++++++++++++++++++++++++
1 file changed, 83 insertions(+)
diff --git a/sound/soc/amd/acp/amd-acp70-acpi-match.c b/sound/soc/amd/acp/amd-acp70-acpi-match.c
index c2f0479..b492cbe 100644
--- a/sound/soc/amd/acp/amd-acp70-acpi-match.c
+++ b/sound/soc/amd/acp/amd-acp70-acpi-match.c
@@ -583,6 +583,78 @@ static const struct snd_soc_acpi_link_adr acp70_rt722_l0_rt1320_l1[] = {
{}
};
+static const struct snd_soc_acpi_endpoint rt713_jack_dmic_endpoints[] = {
+ /* Jack Endpoint (AIF1) */
+ {
+ .num = 0,
+ .aggregated = 0,
+ .group_position = 0,
+ .group_id = 0,
+ },
+ /* DMIC Endpoint (AIF3, SmartMic function) */
+ {
+ .num = 1,
+ .aggregated = 0,
+ .group_position = 0,
+ .group_id = 0,
+ },
+};
+
+static const struct snd_soc_acpi_adr_device rt713_vb_0_single_adr[] = {
+ {
+ .adr = 0x000030025D071301ull,
+ .num_endpoints = ARRAY_SIZE(rt713_jack_dmic_endpoints),
+ .endpoints = rt713_jack_dmic_endpoints,
+ .name_prefix = "rt713"
+ }
+};
+
+static const struct snd_soc_acpi_adr_device rt713_0_single_adr[] = {
+ {
+ .adr = 0x000030025D071301ull,
+ .num_endpoints = 1,
+ .endpoints = &single_endpoint,
+ .name_prefix = "rt713"
+ }
+};
+
+static const struct snd_soc_acpi_adr_device rt1320_1_u1_single_adr[] = {
+ {
+ .adr = 0x000131025D132001ull,
+ .num_endpoints = 1,
+ .endpoints = &single_endpoint,
+ .name_prefix = "rt1320-1"
+ }
+};
+
+static const struct snd_soc_acpi_link_adr acp70_rt713_vb_l0_rt1320_l1u1[] = {
+ {
+ .mask = BIT(0),
+ .num_adr = ARRAY_SIZE(rt713_vb_0_single_adr),
+ .adr_d = rt713_vb_0_single_adr,
+ },
+ {
+ .mask = BIT(1),
+ .num_adr = ARRAY_SIZE(rt1320_1_u1_single_adr),
+ .adr_d = rt1320_1_u1_single_adr,
+ },
+ {}
+};
+
+static const struct snd_soc_acpi_link_adr acp70_rt713_l0_rt1320_l1u1[] = {
+ {
+ .mask = BIT(0),
+ .num_adr = ARRAY_SIZE(rt713_0_single_adr),
+ .adr_d = rt713_0_single_adr,
+ },
+ {
+ .mask = BIT(1),
+ .num_adr = ARRAY_SIZE(rt1320_1_u1_single_adr),
+ .adr_d = rt1320_1_u1_single_adr,
+ },
+ {}
+};
+
static const struct snd_soc_acpi_adr_device tas2783_2_adr[] = {
{
/* left */
@@ -820,6 +892,17 @@ struct snd_soc_acpi_mach snd_soc_acpi_amd_acp70_sdw_machines[] = {
.links = acp70_rt722_l0_rt1320_l1,
.drv_name = "amd_sdw",
},
+ {
+ .link_mask = BIT(0) | BIT(1),
+ .links = acp70_rt713_vb_l0_rt1320_l1u1,
+ .machine_check = snd_soc_acpi_amd_sdca_is_device_rt712_vb,
+ .drv_name = "amd_sdw",
+ },
+ {
+ .link_mask = BIT(0) | BIT(1),
+ .links = acp70_rt713_l0_rt1320_l1u1,
+ .drv_name = "amd_sdw",
+ },
{
.link_mask = BIT(0) | BIT(1),
.links = acp70_4_in_1_sdca,
--
2.43.0
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: [PATCH RFC v2 2/2] ASoC: amd: acp70: Add rt713 + rt1320 SoundWire machine for LG gram 16Z95U
2026-11-11 1:39 ` [PATCH RFC v2 2/2] ASoC: amd: acp70: Add rt713 + rt1320 SoundWire machine " fixca
@ 2026-11-11 2:05 ` Mukunda,Vijendar
0 siblings, 0 replies; 6+ messages in thread
From: Mukunda,Vijendar @ 2026-11-11 2:05 UTC (permalink / raw)
To: fixca, broonie, shumingf; +Cc: linux-sound, linux-kernel, Claude Opus 5.5
On 11/11/26 07:09, fixca wrote:
> [You don't often get email from jaehoon1744@dankook.ac.kr. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ]
>
> From: Jaehoon Kim <jaehoon1744@dankook.ac.kr>
>
> The LG gram 16 (16Z95U) uses an RT713 jack codec on SoundWire link 0
> and a single stereo RT1320 amplifier (unique ID 1) on link 1. There is
> no matching entry in snd_soc_acpi_amd_acp70_sdw_machines[], so no
> machine device is registered even once the SoundWire path is selected.
>
> Add two machine entries:
>
> - rt713 (jack + DMIC endpoints) on link 0 and rt1320 on link 1, used
> when the RT713 exposes a SmartMic SDCA function (rt712-vb check).
> On this machine the internal microphones are routed through the
> RT713 SmartMic function; the ACP PDM controller is not used.
> - a fallback with only the rt713 jack endpoint and rt1320.
>
> The existing jack_dmic_endpoints cannot be reused: it maps the DMIC to
> endpoint #2 for rt721, while on rt713 the SmartMic DAI is the second
> DAI, so endpoint #1.
>
> Tested on LG gram 16Z95U-GS59K with kernel 7.2.14. The "amd-soundwire"
> card is created with these PCMs:
>
> SDW0-PIN0-PLAYBACK-SimpleJack rt712-sdca-aif1
> SDW0-PIN3-CAPTURE-SimpleJack rt712-sdca-aif1
> SDW0-PIN5-CAPTURE-SmartMic rt712-sdca-aif3
> SDW1-PIN1-PLAYBACK-SmartAmp rt1320-aif1
>
> Headphone playback and internal microphone capture work with the
> stock alsa-ucm-conf (1.2.16.1) HiFi profile; headset microphone
> capture was not tested. Speaker playback through the RT1320 is still
> silent although the stream starts without errors; see the cover
> letter.
>
> Signed-off-by: Jaehoon Kim <jaehoon1744@dankook.ac.kr>
> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Reviewed-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com>
> ---
> v2: rebased onto broonie/sound for-next (v1 did not apply).
> sound/soc/amd/acp/amd-acp70-acpi-match.c | 83 ++++++++++++++++++++++++
> 1 file changed, 83 insertions(+)
>
> diff --git a/sound/soc/amd/acp/amd-acp70-acpi-match.c b/sound/soc/amd/acp/amd-acp70-acpi-match.c
> index c2f0479..b492cbe 100644
> --- a/sound/soc/amd/acp/amd-acp70-acpi-match.c
> +++ b/sound/soc/amd/acp/amd-acp70-acpi-match.c
> @@ -583,6 +583,78 @@ static const struct snd_soc_acpi_link_adr acp70_rt722_l0_rt1320_l1[] = {
> {}
> };
>
> +static const struct snd_soc_acpi_endpoint rt713_jack_dmic_endpoints[] = {
> + /* Jack Endpoint (AIF1) */
> + {
> + .num = 0,
> + .aggregated = 0,
> + .group_position = 0,
> + .group_id = 0,
> + },
> + /* DMIC Endpoint (AIF3, SmartMic function) */
> + {
> + .num = 1,
> + .aggregated = 0,
> + .group_position = 0,
> + .group_id = 0,
> + },
> +};
> +
> +static const struct snd_soc_acpi_adr_device rt713_vb_0_single_adr[] = {
> + {
> + .adr = 0x000030025D071301ull,
> + .num_endpoints = ARRAY_SIZE(rt713_jack_dmic_endpoints),
> + .endpoints = rt713_jack_dmic_endpoints,
> + .name_prefix = "rt713"
> + }
> +};
> +
> +static const struct snd_soc_acpi_adr_device rt713_0_single_adr[] = {
> + {
> + .adr = 0x000030025D071301ull,
> + .num_endpoints = 1,
> + .endpoints = &single_endpoint,
> + .name_prefix = "rt713"
> + }
> +};
> +
> +static const struct snd_soc_acpi_adr_device rt1320_1_u1_single_adr[] = {
> + {
> + .adr = 0x000131025D132001ull,
> + .num_endpoints = 1,
> + .endpoints = &single_endpoint,
> + .name_prefix = "rt1320-1"
> + }
> +};
> +
> +static const struct snd_soc_acpi_link_adr acp70_rt713_vb_l0_rt1320_l1u1[] = {
> + {
> + .mask = BIT(0),
> + .num_adr = ARRAY_SIZE(rt713_vb_0_single_adr),
> + .adr_d = rt713_vb_0_single_adr,
> + },
> + {
> + .mask = BIT(1),
> + .num_adr = ARRAY_SIZE(rt1320_1_u1_single_adr),
> + .adr_d = rt1320_1_u1_single_adr,
> + },
> + {}
> +};
> +
> +static const struct snd_soc_acpi_link_adr acp70_rt713_l0_rt1320_l1u1[] = {
> + {
> + .mask = BIT(0),
> + .num_adr = ARRAY_SIZE(rt713_0_single_adr),
> + .adr_d = rt713_0_single_adr,
> + },
> + {
> + .mask = BIT(1),
> + .num_adr = ARRAY_SIZE(rt1320_1_u1_single_adr),
> + .adr_d = rt1320_1_u1_single_adr,
> + },
> + {}
> +};
> +
> static const struct snd_soc_acpi_adr_device tas2783_2_adr[] = {
> {
> /* left */
> @@ -820,6 +892,17 @@ struct snd_soc_acpi_mach snd_soc_acpi_amd_acp70_sdw_machines[] = {
> .links = acp70_rt722_l0_rt1320_l1,
> .drv_name = "amd_sdw",
> },
> + {
> + .link_mask = BIT(0) | BIT(1),
> + .links = acp70_rt713_vb_l0_rt1320_l1u1,
> + .machine_check = snd_soc_acpi_amd_sdca_is_device_rt712_vb,
> + .drv_name = "amd_sdw",
> + },
> + {
> + .link_mask = BIT(0) | BIT(1),
> + .links = acp70_rt713_l0_rt1320_l1u1,
> + .drv_name = "amd_sdw",
> + },
> {
> .link_mask = BIT(0) | BIT(1),
> .links = acp70_4_in_1_sdca,
> --
> 2.43.0
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH RFC v2 0/2] ASoC: amd: SoundWire audio for LG gram 16Z95U (rt713 + rt1320), speaker still silent
2026-11-11 1:39 [PATCH RFC v2 0/2] ASoC: amd: SoundWire audio for LG gram 16Z95U (rt713 + rt1320), speaker still silent fixca
2026-11-11 1:39 ` [PATCH RFC v2 1/2] ASoC: amd: acp: Add ACP70 ACPI flag override for LG gram 16Z95U fixca
2026-11-11 1:39 ` [PATCH RFC v2 2/2] ASoC: amd: acp70: Add rt713 + rt1320 SoundWire machine " fixca
@ 2026-11-11 1:55 ` Mukunda,Vijendar
2 siblings, 0 replies; 6+ messages in thread
From: Mukunda,Vijendar @ 2026-11-11 1:55 UTC (permalink / raw)
To: fixca, broonie, shumingf; +Cc: linux-sound, linux-kernel
On 11/11/26 07:09, fixca wrote:
> [You don't often get email from jaehoon1744@dankook.ac.kr. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ]
>
> The 2026 LG gram 16 with AMD Ryzen AI 400 (16Z95U, ACP rev 0x72,
> PCI SSID 1854:056c) has no internal audio on mainline: no sound card is
> created. The same generation 15Z95U has been reported with identical
> symptoms (https://github.com/CachyOS/distribution/issues/516).
>
> These two patches create the card. With them, headphone playback and
> internal microphone capture work. Speaker playback through the RT1320
> is still silent, and I would appreciate advice on that part (details
> below). I am sending the series as RFC for that reason.
>
> Changes in v2:
> - Rebased onto broonie/sound for-next; v1 was against v7.2.14 and did
> not apply. No functional change.
> - Patch 2: use a dedicated rt713 jack + DMIC endpoint array; the new
> jack_dmic_endpoints maps the DMIC to endpoint #2 (rt721), whereas
> the rt713 SmartMic DAI is endpoint #1.
> - Cover letter: added what the Windows driver loads for the RT1320.
>
> Hardware, from the ACPI tables (ACP node \_SB.PCI0.GPPA.ACP):
>
> acp-audio-config-flag = 0x10 (FLAG_AMD_LEGACY_ONLY_DMIC)
> SDWC (_ADR 5): mipi-sdw-manager-list = 0x3
> link 0: SW36 _ADR 0x000030025D071301 RT713
> SDCA functions: UAJ (type 6) at 0x1, SmartMic (type 3) at 0x2
> link 1: SW23 _ADR 0x000131025D132001 RT1320
> SDCA function: SmartAmp (type 1) at 0x4
>
> Patch 1 adds the machine to acp70_acpi_flag_override_table. Without it
> snd_pci_ps returns -ENODEV because of the BIOS flag, snd_acp_pci binds
> and reports "No matching ASoC machine driver found".
>
> Patch 2 adds rt713 (link 0) + rt1320 (link 1, unique ID 1) entries to
> snd_soc_acpi_amd_acp70_sdw_machines[].
>
> Result with both patches (tested on 7.2.14, Arch Linux,
> alsa-ucm-conf 1.2.16.1):
>
> card: amd-soundwire, components " cfg-amp:1 hs:rt713-sdca mic:rt713 spk:rt1320"
> SDW0-PIN0-PLAYBACK-SimpleJack rt712-sdca-aif1 works
> SDW0-PIN3-CAPTURE-SimpleJack rt712-sdca-aif1 not tested
> SDW0-PIN5-CAPTURE-SmartMic rt712-sdca-aif3 works
> SDW1-PIN1-PLAYBACK-SmartAmp rt1320-aif1 silent
>
> Open problem: RT1320 speaker output is silent
>
> The playback stream starts and runs without any error:
>
> rt1320-sdca sdw:0:1:025d:1320:01: rt1320_io_init amp func_status=0x41
> rt1320-sdca sdw:0:1:025d:1320:01: rt1320_vc_preset, RT1320_KR0_INT_READY=0x1f
> rt1320-sdca sdw:0:1:025d:1320:01: rt1320_io_init version_id=2, dev_id=0x6981
> rt1320-sdca sdw:0:1:025d:1320:01: rt1320_io_init hw_init complete
> ...
> soundwire sdw-master-0-1: Port=1 hstart=1 hstop=9 port_bo=65 slots=32 max_ports=6
> rt1320-sdca sdw:0:1:025d:1320:01: rt1320_sdw_hw_params rt1320-aif1
>
> What I checked:
>
> - Mixer: "Speaker Switch" on, "rt1320-1 OT23 L/R Switch" on,
> "rt1320-1 FU21 Playback Volume" 87 (0 dB), "RX Channel Select" L,R.
> - Direct ALSA playback (speaker-test -D plughw:amdsoundwire,2) and
> playback through PipeWire both run to completion with no sound.
> - Runtime PM: forcing power/control=on for the RT1320, so io_init runs
> only once at boot, does not change the result.
> - rt1320-patch-code-vc.bin is installed and loads without error.
> - No DSP firmware is loaded: there is no "realtek,dspfw-name" property,
> and linux-firmware has no realtek/rt1320/rt1320_<vendor>_<product>_<sku>.dat
> or rt1320_RAE_<vendor>_<product>_<sku>.dat for this machine.
>
> On Windows, Realtek's SDCA XU extension driver (RtkSdcaXuLG.inf,
> 10.0.297.1) binds to this amplifier:
>
> SOUNDWIRE\SDCA_10&MAN_025D&FUNC_1320&TYPE_01&VER_01&ADR_04&LID_01&UID_01&SUBSYS_056C1854
>
> It ships RTKDAT_1854.dat and RTKDAT_GENERAL.dat and references per-SSID
> ALC1320 DSP firmware / preset files (ALC1320\FWFiles.txt,
> FWFiles_LG_1854_*.txt, alc1320fw_preset_*\alc1320_afx1_*.dat.bin,
> RAE_XU). So on Windows a DSP firmware and RAE preset are loaded for this
> amplifier, while on Linux none is.
>
> In addition, the ACPI SmartAmp function carries a 5627-entry
> "mipi-sdca-function-initialization-table" that differs from
> rt1320_vc_blind_write[] in a number of registers (full list was attached
> to v1), for example:
>
> register ACPI driver
> 0xc900 0xd0 0x73
> 0xc901 0x09 0x04
> 0xd471 0xba 0x3a
> 0xd479 0x40 0x20
> 0xdb08 0xe7 0x7a
>
> Questions:
>
> 1. Shuming: is the missing DSP firmware / RAE preset the reason the
> amplifier stays silent on this design? If so, could Realtek provide
> RT1320 DSP and RAE files for the LG gram 16Z95U (SSID 1854:056c) to
> linux-firmware? I can test them.
> 2. Vijendar: is SDW1 / ACP70_SW_AUDIO1_TX the right pin for an
> amplifier on link 1 with ACP rev 0x72, as used by the existing
> rt722 (link 0) + rt1320 (link 1) entry?
Yes, Speaker endpoint should use AUDIO1_TX pin.
>
> I can provide the full acpidump, dmesg and alsa-info output.
>
> Disclosure: the analysis and both patches were prepared with the help of
> an AI assistant (Claude); I built and tested them on the hardware.
>
> Thanks,
> Jaehoon Kim
>
> body content if you don't wish to send a summary.
> From: fixca <jaehoon1744@gmail.com>
> To: broonie@kernel.org,Vijendar.Mukunda@amd.com,shumingf@realtek.com
> Cc: linux-sound@vger.kernel.org,linux-kernel@vger.kernel.org
> Bcc:
> Reply-To:
> Subject: [PATCH RFC v2 0/2] ASoC: amd: SoundWire audio for LG gram 16Z95U (rt713 + rt1320), speaker still silent
> In-Reply-To:
^ permalink raw reply [flat|nested] 6+ messages in thread