From nobody Mon Feb 9 01:01:33 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 251153D3488; Tue, 3 Feb 2026 16:46:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770137197; cv=none; b=b4sRRrKKonixPDpIlp/mEYw7Kbr1b9l/m8Wg5G8zEbJu4/NjXd4gPFfmkKfbPYAvpFVxJsyl5mitMxjSCdKYF5d/iptQbKC2kzshwpdS5NIu+LY0d101lsC8Q1KwsNWigrV1r3US2zVSvug+xL6n1V7DgI8UpCoKT6SxlUHMDkI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770137197; c=relaxed/simple; bh=Iq2VyvqCDRD+eOJzowyqd7ph1sHZmTOb8jsOzunp67A=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=REmEG4qcmfMAZWknFrzGqaD6lzQyA7w7VLIRmHDuGX9QdNA/fO82q4sJCf+70sj//txa3P1+RhzZck5XVh30r5R3vz85Zw8vnCZ3buNGvHhmCZKfwjzyE5W/qoo9Y7vkMZ6iPk/+ACAORsqt7n5pxXaISarKJR6NHL2Q0lm+bhQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=Dvtt/hvm; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="Dvtt/hvm" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1770137194; bh=Iq2VyvqCDRD+eOJzowyqd7ph1sHZmTOb8jsOzunp67A=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=Dvtt/hvmF9m49AHUiZkUYVyzzLE59Ff2jp98hHXz9CEk4Rp61HWm77xGc4xDqdF/g dyRtyZLK94tDmqvSETqYecxv4LVcETAZ/sS6NFFTEV8ux1ZyPQ2aTwYJNXIDB2Acrf /vgXSeg0fppNzkdoodywIgEixdiZm55FRr+6mGb8poYm3DaxXhvYNOX7CZaMMRV+u+ tWtbU6WfmG3S/mmPYrK4AhnyWy6aJpAHfABQoiRaw3KdVXyVwMYtAccJ4+yR5ktZKm g8l+jexw3Jne4ZmmzSSFtwfTFou1I/zPZ6CYR82kL4SYaeo5lgCqWr1Cp+zM05/Ps1 KO9rTEUyKAnCg== Received: from jupiter.universe (dyndsl-091-248-189-143.ewe-ip-backbone.de [91.248.189.143]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id 6719217E1274; Tue, 3 Feb 2026 17:46:34 +0100 (CET) Received: by jupiter.universe (Postfix, from userid 1000) id 12E3B480023; Tue, 03 Feb 2026 17:46:34 +0100 (CET) From: Sebastian Reichel Date: Tue, 03 Feb 2026 17:46:23 +0100 Subject: [PATCH v2 01/10] ASoC: rockchip: spdif: Use device_get_match_data() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260203-rockchip-spdif-cleanup-and-bsp-sync-v2-1-4412016cf577@collabora.com> References: <20260203-rockchip-spdif-cleanup-and-bsp-sync-v2-0-4412016cf577@collabora.com> In-Reply-To: <20260203-rockchip-spdif-cleanup-and-bsp-sync-v2-0-4412016cf577@collabora.com> To: Liam Girdwood , Mark Brown , Jaroslav Kysela , Takashi Iwai , Heiko Stuebner Cc: Alexey Charkov , Sjoerd Simons , linux-sound@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, Sebastian Reichel X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1245; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=Iq2VyvqCDRD+eOJzowyqd7ph1sHZmTOb8jsOzunp67A=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGmCJmkgSHXAkdrHlb1P37EIIWW44+I3S9jvP d0/OBDiR1M8s4kCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJpgiZpAAoJENju1/PI O/qao6AP/1K50SluzsdZygiemzGEhjxlWtrQkO8NJXlFk5U2t5XWLPuG8X5KSoaBDWoCuKG5Uex e1x+rwPUnNIVxCBgriDfHXLWWktwyZcgLl43wqYetkJNq/2IqM3+nmH/XiSMBqIeeIdGMic2ebo 8gT9W+56G0Rfp7/Nia01EqRr5Xg49aKBz+TperIdpifNCWHCQ2RQVDBb73caBAsMuj/odJl2hw+ fp7UND6lgpKY3Iqtl2/EA7bpOVUdheZF4oSDRqUo93Hv03sSlDDJP0G1l1qBQatwH5IK1FiOsNz UqpG5/NsnhwERuvqgCftxS1dvsgB07w0fm0zkFfsA8F19f12VdURShyDfvspq5R2z0fJYwV36As hO1rEF5ouImtjdu1kJ9aPi+ndH3SA4Q9VriQOLO7OQdkZqCBvTkfz85Bv9YiMvihJ5l4gTgQ9m4 TlnU58yg8Rjwo8Yoq2SqxZatFo0VPpDf4qB8a+YVEWxI/F5YZ4ZZtQu5egBGY/c7dZvokuTRTS/ gCbaUipT6MlWRT8psloUo/9gWiedGtFmIslFcb0S8zpO/mOm21FOsZq1zYEaFyGp82j8wU11glX yYJk38FCub9HxirPmyOCqT7bCw2zhN+dV/COSSu+84kuIh8Bt2JtUZ9YJqy7o8A6a+ZgLgB/Hil 1DqKqK1Dt/vqmxWe8gT8qsA== X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A Use device_get_match_data(), so that the probe routine does not directly reference the of_match_table. This allows moving the table at the end of the file where most recent drivers have it. Signed-off-by: Sebastian Reichel --- sound/soc/rockchip/rockchip_spdif.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sound/soc/rockchip/rockchip_spdif.c b/sound/soc/rockchip/rockc= hip_spdif.c index d365168934dc..23f14274a6e0 100644 --- a/sound/soc/rockchip/rockchip_spdif.c +++ b/sound/soc/rockchip/rockchip_spdif.c @@ -283,14 +283,14 @@ static const struct regmap_config rk_spdif_regmap_con= fig =3D { static int rk_spdif_probe(struct platform_device *pdev) { struct device_node *np =3D pdev->dev.of_node; + enum rk_spdif_type spdif_type; struct rk_spdif_dev *spdif; - const struct of_device_id *match; struct resource *res; void __iomem *regs; int ret; =20 - match =3D of_match_node(rk_spdif_match, np); - if (match->data =3D=3D (void *)RK_SPDIF_RK3288) { + spdif_type =3D (uintptr_t) device_get_match_data(&pdev->dev); + if (spdif_type =3D=3D RK_SPDIF_RK3288) { struct regmap *grf; =20 grf =3D syscon_regmap_lookup_by_phandle(np, "rockchip,grf"); --=20 2.51.0 From nobody Mon Feb 9 01:01:33 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2CC1D3D348B; Tue, 3 Feb 2026 16:46:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770137198; cv=none; b=MUXfEI5TLYvLI+cRxC2qvJuH0vQhlrb3ofdWzTu/E4mTyRXiFviabbV5zJoab3w87ZD2HuiHA085WkHssd82nUIcsMMK/F2ANtsPAdU74mWVvZviYjtUnBMRDrkxcWUYLK2g98jRdvam0cVYX5pyTtQJKx3k0RcZqArTxeyFGIo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770137198; c=relaxed/simple; bh=kL9kNvqSXpOVHTWoVnZEkOBC5bbK790jsX9GDjm0yZg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=kulbQYSYbGgizi298SiHrU0mvXLnm7CwCLNt5KrD/goyUnSUGVhzKF3cndUMWS7hTQOcAcn/a7P79Ge0GmArPwjKu6HQZfw9ZFAznhUzBERJLSfbIArnVhLQMLpaLvR7/IJTazbuTisnpAt7dCV8RBveiviCFuhH45ND2n1XeEA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=SmdDJkl6; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="SmdDJkl6" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1770137194; bh=kL9kNvqSXpOVHTWoVnZEkOBC5bbK790jsX9GDjm0yZg=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=SmdDJkl6OaIB5sdX5xGivZrL2b4hCZ9JGmmngEIkpnKg0sT1PGapaWDC1pZAgCG6c 5oXyzbH9g8sKtaXNcVnQLe+OGebbd3kutsBSqJqWdyQv8BU1TwFgdhp1W4LYBpFvjK EDQDsqU4RQdE1pUrMu0MvSiCq477ThoIztg92VlE0F3wPjhyliyt+1Bmd2O+cQpVbN axkWI8g6mIv++wsx0raFfyZMRNR7fLFTiFo8YrcslvT2HR4/X7duvWGpjfIlIWt/O4 uvCbmBScZcvTeofb7pyJCzXrKih1mD8MA+18YVB/rYbigXLgEA2x5K1Jup57iPjbww xfZykvdeKvPgg== Received: from jupiter.universe (dyndsl-091-248-189-143.ewe-ip-backbone.de [91.248.189.143]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id 7692517E14D8; Tue, 3 Feb 2026 17:46:34 +0100 (CET) Received: by jupiter.universe (Postfix, from userid 1000) id 134CE480026; Tue, 03 Feb 2026 17:46:34 +0100 (CET) From: Sebastian Reichel Date: Tue, 03 Feb 2026 17:46:24 +0100 Subject: [PATCH v2 02/10] ASoC: rockchip: spdif: Move DT compatible table Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260203-rockchip-spdif-cleanup-and-bsp-sync-v2-2-4412016cf577@collabora.com> References: <20260203-rockchip-spdif-cleanup-and-bsp-sync-v2-0-4412016cf577@collabora.com> In-Reply-To: <20260203-rockchip-spdif-cleanup-and-bsp-sync-v2-0-4412016cf577@collabora.com> To: Liam Girdwood , Mark Brown , Jaroslav Kysela , Takashi Iwai , Heiko Stuebner Cc: Alexey Charkov , Sjoerd Simons , linux-sound@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, Sebastian Reichel X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=3102; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=kL9kNvqSXpOVHTWoVnZEkOBC5bbK790jsX9GDjm0yZg=; b=owJ4nAFsApP9kA0DAAoB2O7X88g7+poByyZiAGmCJmktJo4NHOcyG3Dl6iUdAhqQQtSzGBW7n 0uoPRTCGokqjIkCMgQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJpgiZpAAoJENju1/PI O/qaaVsP92jEScDntHiO/GZ0jdwzx3WlhlhIDAvOU0LpoW//NRlHvQmwIeL5tSIy0uFvqIwoUDv xKxBgBMI8GfSOL7PN/Q+s/6djx7WY1Qoz84Otb1N8XgdSxyLhKB9mH6Jlr65GXGPypgg1qisklX enFK0g1CxLD4XKre4PW6vsj4E8TwsH4vfT7eSDnVXhuCFua2FMiIK6Dm8HxYsNab89A46zOKUwG Fku82u2OOeT8989JzrJ3FM0MJdcO3JCqkEdFxBznU9sJR8M8l2XylwfTfGuBnGibPAuXCc0JjSu kWpXRgGwjNg3iHHgWMNu7IhG5KNy6YNOnEO56VuA++rvj6nRAxzRVz/XtDCeat7Qb0ICdzA/Gqp 2BVsD1x/hJ8fDPeFEgJMqmP87H994XNmdxXgo27OyGxhEecXnTqn0c8IYZTJpdSrRpmRCJioopR nC78QzQiGqz8mbAYK1R9OrPB9f6XSTTAX+VuIb+EeVOHzAhlh6EN+nbx2GO5y6OpPgJ2ZO/LSZX czXyWK3H3P6Kt9v2PX5uS+BBMNjxhhUJ8lcjqq+36LD3qpWWZoy2r1rGQcfIo9ubKso8On9IFRa nr7RPhtKpXqxeQpTCOy0VsnQkcItLY0H5yq5RnMa5vvk/wh2fbmbtioiRMNqk9BOCK6/6dEpVeN XZkegABkDVBg70mW7oyJz X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A Move rk_spdif_match DT compatible table to the usual place before the platform-driver struct definition and drop the useless of_match_ptr(), since it is fine to reference the DT id table even when OF support is disabled (which makes the driver useless anyways). Signed-off-by: Sebastian Reichel --- sound/soc/rockchip/rockchip_spdif.c | 48 ++++++++++++++++++---------------= ---- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/sound/soc/rockchip/rockchip_spdif.c b/sound/soc/rockchip/rockc= hip_spdif.c index 23f14274a6e0..331a23d5173f 100644 --- a/sound/soc/rockchip/rockchip_spdif.c +++ b/sound/soc/rockchip/rockchip_spdif.c @@ -40,29 +40,6 @@ struct rk_spdif_dev { struct regmap *regmap; }; =20 -static const struct of_device_id rk_spdif_match[] __maybe_unused =3D { - { .compatible =3D "rockchip,rk3066-spdif", - .data =3D (void *)RK_SPDIF_RK3066 }, - { .compatible =3D "rockchip,rk3188-spdif", - .data =3D (void *)RK_SPDIF_RK3188 }, - { .compatible =3D "rockchip,rk3228-spdif", - .data =3D (void *)RK_SPDIF_RK3366 }, - { .compatible =3D "rockchip,rk3288-spdif", - .data =3D (void *)RK_SPDIF_RK3288 }, - { .compatible =3D "rockchip,rk3328-spdif", - .data =3D (void *)RK_SPDIF_RK3366 }, - { .compatible =3D "rockchip,rk3366-spdif", - .data =3D (void *)RK_SPDIF_RK3366 }, - { .compatible =3D "rockchip,rk3368-spdif", - .data =3D (void *)RK_SPDIF_RK3366 }, - { .compatible =3D "rockchip,rk3399-spdif", - .data =3D (void *)RK_SPDIF_RK3366 }, - { .compatible =3D "rockchip,rk3568-spdif", - .data =3D (void *)RK_SPDIF_RK3366 }, - {}, -}; -MODULE_DEVICE_TABLE(of, rk_spdif_match); - static int rk_spdif_runtime_suspend(struct device *dev) { struct rk_spdif_dev *spdif =3D dev_get_drvdata(dev); @@ -377,12 +354,35 @@ static const struct dev_pm_ops rk_spdif_pm_ops =3D { RUNTIME_PM_OPS(rk_spdif_runtime_suspend, rk_spdif_runtime_resume, NULL) }; =20 +static const struct of_device_id rk_spdif_match[] =3D { + { .compatible =3D "rockchip,rk3066-spdif", + .data =3D (void *)RK_SPDIF_RK3066 }, + { .compatible =3D "rockchip,rk3188-spdif", + .data =3D (void *)RK_SPDIF_RK3188 }, + { .compatible =3D "rockchip,rk3228-spdif", + .data =3D (void *)RK_SPDIF_RK3366 }, + { .compatible =3D "rockchip,rk3288-spdif", + .data =3D (void *)RK_SPDIF_RK3288 }, + { .compatible =3D "rockchip,rk3328-spdif", + .data =3D (void *)RK_SPDIF_RK3366 }, + { .compatible =3D "rockchip,rk3366-spdif", + .data =3D (void *)RK_SPDIF_RK3366 }, + { .compatible =3D "rockchip,rk3368-spdif", + .data =3D (void *)RK_SPDIF_RK3366 }, + { .compatible =3D "rockchip,rk3399-spdif", + .data =3D (void *)RK_SPDIF_RK3366 }, + { .compatible =3D "rockchip,rk3568-spdif", + .data =3D (void *)RK_SPDIF_RK3366 }, + {}, +}; +MODULE_DEVICE_TABLE(of, rk_spdif_match); + static struct platform_driver rk_spdif_driver =3D { .probe =3D rk_spdif_probe, .remove =3D rk_spdif_remove, .driver =3D { .name =3D "rockchip-spdif", - .of_match_table =3D of_match_ptr(rk_spdif_match), + .of_match_table =3D rk_spdif_match, .pm =3D pm_ptr(&rk_spdif_pm_ops), }, }; --=20 2.51.0 From nobody Mon Feb 9 01:01:33 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 353BA3D348C; Tue, 3 Feb 2026 16:46:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770137198; cv=none; b=I+EcN51Cd1Jypu3iZwLGzf7hlLVSMWbWXQYY8jelVqHhP1wK9p34V6VQMUafY2rHOSb+1puiSPN+AQ+PVZzR78JdvbaCM84AShtOoNv1x7GHDTmtcSEKlgBetU68Ncti0R/enS43tnkl2EENN9HZspwsOWpjJ4/lu1Cdokg2Scc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770137198; c=relaxed/simple; bh=rwMMsbUCdGGDTM0SilCBE6mODEWndNITn0aSniMBH7Q=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=tLP4+bDTiG6pE3cYKCrwIBQDPkdWjA13IIlhXywzSOm7bFGbF6lr9vuHpql2yX5eaXyzhS0CQ8BQ/+/LX62RsJvi1HoniAow7Z7qiURPADOkedE+BCflG36CQ9Y6o88+3wfUq90bDhvnqD+t7nUz/UiFZXFpNrIblrKuMH90CYo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=pmprN5w7; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="pmprN5w7" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1770137194; bh=rwMMsbUCdGGDTM0SilCBE6mODEWndNITn0aSniMBH7Q=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=pmprN5w75oipFVj1vkHikL5kpHDlp/8IozSFgEQJeYT2887bxNE+ILnV1iZruTVc4 1j+UlKFM+zQBh511Kquv3iUui5aagoaQMmiHm8Yeu6pBoqwdPA7NF8Pt+XwkSm1xPI B43F4jhZ3mNUeDKm0fEBhBKtNahzvv05N0CZnSAZaiuNzjznFi+FL+MKpO/zwcxypA koOOf3YWGu3M24c6Kp6qqgN+e2mDz2+D7VFhC4p8SCmeeklRMBHlhs0qK062YvTsdk YNkHvCZ87v144IYJEotFAgE2gwUrxb2CPPCrPkq6FVQpnaU3stZRPEIkFvrtUxePVD G8FfJOub4PSew== Received: from jupiter.universe (dyndsl-091-248-189-143.ewe-ip-backbone.de [91.248.189.143]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id 7B32F17E14F5; Tue, 3 Feb 2026 17:46:34 +0100 (CET) Received: by jupiter.universe (Postfix, from userid 1000) id 14224480028; Tue, 03 Feb 2026 17:46:34 +0100 (CET) From: Sebastian Reichel Date: Tue, 03 Feb 2026 17:46:25 +0100 Subject: [PATCH v2 03/10] ASoC: rockchip: spdif: Fully convert to device managed resources Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260203-rockchip-spdif-cleanup-and-bsp-sync-v2-3-4412016cf577@collabora.com> References: <20260203-rockchip-spdif-cleanup-and-bsp-sync-v2-0-4412016cf577@collabora.com> In-Reply-To: <20260203-rockchip-spdif-cleanup-and-bsp-sync-v2-0-4412016cf577@collabora.com> To: Liam Girdwood , Mark Brown , Jaroslav Kysela , Takashi Iwai , Heiko Stuebner Cc: Alexey Charkov , Sjoerd Simons , linux-sound@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, Sebastian Reichel X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2785; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=rwMMsbUCdGGDTM0SilCBE6mODEWndNITn0aSniMBH7Q=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGmCJmmX8PJRFPV3YzuO97jWFDcsxO+D17Qqh UJ8i6FhXBD0bYkCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJpgiZpAAoJENju1/PI O/qaS/QP/RtK2mrjYHXnWUAAJnBza2Oji43ti8QpEtuUhtxnoQSukxvugAj/1lgXgzvGmUeAdwo 7/5WKSKaM/uTyF8DdR5MFl7BYezLUuLcUdMZrjBGdXyxleL3lsFi4msT6rrpdDgeeA4rHtx1iYY kcNSu3kXt0CDkne8+30hDKUuQP/y245XgW03b4imjn9H+/eGAlcxf3mSZgDbtAgFYCPTybIx+ML uUbcGyAZARHZWnMokHGzzxB7r9sha7pMRpT62PSQH5GLea+Yi2/dD9zybFCMuVRN1Fu1SOq7tl9 XV9yTo9mtVVu5OkijkdRetKSZniWJyp46nXmVMtQnLrxNYQ+KnrCXxDpRP3K9/3McuhnbaHjleD iejOWvYemVb6jegTwKLab8baS1hIAHYM1Q8p6LbtGYCjTcGrmshmAsIO6DmdQA+umZofsuQsGuG 3DfUSNMVzSuRsLZ+X4wUJ0lKLaq2PNquivFTv9pf1EUjLDor3dxDu8N2h/616ypfESc7Dq8GeXL efxC0vDaxcGf9Ln3K59SWkvSgyEaLn3fc+3/zGrgmVhKAsCNU0nf1mPbVz9FQYHe76zycfQTS3f T69/49/hXxOXmT+Gk8Ab33s0UJtBhrZFGsnT6VdX9pXNtaY0ggC4KysH3ZULJQm9KKYg3Yqagbx RELGYMtwpqEAwQ42CnCUv0w== X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A This driver mixes device managed resources with unmanaged ones and (as a lot of them do) gets the order wrong resulting in potential race condition problems at module removal time. Let's go to full device managed resources to cleanup the code and get rid of the potential race condition. Signed-off-by: Sebastian Reichel --- sound/soc/rockchip/rockchip_spdif.c | 37 +++++++++++++++++----------------= ---- 1 file changed, 17 insertions(+), 20 deletions(-) diff --git a/sound/soc/rockchip/rockchip_spdif.c b/sound/soc/rockchip/rockc= hip_spdif.c index 331a23d5173f..841ef499ed7f 100644 --- a/sound/soc/rockchip/rockchip_spdif.c +++ b/sound/soc/rockchip/rockchip_spdif.c @@ -257,6 +257,14 @@ static const struct regmap_config rk_spdif_regmap_conf= ig =3D { .cache_type =3D REGCACHE_FLAT, }; =20 +static void rk_spdif_suspend(void *data) +{ + struct device *dev =3D data; + + if (!pm_runtime_status_suspended(dev)) + rk_spdif_runtime_suspend(dev); +} + static int rk_spdif_probe(struct platform_device *pdev) { struct device_node *np =3D pdev->dev.of_node; @@ -311,11 +319,16 @@ static int rk_spdif_probe(struct platform_device *pde= v) spdif->dev =3D &pdev->dev; dev_set_drvdata(&pdev->dev, spdif); =20 - pm_runtime_enable(&pdev->dev); + ret =3D devm_add_action_or_reset(&pdev->dev, rk_spdif_suspend, &pdev->dev= ); + if (ret) + return ret; + + devm_pm_runtime_enable(&pdev->dev); + if (!pm_runtime_enabled(&pdev->dev)) { ret =3D rk_spdif_runtime_resume(&pdev->dev); if (ret) - goto err_pm_runtime; + return ret; } =20 ret =3D devm_snd_soc_register_component(&pdev->dev, @@ -323,31 +336,16 @@ static int rk_spdif_probe(struct platform_device *pde= v) &rk_spdif_dai, 1); if (ret) { dev_err(&pdev->dev, "Could not register DAI\n"); - goto err_pm_suspend; + return ret; } =20 ret =3D devm_snd_dmaengine_pcm_register(&pdev->dev, NULL, 0); if (ret) { dev_err(&pdev->dev, "Could not register PCM\n"); - goto err_pm_suspend; + return ret; } =20 return 0; - -err_pm_suspend: - if (!pm_runtime_status_suspended(&pdev->dev)) - rk_spdif_runtime_suspend(&pdev->dev); -err_pm_runtime: - pm_runtime_disable(&pdev->dev); - - return ret; -} - -static void rk_spdif_remove(struct platform_device *pdev) -{ - pm_runtime_disable(&pdev->dev); - if (!pm_runtime_status_suspended(&pdev->dev)) - rk_spdif_runtime_suspend(&pdev->dev); } =20 static const struct dev_pm_ops rk_spdif_pm_ops =3D { @@ -379,7 +377,6 @@ MODULE_DEVICE_TABLE(of, rk_spdif_match); =20 static struct platform_driver rk_spdif_driver =3D { .probe =3D rk_spdif_probe, - .remove =3D rk_spdif_remove, .driver =3D { .name =3D "rockchip-spdif", .of_match_table =3D rk_spdif_match, --=20 2.51.0 From nobody Mon Feb 9 01:01:33 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 94E693D3305; Tue, 3 Feb 2026 16:46:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770137198; cv=none; b=IgwLqVZoIxaUpH6zelLZBJF6IqSCPuz/36U/a9qT5MLSCJ5xbpvQZc14GZB4pwfrbM8n1/eQhdtMusDrfooJp4H0axNLqT4N9eBLXAm/woz2ffoxKRdNo+Tq8K5CxfRi57uvfM7EFuUNh5BC0+kqz04mnOxJci9cC+7C3oEECAk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770137198; c=relaxed/simple; bh=ZRxveFjuHAKz0N9JC6lifo8s63buu6Gdv4EOmOK0de8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Wh6Z7WoeidYJmFlG0A6htRNqtmYD7dLhMJB0jstdFIbA8aeigp+X0DvaHfN0thFePKTjH9xLt6qXlW2xXrLzPR6JbBfESpdgG5SWe3/osSJY+dAE9BnftAch89hWCnpcnheMD57kjsgIJiy2QooIC1pkwbQAiI51tOPeepTe8IQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=e1TsKTxF; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="e1TsKTxF" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1770137194; bh=ZRxveFjuHAKz0N9JC6lifo8s63buu6Gdv4EOmOK0de8=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=e1TsKTxFm2d1oUPJtrrrQPlcPL3VSKBI5Q75WYPIgOu+X6PiXI661JyrrASNic2ir 4PNhsqMRAOyRqNAofs3BgZCf3EDS+aOYEywykqbhUbebm602ZZIu+tm2dkE6zb5ilJ +nqLUQioCbR+KYA+cajACXKnK4yNzC0V4P4xx9H20DVlLcR7vVH0QxgBfBr6pAsKeg Jm0dzuqeWTFR9Gae+6paKUQKpPM435tgYs10lUNkkYnTo7pizepj6qACo6f1945qFq V8A/gGiWV4RDs7TeE4kmF+Rrxv0XbxjyT5jJvwQsbQstzxjoZN4PpsggjVqYGxVRQx yd0ivz8MVHWmQ== Received: from jupiter.universe (dyndsl-091-248-189-143.ewe-ip-backbone.de [91.248.189.143]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id 7EB4E17E150C; Tue, 3 Feb 2026 17:46:34 +0100 (CET) Received: by jupiter.universe (Postfix, from userid 1000) id 15755480029; Tue, 03 Feb 2026 17:46:34 +0100 (CET) From: Sebastian Reichel Date: Tue, 03 Feb 2026 17:46:26 +0100 Subject: [PATCH v2 04/10] ASoC: rockchip: spdif: Use dev_err_probe Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260203-rockchip-spdif-cleanup-and-bsp-sync-v2-4-4412016cf577@collabora.com> References: <20260203-rockchip-spdif-cleanup-and-bsp-sync-v2-0-4412016cf577@collabora.com> In-Reply-To: <20260203-rockchip-spdif-cleanup-and-bsp-sync-v2-0-4412016cf577@collabora.com> To: Liam Girdwood , Mark Brown , Jaroslav Kysela , Takashi Iwai , Heiko Stuebner Cc: Alexey Charkov , Sjoerd Simons , linux-sound@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, Sebastian Reichel X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1609; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=ZRxveFjuHAKz0N9JC6lifo8s63buu6Gdv4EOmOK0de8=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGmCJmlZLSvZNd4ggqytp70MbIaQgmk7mJCC4 5Rcm1NEyWbe6YkCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJpgiZpAAoJENju1/PI O/qaS98QAIE/Z2Q7IpgGLLQqvceXzfwIkMGfA9C+vmXmuu73tq5diU1og1jHqNpau3c5mCZ7v5K 0hGIYiTrWmLKT6OirIUyHfw3iTXKGAUKeay+5szDNymUqmiekVlnhL1t+dFMAHRtVBJf5jskIxC 6VkCjhuR5ac28EIawNkG5FOMMSrJyd2Q7tuSF/x9G3o+iF17HZ3r3pMezrqbvpMy8H9oOqLyRVs 6vv+QcsckJe5hzORv/rPAQfCcg5ul5IQYZ5Gg4JHnTZeNhKkSVhfgfF6VwFkdzzRzXSlkomeO1t KUDNma+EpPnhFs5a6dqM+mzMWkfSzeM9LNYHLzXthkNl7+5OS/vrCZ6qT3piyIXgihXSODEZTdp mYm3jo5tymQMvFYXxQzRnh+uX3DYjS5qGPYtfhUdVBX0JdDj7b2ueSF+3mNzdp+KRqHby1sB+tp pHgrJ7USfYH7UvylNxAiruSzk3Bx79GdoGgJSUICN1tZqfg3nUS8DKe+0bXms2Glg7aJ6/alICJ RxL0hQRpPemBK4k3lL3BGzv78zfU7b++qFAvlDYSm/8ZUPK2UJRcWzqXiL+YPbG7Y6ActDnV92J t/9cMZo9WsrC95vDBseZn7vcTEAC6QGl3nXroXY6YoZkm2481P/IYh6QnUlzFNa9ewTZaROg8xM Lwnf8iAqBaAgyVo5bz3AvDA== X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A Cleanup the probe routine a little bit by using dev_err_probe instead of dev_err. Signed-off-by: Sebastian Reichel --- sound/soc/rockchip/rockchip_spdif.c | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/sound/soc/rockchip/rockchip_spdif.c b/sound/soc/rockchip/rockc= hip_spdif.c index 841ef499ed7f..1c62fcb0d8d4 100644 --- a/sound/soc/rockchip/rockchip_spdif.c +++ b/sound/soc/rockchip/rockchip_spdif.c @@ -279,11 +279,9 @@ static int rk_spdif_probe(struct platform_device *pdev) struct regmap *grf; =20 grf =3D syscon_regmap_lookup_by_phandle(np, "rockchip,grf"); - if (IS_ERR(grf)) { - dev_err(&pdev->dev, + if (IS_ERR(grf)) + return dev_err_probe(&pdev->dev, PTR_ERR(grf), "rockchip_spdif missing 'rockchip,grf'\n"); - return PTR_ERR(grf); - } =20 /* Select the 8 channel SPDIF solution on RK3288 as * the 2 channel one does not appear to work @@ -334,16 +332,12 @@ static int rk_spdif_probe(struct platform_device *pde= v) ret =3D devm_snd_soc_register_component(&pdev->dev, &rk_spdif_component, &rk_spdif_dai, 1); - if (ret) { - dev_err(&pdev->dev, "Could not register DAI\n"); - return ret; - } + if (ret) + return dev_err_probe(&pdev->dev, ret, "Could not register DAI\n"); =20 ret =3D devm_snd_dmaengine_pcm_register(&pdev->dev, NULL, 0); - if (ret) { - dev_err(&pdev->dev, "Could not register PCM\n"); - return ret; - } + if (ret) + return dev_err_probe(&pdev->dev, ret, "Could not register PCM\n"); =20 return 0; } --=20 2.51.0 From nobody Mon Feb 9 01:01:33 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B360F3D3CF7; Tue, 3 Feb 2026 16:46:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770137201; cv=none; b=S9eWZbpoyd6verB4p+ax2xY1Oi4ZXMsp09urAEuUZasS6y2YKCtr2erhLhv67YVp7gKz5MMSR13snDo4ui1TxIfOqIohU5NZKGL9zpMOK1j4LJMLd5YjpzNDBLSSFn25P6MRcQ+rvWwMTpyNeUdtFO2zwEjIushhvSN2MIKbyw0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770137201; c=relaxed/simple; bh=82Au6WbWX/XbCYAat9JgxZ9XoB6C4noOyfxXXw3R4ZQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=TaP3N8o5vpvYJF57XV4jc96sQvtKWEWGuTD+v0Jex0V/66aJ6BkPNrKlqDjyhV1hfmMHpaa0Yt6ZfuDGgsB9oBzMlhIeF3rdp3QoksVn+zLfxXMlblLFkzajYEGZoqzYjXKfuDOPUHKra2orKNtd/D4EcV3/NWGmbpEpPq4DcLA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=MulHVc3y; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="MulHVc3y" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1770137195; bh=82Au6WbWX/XbCYAat9JgxZ9XoB6C4noOyfxXXw3R4ZQ=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=MulHVc3yiKVg7EWuJeNcLS2fBW7s8YZaucy6nKJslCoK0599F5Co2+amb5k6/oCy4 q4RHc7+05HH/Y1X0ZENSK/+bcm/X7gFm5LZcLJPYUxngf6LMgcmW2l5gQ+VIidY78Y cbzZkQCyk5tNDOfc4sDjLKQ9Hz1fXNRw5L84CujUsbQgkyIpaS5DbsEmQhNeXGlVvf VVLOe1WwgYBFMcwHh2L+tMu5+s4cts/3gsYfDMqwuVf9qRzmwVCneunRrBcI6WjR+a vcDxMGzYSWnuDcssXDINeKShZ05nqUnMN0t6fqdwwIGJYM0gnjmW82RFrQYZgEqyAN 5ft2eUywD9T4w== Received: from jupiter.universe (dyndsl-091-248-189-143.ewe-ip-backbone.de [91.248.189.143]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id 0067517E35DC; Tue, 3 Feb 2026 17:46:34 +0100 (CET) Received: by jupiter.universe (Postfix, from userid 1000) id 16BE348002A; Tue, 03 Feb 2026 17:46:34 +0100 (CET) From: Sebastian Reichel Date: Tue, 03 Feb 2026 17:46:27 +0100 Subject: [PATCH v2 05/10] ASoC: rockchip: spdif: Improve sample rate support Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260203-rockchip-spdif-cleanup-and-bsp-sync-v2-5-4412016cf577@collabora.com> References: <20260203-rockchip-spdif-cleanup-and-bsp-sync-v2-0-4412016cf577@collabora.com> In-Reply-To: <20260203-rockchip-spdif-cleanup-and-bsp-sync-v2-0-4412016cf577@collabora.com> To: Liam Girdwood , Mark Brown , Jaroslav Kysela , Takashi Iwai , Heiko Stuebner Cc: Alexey Charkov , Sjoerd Simons , linux-sound@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, Sebastian Reichel , Sugar Zhang X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=978; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=abFzezjxkX7Ga9S847nmHHXXVGcpC1hL5V81nWEem+0=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGmCJmnlJblPCn7rXthXDQ7QZwe+rXMNzyAun gvqdZUa7vwCCIkCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJpgiZpAAoJENju1/PI O/qarJ0P/2rFxf2AuNxjA3t7xD8breTSS/u56B3jPD15IadbdT1CxmzPE83hpo6vBrPFJZ0yxDO 4ZtGaquoFQAFjRlqeO2PAh7Z3fuN4PZs8224e0NBPJZ+IYVihU+l37wGstacdJ6/JcX1vAEtlht ZlkDbHAkZQbWVAXC9LyTrcoUj1vYJ+dC2cEqQ346W51cbBGnBq9lca1V50v7peQCvaYPXfVpTFm Fv6V9Uk5CUxvjyU7E7P7nQnsfxY/0OdLTY4mhMfjRzXqLFTYLcPZcBX+vO7o9Jofu/fDWDzoa9D 4wZbRWm3GQC+aGBPRSqh+KrUyH1r2jyKqq3643IoVvyJ/NCA6D5uw6O2gA+8dF1Wyq5DkSWDPUp kA3jYiWXUpxtvgSJyDGXfTErPFhqRpArwgEYMpUtiemIthu3bEVqJnRGrXNcWoKMGDK8UgS9GrT aw7mG2SjagbIcGEkdQwfBjcTF47EwSpoN4QlzAKyDmmH/ZV75yzMC9HUwKrWaNbhDv9YX0kkHle ycuLZwsX+rrp4EcRN3uqVhGrPLRo6saUHCbwzIrY7W7UkFiyr2Zc8LfXakX9M5cxqhqFNd7t4Ih kI0Zcwl6PzxJi3qtFj9KKjoBnD0zAKI38tBsQiGxe4Z2s1K6OwZe/VeBg1KJV+VzmB35rt3Mon8 8TKNSldmYQQA5+5rYYjwqaQ== X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A From: Sugar Zhang The hardware supports all sample rates up to 19.2kHz. Signed-off-by: Sugar Zhang Signed-off-by: Sebastian Reichel --- sound/soc/rockchip/rockchip_spdif.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/sound/soc/rockchip/rockchip_spdif.c b/sound/soc/rockchip/rockc= hip_spdif.c index 1c62fcb0d8d4..55d64fd4c93b 100644 --- a/sound/soc/rockchip/rockchip_spdif.c +++ b/sound/soc/rockchip/rockchip_spdif.c @@ -188,11 +188,7 @@ static struct snd_soc_dai_driver rk_spdif_dai =3D { .stream_name =3D "Playback", .channels_min =3D 2, .channels_max =3D 2, - .rates =3D (SNDRV_PCM_RATE_32000 | - SNDRV_PCM_RATE_44100 | - SNDRV_PCM_RATE_48000 | - SNDRV_PCM_RATE_96000 | - SNDRV_PCM_RATE_192000), + .rates =3D SNDRV_PCM_RATE_8000_192000, .formats =3D (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S20_3LE | SNDRV_PCM_FMTBIT_S24_LE), --=20 2.51.0 From nobody Mon Feb 9 01:01:33 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B36CB3D3CF8; Tue, 3 Feb 2026 16:46:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770137201; cv=none; b=PnqvevPyhZ+H6oRAagKDPcpzKRCbYOCXyijclcQk/t8VCRWqzohvWITbWFLTYoNLYfGSK/Wg2ZhYMonEUSl72fqr3kt7qgG6SwAa52dWYVBjBABRDAjpQJPd3Azsfra5LypvodLEga9q2ahmTqPup7plaGVaK67evzFNNKZxV7A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770137201; c=relaxed/simple; bh=651DjgUT7OtElKAM6DhUOfu2PEBxukKfO/3KX0XDgEo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=CeSmfqSId1O41qPxtJ5SPKIeNd9A2o1FiuVluiM2S9a2Tj0HOygdQB/VLBlA5omu8/gH5AAsP+BUx3+/KSXwrKZRVVpTM1oPOTq9dRg0rgYKNVYJ0hlE4+HbgpGGLX1p+2cfKg1cH6b5tPpzrfBUNwHa7b8Dy6zsVmIjolTJ0wc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=MFflleT8; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="MFflleT8" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1770137195; bh=651DjgUT7OtElKAM6DhUOfu2PEBxukKfO/3KX0XDgEo=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=MFflleT8ajGdXL83egRe2hQ+74C//3tfK5E8IlzFZKbJFcdYbr1r5dBh5cO38YPWi JvzTws7k4w1DbZTMyi7eNIEnn8MB7Twt7kIKeh6MWL9hWvSqEd5YQvQVqeQzlrfZP/ vTw6NBldcxnekTnoH58mM8Ilb2NaXRPq97CpOxYeCddnd6a8rKVUcEJqhAX2DY7Rak GjfbiE7KHVlVHf4i8jDXrqx0FrfFkuLkvl7pTrzUljMqBQmqSWblEtvMvi7mZN2pD0 ELAPeCxMjERLX/+g8Q/mOhfoRX4QxSZIYSz2m7ALMPWib+P+a8AYAwiDITYeIYqYei gCT5D0Gxsq2bQ== Received: from jupiter.universe (dyndsl-091-248-189-143.ewe-ip-backbone.de [91.248.189.143]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id E377217E35D9; Tue, 3 Feb 2026 17:46:34 +0100 (CET) Received: by jupiter.universe (Postfix, from userid 1000) id 1829C48002B; Tue, 03 Feb 2026 17:46:34 +0100 (CET) From: Sebastian Reichel Date: Tue, 03 Feb 2026 17:46:28 +0100 Subject: [PATCH v2 06/10] ASoC: rockchip: spdif: Swap PCM and DAI component registration order Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260203-rockchip-spdif-cleanup-and-bsp-sync-v2-6-4412016cf577@collabora.com> References: <20260203-rockchip-spdif-cleanup-and-bsp-sync-v2-0-4412016cf577@collabora.com> In-Reply-To: <20260203-rockchip-spdif-cleanup-and-bsp-sync-v2-0-4412016cf577@collabora.com> To: Liam Girdwood , Mark Brown , Jaroslav Kysela , Takashi Iwai , Heiko Stuebner Cc: Alexey Charkov , Sjoerd Simons , linux-sound@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, Sebastian Reichel , Sugar Zhang X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1197; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=odke1hDY5a4eAB6A6L1moDVakX/wjeSZrUFRtUZjIjk=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGmCJmmBL0deZQgaga5PhJ4UNNNbnfNJgsiK0 ciM9yyZiL5W4IkCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJpgiZpAAoJENju1/PI O/qac+0QAKixPPhYunfCteZZoTxmKQtICZSEyrb+tQ5h+QtKulk4WVsW1duvvdVWRvrMRxir4UK i8gYvJayDoClHO1POC2ofOAplPhPsUt2E8C3LO2SglbJX2q0egcUSrJwbw5V+bdrpDsGhJYbjkB uBA7GLT9OqNaIEj0/yKMs25GYBZnP5FFzFCFhcIR/r1XymmRvPfKbfsrvdUr5clzerbaIEZVwCN W/axp68aT2WcACFtkJ7Y7PiahGrVoiKJNP4zTmEhnoazBsSHW28XOLKBgyQwJkScXQ6SZDeSaI0 D8ma9wUpnKMsDbk711MKiLlBIpqOjoXnONetWdwtNTDbZJshw9BcSUJzswnDRPln1ucBYlrh2oh 1sTbNU1vutIBDPNWJMh98ABqwuHOkpgegX5PSp9l+3P9iBMccq5lB55Sm35QaIOhwpf/ENa0aLa XS7BsRKIbu0Ji7xZ1NZ1RBEPQPwpUzJYxi+Jrt94YMwMl6koZ7jjfiSq2OFRmKx9YQMOq7oOn+o K0TWu2xD1jRsFHI4TgqivKTlsJikL+MO8RIMTSMz4CUZ0mtCW6793lBETO6mgGjef4/YhTUfJfL RuBj/HwVEKIaJzNAUjoPwB1f5LvttkGuT8baMrtDA5VzGAu9uPXflAwk3KX+nHisGqzZtf1uwaL LFRw78txTSxhuKIthMNArNg== X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A From: Sugar Zhang PCM should be registered before the DAI component, as the second one triggers snd_soc_try_rebind_card. Signed-off-by: Sugar Zhang Signed-off-by: Sebastian Reichel --- sound/soc/rockchip/rockchip_spdif.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sound/soc/rockchip/rockchip_spdif.c b/sound/soc/rockchip/rockc= hip_spdif.c index 55d64fd4c93b..c1221ff00ed7 100644 --- a/sound/soc/rockchip/rockchip_spdif.c +++ b/sound/soc/rockchip/rockchip_spdif.c @@ -325,16 +325,16 @@ static int rk_spdif_probe(struct platform_device *pde= v) return ret; } =20 + ret =3D devm_snd_dmaengine_pcm_register(&pdev->dev, NULL, 0); + if (ret) + return dev_err_probe(&pdev->dev, ret, "Could not register PCM\n"); + ret =3D devm_snd_soc_register_component(&pdev->dev, &rk_spdif_component, &rk_spdif_dai, 1); if (ret) return dev_err_probe(&pdev->dev, ret, "Could not register DAI\n"); =20 - ret =3D devm_snd_dmaengine_pcm_register(&pdev->dev, NULL, 0); - if (ret) - return dev_err_probe(&pdev->dev, ret, "Could not register PCM\n"); - return 0; } =20 --=20 2.51.0 From nobody Mon Feb 9 01:01:33 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 605383D3CEE; Tue, 3 Feb 2026 16:46:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770137201; cv=none; b=q3R1CQwAnfaACGThJ+HNw+OJZLQ+hOUX46vP7BPywEHbihx2HxeyF8T/AeYz5Yke9p02OuL/OOkY9r187UIpABa4lNZjkvqkNYlNLpZzc45FwLo5ru0L6l8s4zVVuPrfe622MKsKTRNzwZiMnvzd7fZ9Fng7DPUpmQrAeu4pdTA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770137201; c=relaxed/simple; bh=pi4TI7H4itbep8bOjPNJrdS5hAS2gdaa+bre7RTmdIA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=SmxfGsxlN+6eyW6bIsz9dwOxXaUAeyvj8ly283K4aKs5jbrJhPzm7Vmf/qQYBS8ZMvuE2tUbaTsGaYgxme3C3MeJNnVblcIbL64w3YnefGuqtyaxwyJT2g/9moVLL77zGXHdq7v3bQiICJbNVJ9Y3R9YDW8VMQpDIHet+bEe8+g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=hcBdW37A; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="hcBdW37A" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1770137195; bh=pi4TI7H4itbep8bOjPNJrdS5hAS2gdaa+bre7RTmdIA=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=hcBdW37AA1exy5Hk8RiwjgF6LlTMaRjAvHBG8mXHz5BuUQff+Kv8U6LoJa4c2A9dq IYFDc47LIIbndj7cp+brSh4wl0CTfzHZQLLp0QGx6K5rwmFD+cGyaViIC2qRbGPwP3 wFfJG8RWYyJQN+zshsim19kuSW2rIwAeJm9FbQJBHC9wagCu2CzBjK/eQh7oMJ+uG4 Ga4Bud760RTgZX7GmhDdeGMmxkw7c4HFqlvYG0/HDMmRwMJUIoYz+XdTww54U4Xqvu 9X/lynHkStcWiH+kJo8hkwUeTQ/GZ/Ui09wBhi/7Wnat9JHw6sphCGqU9s3Tyh80C6 aut0OlbclfVOg== Received: from jupiter.universe (dyndsl-091-248-189-143.ewe-ip-backbone.de [91.248.189.143]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id D5A4517E1516; Tue, 3 Feb 2026 17:46:34 +0100 (CET) Received: by jupiter.universe (Postfix, from userid 1000) id 199AB48002C; Tue, 03 Feb 2026 17:46:34 +0100 (CET) From: Sebastian Reichel Date: Tue, 03 Feb 2026 17:46:29 +0100 Subject: [PATCH v2 07/10] ASoC: rockchip: spdif: Add support for set mclk rate Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260203-rockchip-spdif-cleanup-and-bsp-sync-v2-7-4412016cf577@collabora.com> References: <20260203-rockchip-spdif-cleanup-and-bsp-sync-v2-0-4412016cf577@collabora.com> In-Reply-To: <20260203-rockchip-spdif-cleanup-and-bsp-sync-v2-0-4412016cf577@collabora.com> To: Liam Girdwood , Mark Brown , Jaroslav Kysela , Takashi Iwai , Heiko Stuebner Cc: Alexey Charkov , Sjoerd Simons , linux-sound@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, Sebastian Reichel , Sugar Zhang X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2896; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=JfQt8iv01h3jUyWNHVEds69H5a+SlC3Qy6aZ/D87xHQ=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGmCJmnlOWtXPSUXVegwfbJ81P++b3bpPfk2z SfDgcFZ4gt68okCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJpgiZpAAoJENju1/PI O/qaUbcP/jgzoVaKshqu3HLYM5MxNG8+T+vHpkI5z9RB5Ad5zErTRd8/a0x9z0O5p9Sa8Q5Fs5S MNml+Mcym/KXzSexxpGivxNl7HOjQVisqIBALZAiGACxAyWzjMhWt9kkduXApbNFh6ekpM8b7r1 NdGTZFvdSSCEbOUXi7o/nVJsVTN2LGj0kDut/xt2YPE+kAIf79SIu47yoB2ee5tZ8HtMS4aFskf b+kPgMUW3vxxlg9+J6ND7XVV088AJD/Nkd1Xv/dIvyLhdTzMdlOwIhtLagXt6H0vWnRtpchJXpz tGzBavpyOjufaq1uqWOLtkF0jE6dvvB9nc3ACLItZGp6USjC6yF/W6hSkOnFPdnWjuK7ODxUr8c FdnEm2C1+XZk3FnsvXZqSMUf4y1jS4zZOMD0Uo4d17OHIsoxQHKr5bRkfgN/8NMN6kVEcrMIYB3 /03W5lirAghbRThjZBaPY9Fc1oDFjnN2cRJ1u9o3yb/VaOT1WW9MDxcgoJomxyVEG+BSAcEx9mO HxcQVwUtZm0uAp6zOWOtZnQOttgNkzHDsHQB5ImO3Qc1mH8aVnP177WSdFn6jXbOEQ4Wg6gJfhr GcnCUgB51JvILOYXl0hXW21DmuVY2vUngcbs4CDwAfzQt7ieZmCe0yTDElU7rpNMW/6nq4bmcMZ Kjuky7USlTIDm1Z91w28wbw== X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A From: Sugar Zhang Allow setting the mclk rate from the machine driver. Signed-off-by: Sugar Zhang Signed-off-by: Sebastian Reichel --- sound/soc/rockchip/rockchip_spdif.c | 34 +++++++++++++++++++++++----------- sound/soc/rockchip/rockchip_spdif.h | 2 +- 2 files changed, 24 insertions(+), 12 deletions(-) diff --git a/sound/soc/rockchip/rockchip_spdif.c b/sound/soc/rockchip/rockc= hip_spdif.c index c1221ff00ed7..3b66d97f0582 100644 --- a/sound/soc/rockchip/rockchip_spdif.c +++ b/sound/soc/rockchip/rockchip_spdif.c @@ -86,12 +86,15 @@ static int rk_spdif_hw_params(struct snd_pcm_substream = *substream, struct snd_soc_dai *dai) { struct rk_spdif_dev *spdif =3D snd_soc_dai_get_drvdata(dai); + unsigned int mclk_rate =3D clk_get_rate(spdif->mclk); unsigned int val =3D SPDIF_CFGR_HALFWORD_ENABLE; - int srate, mclk; + int bmc, div; int ret; =20 - srate =3D params_rate(params); - mclk =3D srate * 128; + /* bmc =3D 128fs */ + bmc =3D 128 * params_rate(params); + div =3D DIV_ROUND_CLOSEST(mclk_rate, bmc); + val |=3D SPDIF_CFGR_CLK_DIV(div); =20 switch (params_format(params)) { case SNDRV_PCM_FORMAT_S16_LE: @@ -107,14 +110,6 @@ static int rk_spdif_hw_params(struct snd_pcm_substream= *substream, return -EINVAL; } =20 - /* Set clock and calculate divider */ - ret =3D clk_set_rate(spdif->mclk, mclk); - if (ret !=3D 0) { - dev_err(spdif->dev, "Failed to set module clock rate: %d\n", - ret); - return ret; - } - ret =3D regmap_update_bits(spdif->regmap, SPDIF_CFGR, SPDIF_CFGR_CLK_DIV_MASK | SPDIF_CFGR_HALFWORD_ENABLE | @@ -177,7 +172,24 @@ static int rk_spdif_dai_probe(struct snd_soc_dai *dai) return 0; } =20 +static int rk_spdif_set_sysclk(struct snd_soc_dai *dai, + int clk_id, unsigned int freq, int dir) +{ + struct rk_spdif_dev *spdif =3D snd_soc_dai_get_drvdata(dai); + int ret; + + if (!freq) + return 0; + + ret =3D clk_set_rate(spdif->mclk, freq); + if (ret) + dev_err(spdif->dev, "Failed to set mclk: %d\n", ret); + + return ret; +} + static const struct snd_soc_dai_ops rk_spdif_dai_ops =3D { + .set_sysclk =3D rk_spdif_set_sysclk, .probe =3D rk_spdif_dai_probe, .hw_params =3D rk_spdif_hw_params, .trigger =3D rk_spdif_trigger, diff --git a/sound/soc/rockchip/rockchip_spdif.h b/sound/soc/rockchip/rockc= hip_spdif.h index d8be9aae5b19..fcc28b6c4f58 100644 --- a/sound/soc/rockchip/rockchip_spdif.h +++ b/sound/soc/rockchip/rockchip_spdif.h @@ -15,7 +15,7 @@ */ #define SPDIF_CFGR_CLK_DIV_SHIFT (16) #define SPDIF_CFGR_CLK_DIV_MASK (0xff << SPDIF_CFGR_CLK_DIV_SHIFT) -#define SPDIF_CFGR_CLK_DIV(x) (x << SPDIF_CFGR_CLK_DIV_SHIFT) +#define SPDIF_CFGR_CLK_DIV(x) ((x-1) << SPDIF_CFGR_CLK_DIV_SHIFT) =20 #define SPDIF_CFGR_HALFWORD_SHIFT 2 #define SPDIF_CFGR_HALFWORD_DISABLE (0 << SPDIF_CFGR_HALFWORD_SHIFT) --=20 2.51.0 From nobody Mon Feb 9 01:01:33 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6070B3D3CF0; Tue, 3 Feb 2026 16:46:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770137201; cv=none; b=XAKOfzE+JEIWmKkXVTg0p3ilND5gctZYPmutI/cvxBMiXbswBwqeDHXkRALrSNZuxIHj/YG1Rb3n7PAYTQ46Ga5GFlCXcLDryTMV+s2PV7cy02uHWYyiENszNj87Q9mMFCMOnM5QSUFE1zTXgJ/fUzc/Hh4+mkVVETxEVw4GBV4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770137201; c=relaxed/simple; bh=F8u3Q4lThH6JCSUtdBTKMGgSMOrb+9XbXSLjDkPJv8M=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=m4lI81rxe5A3zn1xGGwDdw6l8t9gZVa+FzEwS4cQATiA04yXHwTf07ryePr8Ly5mHhQCyJzt5tunVpHmOgW1SMTFqgO6CeByxaBi9PYGv9tE+1+73hdVzXVGWIVWaoS8Fl7C2a/Qyjyi40CKTvUTLuFiR/RoTK7/FDBvl63/rq0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=ilHrWHC9; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="ilHrWHC9" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1770137195; bh=F8u3Q4lThH6JCSUtdBTKMGgSMOrb+9XbXSLjDkPJv8M=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=ilHrWHC9U7euwdq8OX8oqGOGIsVckVqm7sUdr2EwqDtqE65aIWnJcdeAIpK+pi+db uKNKLxj4UeaiNhlKG+vNKT4EdlKvoHpfUL+TAyH09LCIc7enJzS0SdPRgXFdon5PCP lDLwYmd093eBglou6rVrDkgURuOGO2HQabtfYE4+xeXDQNrQ3QZCRBZrt3betf+kbW inThm7M8TxEmQH2AZzc5CvhY8pYdGYYX9tbGPinSvoWDXv7ELwc20NrDAhbP/Bgwu7 78GFXHYEYQv6PG6x7tV06mg63XwXh2Sj78Wn91EYVYsNX/JGKn3sZslevq8fknK9oR +grpXY0DcJ5nA== Received: from jupiter.universe (dyndsl-091-248-189-143.ewe-ip-backbone.de [91.248.189.143]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id D6ACE17E35C8; Tue, 3 Feb 2026 17:46:34 +0100 (CET) Received: by jupiter.universe (Postfix, from userid 1000) id 1AF9C48002D; Tue, 03 Feb 2026 17:46:34 +0100 (CET) From: Sebastian Reichel Date: Tue, 03 Feb 2026 17:46:30 +0100 Subject: [PATCH v2 08/10] ASoC: rockchip: spdif: Add support for format S32_LE Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260203-rockchip-spdif-cleanup-and-bsp-sync-v2-8-4412016cf577@collabora.com> References: <20260203-rockchip-spdif-cleanup-and-bsp-sync-v2-0-4412016cf577@collabora.com> In-Reply-To: <20260203-rockchip-spdif-cleanup-and-bsp-sync-v2-0-4412016cf577@collabora.com> To: Liam Girdwood , Mark Brown , Jaroslav Kysela , Takashi Iwai , Heiko Stuebner Cc: Alexey Charkov , Sjoerd Simons , linux-sound@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, Sebastian Reichel , Sugar Zhang , Zohn Ni X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=3109; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=ZTB+C6/WOs0DScK8wBWi6AQ4GJhK0F8kVAr5NV0OuEE=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGmCJmlbGhY75qLpThU6zhxgGCskk6hGKSzm/ rWNfuUMJtx8YokCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJpgiZpAAoJENju1/PI O/qaR7oP/i22QvfRjCUUq7L4qgROnqkFgrCg7aDDLCOE1MeJUrizPORn8KZ0/r0kBtjUQVGQY8V I69c9S5wK1KPomh3qcgHY0YNwrIAxuk52VATxcrZNbFbusr7QIV2QMdkDgvinVn3/JN44cmkVZM 476r2ecTP3eT7+jSS+TFsQYpNOYV8jQEeWbqPAfFaiAKIlh0YYn5ZD1fWoiRxJyw9J7IwJDDgb2 uAy10gGyN1v78IoxbN0Vk5tb6hMYoMTwDhk2eGXS59ApNeoJEfaradMJESSOkFfCDFe/NQ02XIX nktL3XL6x9WabCEwovwApvS99d9OsFVjFdIxFFM8KEll8iWGlzL6la9HAoyhYKDlUc3qlLberDz Z/5YW2tG+F25jFmDI6AgMlhTY9hfO10Pnub544QKCsRf9Z4s6xGfywwevIJ72icgxgeYTSXQB29 /DYhPsrrgQmYQKrUlTzIv2C/UZyHVdJsl2bJSEY6EGbliEJrU0v7Dv3vuArCHJ+OUc45E3DO+vM e5bjGkwS69K0ecYE/Pbu5q1UiIp724PI3K8kTS0fkkRVqU1qcgVn+V8VYrXehDeG4irG8NQk+7U JZyk5foHVTq/beePJsXr4tigvuckiDKNdoIXZy0gtD/Odc/f1rHv07VkZ0uP8Rsjqo9EFDDMly0 t17pstr0LoQYyZNg5SlMxEg== X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A From: Sugar Zhang Treat 32 bit sample width as if it was 24 bits using only the 24 most significant bits. Co-developed-by: Zohn Ni Signed-off-by: Zohn Ni Signed-off-by: Sugar Zhang [I've merged the channel-swapping fix from Zohn Ni into Sugar Zhang's patch introducing the problem in the first place] Signed-off-by: Sebastian Reichel --- sound/soc/rockchip/rockchip_spdif.c | 22 ++++++++++++++++++++-- sound/soc/rockchip/rockchip_spdif.h | 8 ++++++++ 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/sound/soc/rockchip/rockchip_spdif.c b/sound/soc/rockchip/rockc= hip_spdif.c index 3b66d97f0582..d06573f22805 100644 --- a/sound/soc/rockchip/rockchip_spdif.c +++ b/sound/soc/rockchip/rockchip_spdif.c @@ -99,21 +99,38 @@ static int rk_spdif_hw_params(struct snd_pcm_substream = *substream, switch (params_format(params)) { case SNDRV_PCM_FORMAT_S16_LE: val |=3D SPDIF_CFGR_VDW_16; + val |=3D SPDIF_CFGR_ADJ_RIGHT_J; break; case SNDRV_PCM_FORMAT_S20_3LE: val |=3D SPDIF_CFGR_VDW_20; + val |=3D SPDIF_CFGR_ADJ_RIGHT_J; break; case SNDRV_PCM_FORMAT_S24_LE: val |=3D SPDIF_CFGR_VDW_24; + val |=3D SPDIF_CFGR_ADJ_RIGHT_J; + break; + case SNDRV_PCM_FORMAT_S32_LE: + val |=3D SPDIF_CFGR_VDW_24; + val |=3D SPDIF_CFGR_ADJ_LEFT_J; break; default: return -EINVAL; } =20 + /* + * clear MCLK domain logic before setting Fmclk and Fsdo to ensure + * that switching between S16_LE and S32_LE audio does not result + * in accidential channels swap. + */ + regmap_update_bits(spdif->regmap, SPDIF_CFGR, SPDIF_CFGR_CLR_MASK, + SPDIF_CFGR_CLR_EN); + udelay(1); + ret =3D regmap_update_bits(spdif->regmap, SPDIF_CFGR, SPDIF_CFGR_CLK_DIV_MASK | SPDIF_CFGR_HALFWORD_ENABLE | - SDPIF_CFGR_VDW_MASK, val); + SDPIF_CFGR_VDW_MASK | + SPDIF_CFGR_ADJ_MASK, val); =20 return ret; } @@ -203,7 +220,8 @@ static struct snd_soc_dai_driver rk_spdif_dai =3D { .rates =3D SNDRV_PCM_RATE_8000_192000, .formats =3D (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S20_3LE | - SNDRV_PCM_FMTBIT_S24_LE), + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE), }, .ops =3D &rk_spdif_dai_ops, }; diff --git a/sound/soc/rockchip/rockchip_spdif.h b/sound/soc/rockchip/rockc= hip_spdif.h index fcc28b6c4f58..acf64986a2e0 100644 --- a/sound/soc/rockchip/rockchip_spdif.h +++ b/sound/soc/rockchip/rockchip_spdif.h @@ -17,6 +17,14 @@ #define SPDIF_CFGR_CLK_DIV_MASK (0xff << SPDIF_CFGR_CLK_DIV_SHIFT) #define SPDIF_CFGR_CLK_DIV(x) ((x-1) << SPDIF_CFGR_CLK_DIV_SHIFT) =20 +#define SPDIF_CFGR_CLR_MASK BIT(7) +#define SPDIF_CFGR_CLR_EN BIT(7) +#define SPDIF_CFGR_CLR_DIS 0 + +#define SPDIF_CFGR_ADJ_MASK BIT(3) +#define SPDIF_CFGR_ADJ_LEFT_J BIT(3) +#define SPDIF_CFGR_ADJ_RIGHT_J 0 + #define SPDIF_CFGR_HALFWORD_SHIFT 2 #define SPDIF_CFGR_HALFWORD_DISABLE (0 << SPDIF_CFGR_HALFWORD_SHIFT) #define SPDIF_CFGR_HALFWORD_ENABLE (1 << SPDIF_CFGR_HALFWORD_SHIFT) --=20 2.51.0 From nobody Mon Feb 9 01:01:33 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6061E3D3CEF; Tue, 3 Feb 2026 16:46:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770137202; cv=none; b=i58BXTFhrbEMsLzaDiF5vTTQWo6yILwT+3RHC31ijvbSZXDJ0eVS0cXMgY0hIg2HpY1h1U6L6VMLw8VC94zMwMC6ozREZMrxLGaq9r953u8VkOetoyhhWpQJTpLrSQy86CzVWZVYCpCShIb73ncuLND7aDOxFdEz6IG2dBkE1N4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770137202; c=relaxed/simple; bh=ryd1GPahcy/PsDxXiKO4mGW1+HlN8gMHqgT5wZ+suWU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=VIIg6lkZzeBImQp86O7GXQpsU+O8vE+bA+tO+LOqZeOqIvezhu/lfI7ehzx2gjiGbkJW07uOP8EzbJDFtef9rapXZ2m0/xbZuOHbk9xyjbfyQTNOr5xge22dLOcr0XdwZ0/jiay3IBtYHiE4qXdumoWNpO1QgH4E/eMmxVp4pw0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=RKfviUaC; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="RKfviUaC" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1770137194; bh=ryd1GPahcy/PsDxXiKO4mGW1+HlN8gMHqgT5wZ+suWU=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=RKfviUaC5lqc4VD7VxLnex+w9gy1yVFzPAb9hkcbGC99uhxvcLgq8eefaldb28M4Q wNGlpWAx6WL0rPgu1LIlg/GqjbewL08W5eSZ4gU4O+XUhRISoeZzNcpBUOu8iySA1d 2r3tYZdIVe00dvjp07XCfLvE9brXo3Y+ScI9usBGYDrCLrsTetTLx5ekIKXJW1RMRH HD90evYEMsiEjEdj532x7ctR5EAHJihzRrASG7KUkw9KYjtoK6APoiDf6WWGwRSnrF dUCrzBVMn+eRnJjocnySvuQEXTH5e7uqkxiJoESK/6oCBE4YCKC/EdCzGazO6PZyj4 PrpZVEWVWssHA== Received: from jupiter.universe (dyndsl-091-248-189-143.ewe-ip-backbone.de [91.248.189.143]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id D6C0217E35CB; Tue, 3 Feb 2026 17:46:34 +0100 (CET) Received: by jupiter.universe (Postfix, from userid 1000) id 1C43E48002E; Tue, 03 Feb 2026 17:46:34 +0100 (CET) From: Sebastian Reichel Date: Tue, 03 Feb 2026 17:46:31 +0100 Subject: [PATCH v2 09/10] ASoC: rockchip: spdif: Fill IEC958 CS info per params Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260203-rockchip-spdif-cleanup-and-bsp-sync-v2-9-4412016cf577@collabora.com> References: <20260203-rockchip-spdif-cleanup-and-bsp-sync-v2-0-4412016cf577@collabora.com> In-Reply-To: <20260203-rockchip-spdif-cleanup-and-bsp-sync-v2-0-4412016cf577@collabora.com> To: Liam Girdwood , Mark Brown , Jaroslav Kysela , Takashi Iwai , Heiko Stuebner Cc: Alexey Charkov , Sjoerd Simons , linux-sound@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, Sebastian Reichel , Sugar Zhang X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=4751; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=4I9xh2DKmGrP1vcbHGUmnEomckJYqKp7hvG1s9+J4gc=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGmCJmmdSNeP8CxVXWdMUVs/dsgomemCxe2Iz WcINy2qe+1KyIkCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJpgiZpAAoJENju1/PI O/qaRoYQAKWntlVxrgKW4/FH3mQfkQOVryomh8cqJWu7S9RIDMyJV1hhM5rwaFuA0YCt0eKDstG BtYBUnnLqc7AEgGYMk/GbKIQeboApkCSsFQRMSMOFbsPyS5GzhSFmnGienflAxAmhOkU1yMofdg HBVjFVz/4GxsVVrj+eg9bNTiCHYYY1BRWrIV3G75n/jOJaKKC5Zk+EB80j3BPk8YtTepKRFQEZT nZKs2V1sztFjymA69Z559a4vbtL12u/7tIcWN6mewhjijDbAen35nzG85rcG0gDRwFDyy/AQIfq vdiNYm2dJHO/4GKrt/KEiD4aU4FEuyfwYBmETlraMl8IU9OGEpfXgMItyMIP3aKBq7/CICE8of6 1xE0HwA/sizZD3Q/2f4ZASIuFpxRNi/Pmn3vEGlWmbRHFtOorK2xl0nucb3Z5SnEufHpsartzaJ WChNQ+0DrbO7mNrFwKQrSzxEUGQkxSEJw3vgy/Blks8qY/RtIvbtVCuPX2rmBG1z5uKNGdt3Ku2 7tVtogeT9F4XyzArPwLdNLxHtai5NViEvxhlXbhpeCxcquLtZiz+RHRpt4HhmZaytL2A9YrF1vl tGMNksTCjmm/ejPEnNxcG7/v79ICBhfBbpu2LXegmWsNNNqKMPBoCTkLpq2+SMqUa4uZolol4xP rA5BllVwqoOsW5lAX0zcukA== X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A From: Sugar Zhang Add support to fill IEC958 channel status information. Signed-off-by: Sugar Zhang Signed-off-by: Sebastian Reichel --- sound/soc/rockchip/Kconfig | 1 + sound/soc/rockchip/rockchip_spdif.c | 45 +++++++++++++++++++++++++++++++++= ---- sound/soc/rockchip/rockchip_spdif.h | 8 +++++++ 3 files changed, 50 insertions(+), 4 deletions(-) diff --git a/sound/soc/rockchip/Kconfig b/sound/soc/rockchip/Kconfig index bd210fafe9fe..391ce2225fde 100644 --- a/sound/soc/rockchip/Kconfig +++ b/sound/soc/rockchip/Kconfig @@ -41,6 +41,7 @@ config SND_SOC_ROCKCHIP_SAI =20 config SND_SOC_ROCKCHIP_SPDIF tristate "Rockchip SPDIF Device Driver" + select SND_PCM_IEC958 select SND_SOC_GENERIC_DMAENGINE_PCM help Say Y or M if you want to add support for SPDIF driver for diff --git a/sound/soc/rockchip/rockchip_spdif.c b/sound/soc/rockchip/rockc= hip_spdif.c index d06573f22805..e64c24897f29 100644 --- a/sound/soc/rockchip/rockchip_spdif.c +++ b/sound/soc/rockchip/rockchip_spdif.c @@ -16,6 +16,7 @@ #include #include #include +#include #include =20 #include "rockchip_spdif.h" @@ -27,7 +28,25 @@ enum rk_spdif_type { RK_SPDIF_RK3366, }; =20 -#define RK3288_GRF_SOC_CON2 0x24c +/* + * | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | + * CS0: | Mode | d | c | b | a | + * CS1: | Category Code | + * CS2: | Channel Number | Source Number | + * CS3: | Clock Accuracy | Sample Freq | + * CS4: | Ori Sample Freq | Word Length | + * CS5: | | CGMS-A | + * CS6~CS23: Reserved + * + * a: use of channel status block + * b: linear PCM identification: 0 for lpcm, 1 for nlpcm + * c: copyright information + * d: additional format information + */ +#define CS_BYTE 6 +#define CS_FRAME(c) ((c) << 16 | (c)) + +#define RK3288_GRF_SOC_CON2 0x24c =20 struct rk_spdif_dev { struct device *dev; @@ -88,8 +107,20 @@ static int rk_spdif_hw_params(struct snd_pcm_substream = *substream, struct rk_spdif_dev *spdif =3D snd_soc_dai_get_drvdata(dai); unsigned int mclk_rate =3D clk_get_rate(spdif->mclk); unsigned int val =3D SPDIF_CFGR_HALFWORD_ENABLE; - int bmc, div; - int ret; + int bmc, div, ret, i; + u16 *fc; + u8 cs[CS_BYTE]; + + ret =3D snd_pcm_create_iec958_consumer_hw_params(params, cs, sizeof(cs)); + if (ret < 0) + return ret; + + fc =3D (u16 *)cs; + for (i =3D 0; i < CS_BYTE / 2; i++) + regmap_write(spdif->regmap, SPDIF_CHNSRn(i), CS_FRAME(fc[i])); + + regmap_update_bits(spdif->regmap, SPDIF_CFGR, SPDIF_CFGR_CSE_MASK, + SPDIF_CFGR_CSE_EN); =20 /* bmc =3D 128fs */ bmc =3D 128 * params_rate(params); @@ -239,6 +270,9 @@ static bool rk_spdif_wr_reg(struct device *dev, unsigne= d int reg) case SPDIF_INTCR: case SPDIF_XFER: case SPDIF_SMPDR: + case SPDIF_VLDFRn(0) ... SPDIF_VLDFRn(11): + case SPDIF_USRDRn(0) ... SPDIF_USRDRn(11): + case SPDIF_CHNSRn(0) ... SPDIF_CHNSRn(11): return true; default: return false; @@ -254,6 +288,9 @@ static bool rk_spdif_rd_reg(struct device *dev, unsigne= d int reg) case SPDIF_INTSR: case SPDIF_XFER: case SPDIF_SMPDR: + case SPDIF_VLDFRn(0) ... SPDIF_VLDFRn(11): + case SPDIF_USRDRn(0) ... SPDIF_USRDRn(11): + case SPDIF_CHNSRn(0) ... SPDIF_CHNSRn(11): return true; default: return false; @@ -276,7 +313,7 @@ static const struct regmap_config rk_spdif_regmap_confi= g =3D { .reg_bits =3D 32, .reg_stride =3D 4, .val_bits =3D 32, - .max_register =3D SPDIF_SMPDR, + .max_register =3D SPDIF_VERSION, .writeable_reg =3D rk_spdif_wr_reg, .readable_reg =3D rk_spdif_rd_reg, .volatile_reg =3D rk_spdif_volatile_reg, diff --git a/sound/soc/rockchip/rockchip_spdif.h b/sound/soc/rockchip/rockc= hip_spdif.h index acf64986a2e0..b837b1f8d57f 100644 --- a/sound/soc/rockchip/rockchip_spdif.h +++ b/sound/soc/rockchip/rockchip_spdif.h @@ -21,6 +21,10 @@ #define SPDIF_CFGR_CLR_EN BIT(7) #define SPDIF_CFGR_CLR_DIS 0 =20 +#define SPDIF_CFGR_CSE_MASK BIT(6) +#define SPDIF_CFGR_CSE_EN BIT(6) +#define SPDIF_CFGR_CSE_DIS 0 + #define SPDIF_CFGR_ADJ_MASK BIT(3) #define SPDIF_CFGR_ADJ_LEFT_J BIT(3) #define SPDIF_CFGR_ADJ_RIGHT_J 0 @@ -64,5 +68,9 @@ #define SPDIF_INTSR (0x0010) #define SPDIF_XFER (0x0018) #define SPDIF_SMPDR (0x0020) +#define SPDIF_VLDFRn(x) (0x0060 + (x) * 4) +#define SPDIF_USRDRn(x) (0x0090 + (x) * 4) +#define SPDIF_CHNSRn(x) (0x00c0 + (x) * 4) +#define SPDIF_VERSION (0x01c0) =20 #endif /* _ROCKCHIP_SPDIF_H */ --=20 2.51.0 From nobody Mon Feb 9 01:01:33 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4C8D63D3CEA; Tue, 3 Feb 2026 16:46:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770137201; cv=none; b=ir0N9OOGFsLtceDK/kdSWeQBj3s3aq3OJ3sVq+cIn4qNL8cM4+bhehVijLWhs4RKQTtjOo3i6sm0/yAiD0PsAKNUkIxRNURqskQuZX+hdX0aguK0KsL42RCdQG42F1UcR2i46qu2fc5EvjNmQFRO1pmvaToBq1vQ3aRdRwVN858= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770137201; c=relaxed/simple; bh=Y5VfZahgsvoFHQVzJNoJGCb4Sg/wGxHpJ/c9bYoeFoA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ooUkIxyO3g2GUEsl7fpQ+UZ2iM7jc1ELkRGrPzz3kFMvum1l7vX0ZMeTp6T75JeGR7B5MkGmvycOF6Nnn3mrtWeOyYzA2TCA7gAEmjA5ihUTFbrYtx/js7pDEMZWUMgBkSCkhQk91aSxehhwE623XfQTwNrDQLvMgDsmcLI76EM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=m+HcVhMn; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="m+HcVhMn" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1770137195; bh=Y5VfZahgsvoFHQVzJNoJGCb4Sg/wGxHpJ/c9bYoeFoA=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=m+HcVhMnbsusZgebDwe50T8wcOXcWtl+K9KHUUhdoAtvYUIHmpQtQboyw0RzvTvcH /Lf68MyMjJ9LcZOV/caoucgBh6qrALMskdyZFGXus2Gf/YdQxk4MBbO8G/VAuRHb2l J24v7a8Xb+kuzfRyA1wPDKGynRwrtkhCFLEyZ/drGZ1Gj1PmJVtAHQkJZOtR2UKdHK NvpNrA8yLgvjxqTCP8Q5fm84BXmYnp8QQEDinI708h6eRg2Jw2P1wuTv8cYCUgwmD9 wuySJ/PTF4EzvMkHMRg7N+mlpMQz1wemdqk5akh9EYhxvbmyInczC/12vJ/u4jYOOB 3w7atFl/75yQQ== Received: from jupiter.universe (dyndsl-091-248-189-143.ewe-ip-backbone.de [91.248.189.143]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: sre) by bali.collaboradmins.com (Postfix) with ESMTPSA id DDA0117E35D2; Tue, 3 Feb 2026 17:46:34 +0100 (CET) Received: by jupiter.universe (Postfix, from userid 1000) id 1D9C148002F; Tue, 03 Feb 2026 17:46:34 +0100 (CET) From: Sebastian Reichel Date: Tue, 03 Feb 2026 17:46:32 +0100 Subject: [PATCH v2 10/10] ASoC: rockchip: spdif: Convert to FIELD_PREP Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260203-rockchip-spdif-cleanup-and-bsp-sync-v2-10-4412016cf577@collabora.com> References: <20260203-rockchip-spdif-cleanup-and-bsp-sync-v2-0-4412016cf577@collabora.com> In-Reply-To: <20260203-rockchip-spdif-cleanup-and-bsp-sync-v2-0-4412016cf577@collabora.com> To: Liam Girdwood , Mark Brown , Jaroslav Kysela , Takashi Iwai , Heiko Stuebner Cc: Alexey Charkov , Sjoerd Simons , linux-sound@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@collabora.com, Sebastian Reichel X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=6129; i=sebastian.reichel@collabora.com; h=from:subject:message-id; bh=Y5VfZahgsvoFHQVzJNoJGCb4Sg/wGxHpJ/c9bYoeFoA=; b=owJ4nAFtApL9kA0DAAoB2O7X88g7+poByyZiAGmCJmqCjbMF4Eyd9bLV5lvYDHaiLZ3+rrj1g dJ9A897hHZ/pIkCMwQAAQoAHRYhBO9mDQdGP4tyanlUE9ju1/PIO/qaBQJpgiZqAAoJENju1/PI O/qa0kkP/iyDzUnWRcjZzKSXDTESg5OQ6ADt3rTdLtmCe6yrBNiUAyA2P8GIKNV8jpo/UmnzxxH 2HSXr4SH4kInH+0IMJfhjTn/4AkUU5hABJ+F5I9uI0o4IQkm4FaDNvh7uapvfQoketbacdqbsaA OCLrO8/PE3iRNmrY1m0VVVLt3JLd1uDxPgr/r2WEeIJgKVZwK4bxoAR+fyk+Ts5xSyN0joI4w55 w0Tj3fRE8BKKh1EVrrPzMYqeVvP35J/pYhQUn/R/KVJYwWZRf6C4DSQcHjFvuGWfKimX1Z+CLdu V3JlOMrJfTkgZlVNOJRUWOUdETjU1/DqoaXMmPkyNSvvrCKDTt9NXh3vFEoEKocvTRqtkh6cZuP TbW8wY0p5i5xKUPRqRm4cNYBexK4vKnkRAu1MVoiuS2PPYypZCVYALS5fKo4r4lUw63VkWt/qP/ m+oGvv7NqSKFjZeRVJwjvWaTANTtDnT/GT+bnvr7AM/yOzhlLVH1Gh18qfExY1blJjghbvHsoal MCSAA5ihCMr02TSPsgAU1CsWmD078A1H26HkrFBlb4uBfvHSrhLr+OXHiz4oeTQt8Ivd+fq9fyp ycfVeeUHg5oSTvGPDqEHnvSLQt6d+I7TkzOJb+HzV1QZLH4hqTVHYtCnXmSpRK0ML90/zkUV7JY EXXTOfnJanxdMrJvuW4MuEw== X-Developer-Key: i=sebastian.reichel@collabora.com; a=openpgp; fpr=EF660D07463F8B726A795413D8EED7F3C83BFA9A Convert the driver to use FIELD_PREP to increase readability. This also fixes an issue that the SDPIF_CFGR_VDW_MASK was wrong, which didn't have any effects as the only user in the driver updates the other bits at the same time. Signed-off-by: Sebastian Reichel --- sound/soc/rockchip/rockchip_spdif.c | 13 ++++----- sound/soc/rockchip/rockchip_spdif.h | 53 +++++++++++++++++----------------= ---- 2 files changed, 32 insertions(+), 34 deletions(-) diff --git a/sound/soc/rockchip/rockchip_spdif.c b/sound/soc/rockchip/rockc= hip_spdif.c index e64c24897f29..581624f2682e 100644 --- a/sound/soc/rockchip/rockchip_spdif.c +++ b/sound/soc/rockchip/rockchip_spdif.c @@ -5,10 +5,11 @@ * * Copyright (c) 2014 Rockchip Electronics Co. Ltd. * Author: Jianqun - * Copyright (c) 2015 Collabora Ltd. + * Copyright (c) 2015-2026 Collabora Ltd. * Author: Sjoerd Simons */ =20 +#include #include #include #include @@ -159,7 +160,7 @@ static int rk_spdif_hw_params(struct snd_pcm_substream = *substream, =20 ret =3D regmap_update_bits(spdif->regmap, SPDIF_CFGR, SPDIF_CFGR_CLK_DIV_MASK | - SPDIF_CFGR_HALFWORD_ENABLE | + SPDIF_CFGR_HALFWORD_MASK | SDPIF_CFGR_VDW_MASK | SPDIF_CFGR_ADJ_MASK, val); =20 @@ -177,7 +178,7 @@ static int rk_spdif_trigger(struct snd_pcm_substream *s= ubstream, case SNDRV_PCM_TRIGGER_RESUME: case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: ret =3D regmap_update_bits(spdif->regmap, SPDIF_DMACR, - SPDIF_DMACR_TDE_ENABLE | + SPDIF_DMACR_TDE_MASK | SPDIF_DMACR_TDL_MASK, SPDIF_DMACR_TDE_ENABLE | SPDIF_DMACR_TDL(16)); @@ -186,21 +187,21 @@ static int rk_spdif_trigger(struct snd_pcm_substream = *substream, return ret; =20 ret =3D regmap_update_bits(spdif->regmap, SPDIF_XFER, - SPDIF_XFER_TXS_START, + SPDIF_XFER_TXS_MASK, SPDIF_XFER_TXS_START); break; case SNDRV_PCM_TRIGGER_SUSPEND: case SNDRV_PCM_TRIGGER_STOP: case SNDRV_PCM_TRIGGER_PAUSE_PUSH: ret =3D regmap_update_bits(spdif->regmap, SPDIF_DMACR, - SPDIF_DMACR_TDE_ENABLE, + SPDIF_DMACR_TDE_MASK, SPDIF_DMACR_TDE_DISABLE); =20 if (ret !=3D 0) return ret; =20 ret =3D regmap_update_bits(spdif->regmap, SPDIF_XFER, - SPDIF_XFER_TXS_START, + SPDIF_XFER_TXS_MASK, SPDIF_XFER_TXS_STOP); break; default: diff --git a/sound/soc/rockchip/rockchip_spdif.h b/sound/soc/rockchip/rockc= hip_spdif.h index b837b1f8d57f..ec33295e2512 100644 --- a/sound/soc/rockchip/rockchip_spdif.h +++ b/sound/soc/rockchip/rockchip_spdif.h @@ -2,7 +2,7 @@ /* * ALSA SoC Audio Layer - Rockchip SPDIF transceiver driver * - * Copyright (c) 2015 Collabora Ltd. + * Copyright (c) 2015-2026 Collabora Ltd. * Author: Sjoerd Simons */ =20 @@ -13,53 +13,50 @@ * CFGR * transfer configuration register */ -#define SPDIF_CFGR_CLK_DIV_SHIFT (16) -#define SPDIF_CFGR_CLK_DIV_MASK (0xff << SPDIF_CFGR_CLK_DIV_SHIFT) -#define SPDIF_CFGR_CLK_DIV(x) ((x-1) << SPDIF_CFGR_CLK_DIV_SHIFT) +#define SPDIF_CFGR_CLK_DIV_MASK GENMASK(23, 16) +#define SPDIF_CFGR_CLK_DIV(x) FIELD_PREP(SPDIF_CFGR_CLK_DIV_MASK, x-1) =20 #define SPDIF_CFGR_CLR_MASK BIT(7) -#define SPDIF_CFGR_CLR_EN BIT(7) -#define SPDIF_CFGR_CLR_DIS 0 +#define SPDIF_CFGR_CLR_EN FIELD_PREP(SPDIF_CFGR_CLR_MASK, 1) +#define SPDIF_CFGR_CLR_DIS FIELD_PREP(SPDIF_CFGR_CLR_MASK, 0) =20 #define SPDIF_CFGR_CSE_MASK BIT(6) -#define SPDIF_CFGR_CSE_EN BIT(6) -#define SPDIF_CFGR_CSE_DIS 0 +#define SPDIF_CFGR_CSE_EN FIELD_PREP(SPDIF_CFGR_CSE_MASK, 1) +#define SPDIF_CFGR_CSE_DIS FIELD_PREP(SPDIF_CFGR_CSE_MASK, 0) =20 #define SPDIF_CFGR_ADJ_MASK BIT(3) -#define SPDIF_CFGR_ADJ_LEFT_J BIT(3) -#define SPDIF_CFGR_ADJ_RIGHT_J 0 +#define SPDIF_CFGR_ADJ_LEFT_J FIELD_PREP(SPDIF_CFGR_ADJ_MASK, 1) +#define SPDIF_CFGR_ADJ_RIGHT_J FIELD_PREP(SPDIF_CFGR_ADJ_MASK, 0) =20 -#define SPDIF_CFGR_HALFWORD_SHIFT 2 -#define SPDIF_CFGR_HALFWORD_DISABLE (0 << SPDIF_CFGR_HALFWORD_SHIFT) -#define SPDIF_CFGR_HALFWORD_ENABLE (1 << SPDIF_CFGR_HALFWORD_SHIFT) +#define SPDIF_CFGR_HALFWORD_MASK BIT(2) +#define SPDIF_CFGR_HALFWORD_DISABLE FIELD_PREP(SPDIF_CFGR_HALFWORD_MASK, 0) +#define SPDIF_CFGR_HALFWORD_ENABLE FIELD_PREP(SPDIF_CFGR_HALFWORD_MASK, 1) =20 -#define SPDIF_CFGR_VDW_SHIFT 0 -#define SPDIF_CFGR_VDW(x) (x << SPDIF_CFGR_VDW_SHIFT) -#define SDPIF_CFGR_VDW_MASK (0xf << SPDIF_CFGR_VDW_SHIFT) +#define SDPIF_CFGR_VDW_MASK GENMASK(1, 0) +#define SPDIF_CFGR_VDW(x) FIELD_PREP(SDPIF_CFGR_VDW_MASK, x) =20 -#define SPDIF_CFGR_VDW_16 SPDIF_CFGR_VDW(0x0) -#define SPDIF_CFGR_VDW_20 SPDIF_CFGR_VDW(0x1) -#define SPDIF_CFGR_VDW_24 SPDIF_CFGR_VDW(0x2) +#define SPDIF_CFGR_VDW_16 SPDIF_CFGR_VDW(0x0) +#define SPDIF_CFGR_VDW_20 SPDIF_CFGR_VDW(0x1) +#define SPDIF_CFGR_VDW_24 SPDIF_CFGR_VDW(0x2) =20 /* * DMACR * DMA control register */ -#define SPDIF_DMACR_TDE_SHIFT 5 -#define SPDIF_DMACR_TDE_DISABLE (0 << SPDIF_DMACR_TDE_SHIFT) -#define SPDIF_DMACR_TDE_ENABLE (1 << SPDIF_DMACR_TDE_SHIFT) +#define SPDIF_DMACR_TDE_MASK BIT(5) +#define SPDIF_DMACR_TDE_DISABLE FIELD_PREP(SPDIF_DMACR_TDE_MASK, 0) +#define SPDIF_DMACR_TDE_ENABLE FIELD_PREP(SPDIF_DMACR_TDE_MASK, 1) =20 -#define SPDIF_DMACR_TDL_SHIFT 0 -#define SPDIF_DMACR_TDL(x) ((x) << SPDIF_DMACR_TDL_SHIFT) -#define SPDIF_DMACR_TDL_MASK (0x1f << SPDIF_DMACR_TDL_SHIFT) +#define SPDIF_DMACR_TDL_MASK GENMASK(4, 0) +#define SPDIF_DMACR_TDL(x) FIELD_PREP(SPDIF_DMACR_TDL_MASK, x) =20 /* * XFER * Transfer control register */ -#define SPDIF_XFER_TXS_SHIFT 0 -#define SPDIF_XFER_TXS_STOP (0 << SPDIF_XFER_TXS_SHIFT) -#define SPDIF_XFER_TXS_START (1 << SPDIF_XFER_TXS_SHIFT) +#define SPDIF_XFER_TXS_MASK BIT(0) +#define SPDIF_XFER_TXS_STOP FIELD_PREP(SPDIF_XFER_TXS_MASK, 0) +#define SPDIF_XFER_TXS_START FIELD_PREP(SPDIF_XFER_TXS_MASK, 1) =20 #define SPDIF_CFGR (0x0000) #define SPDIF_SDBLR (0x0004) --=20 2.51.0