mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH RFC v2 0/2] ASoC: amd: SoundWire audio for LG gram 16Z95U (rt713 + rt1320), speaker still silent
@ 2026-11-11  1:39 fixca
  2026-11-11  1:39 ` [PATCH RFC v2 1/2] ASoC: amd: acp: Add ACP70 ACPI flag override for LG gram 16Z95U fixca
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: fixca @ 2026-11-11  1:39 UTC (permalink / raw)
  To: broonie, Vijendar.Mukunda, shumingf; +Cc: linux-sound, linux-kernel

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?

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

* [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

* [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 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

* 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

* 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

end of thread, other threads:[~2026-11-11  2:02 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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: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  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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®