From nobody Mon Jun 8 08:28:41 2026 Received: from mail-wm1-f49.google.com (mail-wm1-f49.google.com [209.85.128.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4CED82F8EA5 for ; Sun, 31 May 2026 10:12:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780222347; cv=none; b=HWxDDGW9OPSoA9wfHTAUS9QDHAK5Y0jehRwP0F9/PkPv96/I31akpHa3IFQmCvJlvi90PD1kIwFiurVeNd2biJSvGVovxiw/GPtnITE1Nu5uucyqnmzdR4SniXN1pkvdyLwY4eXZphIdgLDj9u8FGagWSxJEyw5MObX1L8nxyKg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780222347; c=relaxed/simple; bh=PeVfZjGGD6vnpATXGvPJ8RNWcC+mfOffuToOiXVCtAM=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=YSbTBFEZzMw3gS0v3Q9I2PCIKbAdQnmJwqOm/iLO2WxziBIs3y0UBnUjZuGFdsw5bA6OUy4F3aN+LZO63h18tPx9VLADjxrnH2TH1BwuGCYy26zAdUMuxLi3y+eL/n4PxUY6PDgRAoq08Cn2g5ooyx4qOIE9aWgKA9Q1XeyH250= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=U8Dax0xo; arc=none smtp.client-ip=209.85.128.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="U8Dax0xo" Received: by mail-wm1-f49.google.com with SMTP id 5b1f17b1804b1-49039a8851fso94348765e9.2 for ; Sun, 31 May 2026 03:12:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780222345; x=1780827145; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=/FhNU8iy/Pw02vwxZLCOBLpS/iNq8CZr57lpsPr3HCU=; b=U8Dax0xoIpsot3pjPyUhk4e6k8twHAdZxskGifB7N3HKEq/0TL36KB3YdvbAyePYcP GuO5cUX/kSzes3gxiz9vXRDCZK2vvkvCsouCBuEzOlWL7vlsrRi0dU9jv0H3G8eo2UBu vbc78L7KE/aTXRBlUmAich8felmdYMjhC/k+tV2ldewD4PMfRAYTHQhhOlg2X19+Ilpq 1sYHhjz8qM3pePR11hW4vYASuMqNrrcHn8GaUSoc78iIVUhOrIGghO5uZx8d9K/PCBSB XHytMPIK7716i2ArmhxbJl1YsjDfiSty0G9fhYYV1xXGZZ3yJwdNrigk+I0BVjl3XGbD RzpQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780222345; x=1780827145; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=/FhNU8iy/Pw02vwxZLCOBLpS/iNq8CZr57lpsPr3HCU=; b=A5yI9n3Xh7d4GBfsRaHFfm7ZfiB+qhbl3YA4vd6qTwa7uzPYOJzc3duUIXYRjrTeXD 51t813Xbw94V9ydy8eGODhj3ZON8IDynoi5CkNE9UFl7mDLYc7+yPFy5KWA45hTME6nm 9TpvOImJ5QH6s1mOle9ZKXH/U4UFeNUplyR/Nkk0fVNNYEyzYHGen0/B/YUIvW9vvFHc MHViYovkh45mFA79S3CRQLIJNAIFNZrPtasbHffUu8tClZ16cAPKLLX3EOBOYo06+Gxe WphWmbgbe+oAJxdaQOOr44znhG5QfRGELF5qIRAOAsAnEjWKPGb7mFGQ9xbraZ2gE3Zo Ohig== X-Forwarded-Encrypted: i=1; AFNElJ/dLSXgCst1SplxEu1ntonvPNN7hKx7hdLL6yKhMo5NjReWHDB/AlW53wpCygUUHg4d5rrxEv3eO39bztY=@vger.kernel.org X-Gm-Message-State: AOJu0YxrJscZTn9Rsi70BUeR654LKwLH98NElb3cns64gVZlJsOkCU+I trARDJOS+lwIdkANTNXPwDmMdqWr9HIoSY35LQ5y3iLXFYQtKkIzE4ZP X-Gm-Gg: Acq92OGGI3TJ2MoAs/Rz+OaP/Oahz2QB2w/CZ8+w2Hb/8VeRIHfap6JHNEyMcEbz8rM uwQWXjHdIqoXib23ybIwmcG7nBy7q8YStHvGyrWNnRl+fnjGBs75HjRkSToynmCYmRYseb9OWje VLQ+E0Pz1Rd/3ktuF30I0gzTsWSoxj+OoPLpeJJbLVFBCATnIAJ/sQWxzZ8/o3rh5GYrzQT8bi2 c+hRY4IuSWU5FnueJGGFP3DwziRPi3VvI4pKcp7HRqaMbFPsXloXXxSzH7mh5npNaVP08Q+567r i1bK3qAYj/4mdSpAUPpWAegQLeEKXckWjoZvb9/WB2OcYXg/9t4IZtm8cKy7W19MIOj7siHO/u1 zEIhjTDrfrqqPY4auZdvaSTYFbCsHtc3Z/+g7H7suOx1uss01AC6T6q4LAaPiVyCG+Qsh0isbBP 4mJnxnXVQjzxT2XYkEXMjPkDtE5MqiCMul5WSe3sSbmokLayubZE54vC8hB6VLqKqdYAhtOcLZB dj1HgPCwwk= X-Received: by 2002:a05:600c:6287:b0:490:a1a6:6f24 with SMTP id 5b1f17b1804b1-490a29338a8mr122547445e9.15.1780222344593; Sun, 31 May 2026 03:12:24 -0700 (PDT) Received: from developer-notebook.home ([146.185.239.90]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4909c0d4f4esm71156125e9.1.2026.05.31.03.12.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 31 May 2026 03:12:24 -0700 (PDT) From: Aleksander Pshenitsyn To: Mark Brown , Vijendar Mukunda , Liam Girdwood , Jaroslav Kysela , Takashi Iwai Cc: Venkata Prasad Potturu , linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, Aleksander Pshenitsyn Subject: [PATCH] ASoC: amd: acp70: add standalone RT721 SoundWire machine Date: Sun, 31 May 2026 13:11:59 +0300 Message-ID: <20260531101159.14241-1-brains.fatman@gmail.com> X-Mailer: git-send-email 2.54.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The ASUS Vivobook 18 M1807GA (AMD ACP7.x, PCI 1022:15e2, subsystem 1043:3531) exposes a single Realtek RT721 SDCA codec on SoundWire link 1. The BIOS reports the ACP audio config flag as 0 (SoundWire mode), so snd_pci_ps claims the device, brings up the SoundWire managers and enumerates the RT721 peripheral (sdw:0:1:025d:0721:01); the rt721-sdca codec driver binds successfully. No sound card is created, however: acp63_sdw_machine_select() walks snd_soc_acpi_amd_acp70_sdw_machines[] and finds no entry whose declared SoundWire peripherals are all present on the bus. The only existing RT721 entry, acp70_rt721_l1u0_tas2783x2_l1u8b, additionally requires two TAS2783 amplifiers and deliberately exposes the RT721 as jack + DMIC only. This M1807GA variant has no external amplifiers - the RT721's internal AIF2 amplifier path drives the speakers - so that entry never matches and no machine device is registered. Add a standalone RT721 machine entry for link 1 exposing all three RT721 endpoints (jack/AIF1, speaker amplifier/AIF2, DMIC/AIF3), mirroring the standalone RT722 configuration. Place it after the TAS2783 combo entry so platforms that do have the external amplifiers continue to match the more specific entry first. ACPI _ADR of the codec: 0x000130025D072101 (link_id=3D1 version=3D3 mfg_id=3D0x025d Realtek part_id=3D0x0721 class=3D0= x01). Verified on the hardware: with the entry present the amd_sdw machine binds, an "amd-soundwire" card is registered exposing the rt721-sdca AIF1 (SimpleJack) and AIF2 (SmartAmp) PCM devices, and audio plays out of the built-in speakers. Link: https://bugzilla.kernel.org/show_bug.cgi?id=3D221282 Signed-off-by: Aleksander Pshenitsyn --- sound/soc/amd/acp/amd-acp70-acpi-match.c | 44 ++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/sound/soc/amd/acp/amd-acp70-acpi-match.c b/sound/soc/amd/acp/a= md-acp70-acpi-match.c index 1ae43df..18f2918 100644 --- a/sound/soc/amd/acp/amd-acp70-acpi-match.c +++ b/sound/soc/amd/acp/amd-acp70-acpi-match.c @@ -619,6 +619,45 @@ static const struct snd_soc_acpi_link_adr acp70_rt721_= l1u0_tas2783x2_l1u8b[] =3D { {} }; =20 +static const struct snd_soc_acpi_endpoint rt721_endpoints[] =3D { + { /* Jack Playback/Capture Endpoint (AIF1) */ + .num =3D 0, + .aggregated =3D 0, + .group_position =3D 0, + .group_id =3D 0, + }, + { /* Speaker Amplifier Endpoint (AIF2, internal amp) */ + .num =3D 1, + .aggregated =3D 0, + .group_position =3D 0, + .group_id =3D 0, + }, + { /* DMIC Capture Endpoint (AIF3) */ + .num =3D 2, + .aggregated =3D 0, + .group_position =3D 0, + .group_id =3D 0, + }, +}; + +static const struct snd_soc_acpi_adr_device rt721_1_single_adr[] =3D { + { + .adr =3D 0x000130025D072101ull, + .num_endpoints =3D ARRAY_SIZE(rt721_endpoints), + .endpoints =3D rt721_endpoints, + .name_prefix =3D "rt721" + } +}; + +static const struct snd_soc_acpi_link_adr acp70_rt721_only[] =3D { + { + .mask =3D BIT(1), + .num_adr =3D ARRAY_SIZE(rt721_1_single_adr), + .adr_d =3D rt721_1_single_adr, + }, + {} +}; + struct snd_soc_acpi_mach snd_soc_acpi_amd_acp70_sdw_machines[] =3D { { .link_mask =3D BIT(0) | BIT(1), @@ -711,6 +750,11 @@ struct snd_soc_acpi_mach snd_soc_acpi_amd_acp70_sdw_ma= chines[] =3D { .links =3D acp70_rt721_l1u0_tas2783x2_l1u8b, .drv_name =3D "amd_sdw", }, + { + .link_mask =3D BIT(1), + .links =3D acp70_rt721_only, + .drv_name =3D "amd_sdw", + }, {}, }; EXPORT_SYMBOL(snd_soc_acpi_amd_acp70_sdw_machines); --=20 2.53.0