From: fixca <jaehoon1744@dankook.ac.kr>
To: broonie@kernel.org, Vijendar.Mukunda@amd.com, shumingf@realtek.com
Cc: linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org,
Jaehoon Kim <jaehoon1744@dankook.ac.kr>,
"Claude Opus 5.5" <noreply@anthropic.com>
Subject: [PATCH RFC v2 2/2] ASoC: amd: acp70: Add rt713 + rt1320 SoundWire machine for LG gram 16Z95U
Date: Wed, 11 Nov 2026 10:39:10 +0900 [thread overview]
Message-ID: <20261111013953.4011-3-jaehoon1744@gmail.com> (raw)
In-Reply-To: <20261111013953.4011-1-jaehoon1744@gmail.com>
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
next prev parent reply other threads:[~2026-11-11 1:40 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
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 2:27 ` sashiko-bot
2026-11-11 1:39 ` fixca [this message]
2026-11-11 2:05 ` [PATCH RFC v2 2/2] ASoC: amd: acp70: Add rt713 + rt1320 SoundWire machine " 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
2026-11-11 2:20 ` Mark Brown
2026-11-12 4:01 ` [PATCH RFC 0/1] ASoC: rt1320: LG gram 16Z95U speaker works with the BIOS init values fixca
2026-11-12 4:01 ` [PATCH RFC 1/1] ASoC: rt1320: Use the BIOS init values on LG gram 16Z95U fixca
2026-11-12 4:15 ` sashiko-bot
2026-11-12 4:46 ` [PATCH RFC 0/1] ASoC: rt1320: LG gram 16Z95U speaker works with the BIOS init values fixca
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261111013953.4011-3-jaehoon1744@gmail.com \
--to=jaehoon1744@dankook.ac.kr \
--cc=Vijendar.Mukunda@amd.com \
--cc=broonie@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-sound@vger.kernel.org \
--cc=noreply@anthropic.com \
--cc=shumingf@realtek.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.