From nobody Tue Jun 16 09:00:25 2026 Received: from mail-wr1-f48.google.com (mail-wr1-f48.google.com [209.85.221.48]) (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 1B9C13CA483 for ; Fri, 17 Apr 2026 15:12:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776438722; cv=none; b=LQ6e9SLzS2bXARDFZWXPF/WRM1vQE4CwP37/7ymWYAbgoVZW4pzvUZDDTQI5owoMg8f5xpgr9TpGYOkp715JN/eUsSTm6zZwcI5VHpB/zcDxS5OUyVb4xP4BwhN57TdRXzVQLkK/tyCxzRbBjqp8J9+bxSOYML6cQ62oMvPg3RQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776438722; c=relaxed/simple; bh=Iv35X0YItRmd6w3u4XU1Hvta1/Hwj6onkb318swFieU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=u3NuAa/KWkFJ5VofxWksh+GUEOCFk1G/VNNIbmzFJRmANr4RN+0MQ4x1wUJwArHuYZWYLUpVFo315yyT2Fw4fENifpc1TIGHcyIc9pFAnJbMN27AGBAdYzls3UinH1BRflFd7pQriN/TY7lc+C4KV/ojZcbr04/cdg3ugnhT7/0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=flipper.net; spf=pass smtp.mailfrom=flipper.net; dkim=pass (2048-bit key) header.d=flipper.net header.i=@flipper.net header.b=33gSa5m8; arc=none smtp.client-ip=209.85.221.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=flipper.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flipper.net Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=flipper.net header.i=@flipper.net header.b="33gSa5m8" Received: by mail-wr1-f48.google.com with SMTP id ffacd0b85a97d-43d7650202fso704194f8f.2 for ; Fri, 17 Apr 2026 08:12:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=flipper.net; s=google; t=1776438719; x=1777043519; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=9FDj+1Kksm8urlrZ9+RrkwbXsGoKIaMKcDpK7X2i8Zs=; b=33gSa5m8dnb8DSbY0erUjKdFK54y94xbN8h+0qV/L6ZQgMZ1E6xe1cIXKj28+DsXR+ FywOuB5vB5wSnC8LrbAxgTsYoYPZEPMYTD7uLMivlTrZtpQd99d4CNbvHIUV9E57I1Jg e98vtfMnln3zgnvM8DrcoefTFgcT99i4Tv6gvIs6UEm8MNx2JpbGhHwaOaKwbaCJivuY DBxhkiEjLlZIgqdMla4Pkdv/8VK/etkz6P/5WkUl/mlhD8XKxv0lLOJOtLo5Wm7KFLFA yT6VxQsJu/HGuqMSU7682OfgoEEQeJry7sM/5KyeasEGUPPlPOZpkACJEpW3HdgCcXIk wC5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776438719; x=1777043519; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=9FDj+1Kksm8urlrZ9+RrkwbXsGoKIaMKcDpK7X2i8Zs=; b=cTFJo9AqIwiR9AS1WATS8ZRlI4vwsWnJot+6DuQZGQ+YXxardGi8G3uibE2JPIXqYV cpIvFBBNdOiunGTSY2DCyBb+wuVvmd4TnDRihMC4DbRhxKouAhZG44eFn/SjxIdadyg8 98tieBQqPboNieo82oEnh2pMqwk3FQIBUJ/9YUHsXQPyTfrrrTeH4itlg+e6BzdN02IL busVhzWLBp7HQiy1oEoS2Qhm/HK7066gfaiPgZ2vWADWUhWnsO5dj6HgcjfeX8bxJXkw QSloXhF00uEpCtulBNbY3aJk+BPFgBdsdmn/ErYUgzdPmiQJ/k1osGV7Ok4RgJzFdC4k FMyQ== X-Forwarded-Encrypted: i=1; AFNElJ/ILgIy/h4tmClJHnlmVj200/cZRWT9RcrKgvDFVD8+EXT9Fm8uoET1WYZN9Dqgr4XSpvJr+YRRwAnNxlU=@vger.kernel.org X-Gm-Message-State: AOJu0YzAMMRdTra+4jVZL9PZebCLvt5PgY60shUeKYbi1qCY4D92NE3l pnwp0hL5LdxquhjPcDLiHtBBuH56otoO8UEDQLEXa4KeV+jTxKKKhYRchJ4YpDCsOZs= X-Gm-Gg: AeBDietoSinhHcA2dNE7rBFcXXcnqpr6la2X03n0IKCAUodA/sqPmCjxqJlv+RJKuK9 3oV2w6uCBu7utGeTTg6cZhCc4WInoRSpAsN3A76o0vPvLgASYI8PeZrR/LTPpg6Y8Od5pwt/NS2 ORcsZ1vOZt5O/SEnfIJs5E2+v2umaVHhaMgvJ3UkGFKRc9TfTflerVf+dxo3HovJ9KuxAIWnT53 HvyGPBWOGjVJK+3QAqEr2jyda9vq6AGz67pAilwqO6aYBf9BYRCOCqrGwgh+9hB1/eofTwL0C9a hLTaFO4SdlWtWctX+gF/6EsNm9zxppMRpPohx9q5BN0PSMVtrLLGewMTKsHl7PCMD3IYvq1IVru FvAWNcQDzNdF9UgolRRrqqOJYgE9ljSj7rdC08Gqlvk00DHnJTZ9VlUiVFtDpQX8REXZYtGfWpf 1gtNxcM4rIA7cByBGu6yUXCKh5nQhbTc+M+kUwjSE59KQ9llBfbXp4espf1XJ320wLqvlaSjir/ V0zCMc8exINx6YfBCnx47Vs0/c= X-Received: by 2002:a5d:5850:0:b0:43e:a69b:d803 with SMTP id ffacd0b85a97d-43fe3e23f23mr5312603f8f.47.1776438719544; Fri, 17 Apr 2026 08:11:59 -0700 (PDT) Received: from alchark-surface.localdomain (bba-86-98-192-109.alshamil.net.ae. [86.98.192.109]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43fe4e591cesm7376426f8f.36.2026.04.17.08.11.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 17 Apr 2026 08:11:59 -0700 (PDT) From: Alexey Charkov Date: Fri, 17 Apr 2026 19:11:44 +0400 Subject: [PATCH RFC 1/4] arm64: dts: rockchip: rk3576: assign dclk_vp1_src to VPLL 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: <20260417-rk3576-dclk-v1-1-26a9d0dcb2de@flipper.net> References: <20260417-rk3576-dclk-v1-0-26a9d0dcb2de@flipper.net> In-Reply-To: <20260417-rk3576-dclk-v1-0-26a9d0dcb2de@flipper.net> To: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Heiko Stuebner , Michael Turquette , Stephen Boyd Cc: Pavel Zhovner , Sebastian Reichel , Andy Yan , devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org, Alexey Charkov X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=922; i=alchark@flipper.net; h=from:subject:message-id; bh=Iv35X0YItRmd6w3u4XU1Hvta1/Hwj6onkb318swFieU=; b=owGbwMvMwCW2adGNfoHIK0sZT6slMWQ+8t0WUda9/sCcx2V/UpPvama3/LOLkZC4de2NsUV4w d15/X6HOiayMIhxMViKKbLM/bbEdqoR36xdHh5fYeawMoEMkRZpYAACFga+3MS8UiMdIz1TbUM9 QyMdYx0jBi5OAZjq4+8Z/pm8++hxhGN95La0mM1spzbpKOYuyp9U1rHvy478JHtJVxVGholr+4q Yj3reCPmh7DNllRFXmllP+SNzNldHgX9nbs1ZxwcA X-Developer-Key: i=alchark@flipper.net; a=openpgp; fpr=9DF6A43D95320E9ABA4848F5B2A2D88F1059D4A5 Reparent dclk_vp1_src from GPLL to VPLL at the SoC level. VPLL is a programmable PLL with no other consumers, allowing the CRU to synthesize accurate pixel clocks for VP1's output with arbitrary display modes. Signed-off-by: Alexey Charkov --- arch/arm64/boot/dts/rockchip/rk3576.dtsi | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/arm64/boot/dts/rockchip/rk3576.dtsi b/arch/arm64/boot/dts= /rockchip/rk3576.dtsi index e12a2a0cfb89..2b05900c6c1c 100644 --- a/arch/arm64/boot/dts/rockchip/rk3576.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk3576.dtsi @@ -1338,6 +1338,8 @@ vop: vop@27d00000 { "dclk_vp1", "dclk_vp2", "pll_hdmiphy0"; + assigned-clocks =3D <&cru DCLK_VP1_SRC>; + assigned-clock-parents =3D <&cru PLL_VPLL>; iommus =3D <&vop_mmu>; power-domains =3D <&power RK3576_PD_VOP>; rockchip,grf =3D <&sys_grf>; --=20 2.52.0 From nobody Tue Jun 16 09:00:25 2026 Received: from mail-wr1-f47.google.com (mail-wr1-f47.google.com [209.85.221.47]) (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 7AD3F3CBE79 for ; Fri, 17 Apr 2026 15:12:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776438725; cv=none; b=fUMafJzTYIKuLCdzJctgld+k1xwIPst7gtQrJLrthnJRl3yTQJ95r1DSbLXjwdqK/XrebadFpO+CdezPxKCkObRMPW2lsdvEUabzd7eYsrjOXthBKEcbQPpfPXGZnYnSJOdWrYDR/R9UpmqFm71TDJSwTPOoKhAEsp9TcZdGOew= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776438725; c=relaxed/simple; bh=NvfvyU1IImSrCF3iQB5Qso5w+H1TNTTu2n7InPVjkh4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=BkPQEN4x9mihwVhXvNISqdnqVUMZzbFGll8GDYi03r6A+HW8ff3UaQUVzhy4VjaSK+BRcSvUgkbtcW1pK/HNmUGAbniypqJuPU8UxxeAYIW4JgEGwKZ4wo/qUKRnYJCnRYH2I6EfzLgUxmNeE57ye78qMUqLXmlfeo4ZhmiITz4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=flipper.net; spf=pass smtp.mailfrom=flipper.net; dkim=pass (2048-bit key) header.d=flipper.net header.i=@flipper.net header.b=cOb0JTwT; arc=none smtp.client-ip=209.85.221.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=flipper.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flipper.net Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=flipper.net header.i=@flipper.net header.b="cOb0JTwT" Received: by mail-wr1-f47.google.com with SMTP id ffacd0b85a97d-43d572f7437so595662f8f.1 for ; Fri, 17 Apr 2026 08:12:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=flipper.net; s=google; t=1776438723; x=1777043523; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=c0h/bSzKrRDyDdmyG30auftZMv/S6b+0T+VipJS3jxA=; b=cOb0JTwTxMCT5bBXyzwgrH3otZk16alJ1iPfSuQFYcX2QKbmqalnu172PPUveLDat9 ixFlbKB3UY5NIaMiOAZfbfGMzG+cshz3zNrS2W7dr+GiC1nR8sPgbZkQL0S1hnrHERE3 dwAg0feBP4pPo4Jd/Q6f/aNGSsysfaBTdbmkLwW3GCAXeoXt4wfyC0QSJWGQYDluJ7U7 m1Sf0rRKgLcRXhT/A3roz+Et+21HbS+4CfBA+klrdBCgsNZwIw0IaOESPkwSptb8T2xW CQZ1yj2LxxlBgIqC0ker1eEW0PNwg9gGqsVLiEBBotALFfuWphjA2tzEI7svwk9M2rGS VHHQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776438723; x=1777043523; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=c0h/bSzKrRDyDdmyG30auftZMv/S6b+0T+VipJS3jxA=; b=WaeJe8kjOfS6mGPVJ5RG53M9GOqH6WsKvLHYfiSBuqAFjik1vBM0acXaBl7w0Bteij jli92Ym1ioUryhLxmERZ7W0ZHE5LzVV5PR5l3amh7AVGgbIjNB+RsplBns1zrn1p+HGA wh9aA9rFxi0xMIupC2dAGMap8L9rq/IHZeMwNV0znFrS61yb0c2/0UAqOLhyDDIuTmtY xw96wvVudv0au9DpbpnSOhgvmni8HNJNsyvl6wEA9ZGa1uNjM+g44ZJPpL2S7/ltAJ1j i2L8VCHiGa0ISXE0aWk25LHnd4Da7HkpwN+yiROEWEMRGoSmw7LMc8lNzN/KrKpTof/n pjOg== X-Forwarded-Encrypted: i=1; AFNElJ+rWw+zTWMyba3Iipz1jam/ks8xj2tWWt8ctNUfKkm4krRJM3ZbUItBlxfQdJFUGWnGJ5u7HVjrt/66S+I=@vger.kernel.org X-Gm-Message-State: AOJu0Yw90cVxhu+dnRhUuw1tWRU9ThHge9juNz7lViYEC12kjK8HFTj+ /uzN8Fstb48HRZXKeo1ajOSoSNLIOPF6Zi0LmF2BY6fvO4WplJeRnFMH3jcTfxrFFh8= X-Gm-Gg: AeBDietxJsxuSd+shKakIQX9RLrv3gl6VtPgJZ0dNSql/4nvj3cv3qwbSlNkeCSCqns SEAHfFYW71wWo4cbxvoTBTumiUO0dOawUTDdfaNEz2by0ldaw8jhd8W1ZYvVXSinPx8gEvQzWYH ALVlqmSoRrrP5uOHM+AeVfi+EVlNf0zNA/tNd2Y1D3Uqn8gGVDCrF6xnOoEbHujAP0CMywAYRA5 kAtA+PQM1dQDUphlKwS0ZVMoRR/Kr0iTNggDsGLFIzkbBponpn1cpLb1wNf1RLcrEc1o7nLeGeO 1FrnvOclXHdrGIoSf2/R1AWR9J0xLM2Sfr3saiHRO1S97rJyAsaSDilk/jYtgpCCI+tlaRmzqkL 3v6bSSVmjaXlTpZqgdbOKxsOlDIn34gzOV7QEGJ9Zou4uDWNhLqiyMWq0yy/ytj8NP9blQUaom7 TR8EEc3u+F/M/VtBPXfJe0UV4OzE1/vH5K51acD3p3rI5FCA0kblr/hPxC2GYsiz2eVahxwqXD7 6EGwLzMsTfsrgHw X-Received: by 2002:a05:6000:18a6:b0:43d:70de:1c68 with SMTP id ffacd0b85a97d-43fe3e08c35mr4827304f8f.30.1776438722860; Fri, 17 Apr 2026 08:12:02 -0700 (PDT) Received: from alchark-surface.localdomain (bba-86-98-192-109.alshamil.net.ae. [86.98.192.109]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43fe4e591cesm7376426f8f.36.2026.04.17.08.11.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 17 Apr 2026 08:12:02 -0700 (PDT) From: Alexey Charkov Date: Fri, 17 Apr 2026 19:11:45 +0400 Subject: [PATCH RFC 2/4] clk: rockchip: pll: use round-nearest in determine_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: <20260417-rk3576-dclk-v1-2-26a9d0dcb2de@flipper.net> References: <20260417-rk3576-dclk-v1-0-26a9d0dcb2de@flipper.net> In-Reply-To: <20260417-rk3576-dclk-v1-0-26a9d0dcb2de@flipper.net> To: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Heiko Stuebner , Michael Turquette , Stephen Boyd Cc: Pavel Zhovner , Sebastian Reichel , Andy Yan , devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org, Alexey Charkov X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1952; i=alchark@flipper.net; h=from:subject:message-id; bh=NvfvyU1IImSrCF3iQB5Qso5w+H1TNTTu2n7InPVjkh4=; b=owGbwMvMwCW2adGNfoHIK0sZT6slMWQ+8t0mFK38Z9ft90/KpYsSdv70XXD10YenzgXaixSqJ vwM+vdKo2MiC4MYF4OlmCLL3G9LbKca8c3a5eHxFWYOKxPIEGmRBgYgYGHgy03MKzXSMdIz1TbU MzTSMdYxYuDiFICpzipnZPiXM6nmzcpO/RZJe/8Jl6LLDT4zicyQ35vOmzlnyhXFdRGMDNM+vyo 6x3zN912Ur3S2wqWjEzvDkpb/1XCwURZbUfi+iREA X-Developer-Key: i=alchark@flipper.net; a=openpgp; fpr=9DF6A43D95320E9ABA4848F5B2A2D88F1059D4A5 rockchip_pll_determine_rate() walks the rate table in descending order and picks the first entry <=3D the requested rate. This floor-rounding interacts poorly with consumers that use CLK_SET_RATE_PARENT: a divider iterating candidates asks the PLL for rate*div, and a tiny undershoot causes the PLL to snap to a much lower entry. For example, requesting 1991.04 MHz (248.88 MHz * 8) causes the PLL to return 1968 MHz instead of 1992 MHz =E2=80=94 a 24 MHz table gap that produ= ces a 1.2% pixel clock error when divided back down. Change to round-to-nearest: for each table entry compute the absolute distance from the request, and pick the entry with the smallest delta. The CCF's divider and composite logic handle over/undershoot preferences via their own ROUND_CLOSEST flags. Signed-off-by: Alexey Charkov --- drivers/clk/rockchip/clk-pll.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/clk/rockchip/clk-pll.c b/drivers/clk/rockchip/clk-pll.c index 6b853800cb6b..c142f2c4fd99 100644 --- a/drivers/clk/rockchip/clk-pll.c +++ b/drivers/clk/rockchip/clk-pll.c @@ -66,19 +66,19 @@ static int rockchip_pll_determine_rate(struct clk_hw *h= w, { struct rockchip_clk_pll *pll =3D to_rockchip_clk_pll(hw); const struct rockchip_pll_rate_table *rate_table =3D pll->rate_table; + unsigned long best =3D 0; int i; =20 - /* Assuming rate_table is in descending order */ for (i =3D 0; i < pll->rate_count; i++) { - if (req->rate >=3D rate_table[i].rate) { - req->rate =3D rate_table[i].rate; - - return 0; - } + if (abs((long)req->rate - (long)rate_table[i].rate) < + abs((long)req->rate - (long)best)) + best =3D rate_table[i].rate; } =20 - /* return minimum supported value */ - req->rate =3D rate_table[i - 1].rate; + if (best) + req->rate =3D best; + else + req->rate =3D rate_table[pll->rate_count - 1].rate; =20 return 0; } --=20 2.52.0 From nobody Tue Jun 16 09:00:25 2026 Received: from mail-ej1-f54.google.com (mail-ej1-f54.google.com [209.85.218.54]) (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 75A6C3CCFBA for ; Fri, 17 Apr 2026 15:12:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776438729; cv=none; b=qSa1SnRGaTQvtmldJFLxorgFsOCg0EVmAzoM65nSMDnnhh6K2bhACJ1iJAwQvP7zdsge2pp0x5QWDdB/44U90J3e9Z7melgTHtxZowbwbqTl9g0Ahi5Z6WZ2iKsEq5G/EP3ZoCvHrAz1X8PD53YFjzzQiHbWldsGKwnX0yDougM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776438729; c=relaxed/simple; bh=9E+GVCevJV58fhmm0CYyTjqLcW41sUgTRpTXQLHwLHc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=D4jPnvyp+qE+ya/3GX8MHlc+YDMFoQDMyzroh5peaa2HZsnXLfsiJGSl01prpRTwEDbRn2b+dJJUEEElZHniuosmBC7Rji083OO7cvyfQZZlfADXwMeVz8MKUm/hkrw7EF6teW8jLNasmoCevvrXS7jemmWWarPzcJDrsy7uEq8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=flipper.net; spf=pass smtp.mailfrom=flipper.net; dkim=pass (2048-bit key) header.d=flipper.net header.i=@flipper.net header.b=k74u2ayo; arc=none smtp.client-ip=209.85.218.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=flipper.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flipper.net Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=flipper.net header.i=@flipper.net header.b="k74u2ayo" Received: by mail-ej1-f54.google.com with SMTP id a640c23a62f3a-b9b1ffbb9f5so121194566b.2 for ; Fri, 17 Apr 2026 08:12:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=flipper.net; s=google; t=1776438727; x=1777043527; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=VqX8mavnBNkgyap63RnjubBar/UFOY4VCctk2eUAZ6g=; b=k74u2ayoWLC5DNpd0RYI/7CyHOOrl6NjtuyotJuzimx2kLmYsuIsu+dOK/1FE1a1sj cW8DaIzIj6olQSWRKm1w5NOKoEx2itYe2paLCOJLL65+VgBUJCcZrSqoOiwBQJd76h6T o35K7Q6UGM84LBlAkraWW9gpfZeDexU2rB54YXGRJNE6onOZI3aLFG/eWcEFutJoUNni q9UCUWn+3Yl7D0tm/jZ/7IRDi6Ymg193nyyzV8ZcqOWTgOP7zOAQGBE+MeQidalU5ahI kq6bE8KQYeYxcBPP3oPNVHWFRxjp1REzZkMrBmV55gbxy3uwegEOj04c64U1iT5Er4zX mjtA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776438727; x=1777043527; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=VqX8mavnBNkgyap63RnjubBar/UFOY4VCctk2eUAZ6g=; b=OwyvGhPeHKx3vcDEaEb5cNddi1EBJNf9tZUu9DK3k5DsZlYFYR9e+O6kK9cTk1S82M Gmc19fH9Pw7MPTl7bMQMdd+rgz4+93Rb1Lny00b4q1ns59fnBQI7QBRKQsbMpJ99Erwh ccl1J6gn7sjdDTNEHsDOON7dmcbvKDj5JuM+qrqz/vDDYnXBrKEHAZ1CNQrHTxTCObPo P4TT0Sknfart1v0siZBbGuejWnfv5W4l3pmKDFBzeTPpKc7vO+gLINd6dzK9YijsemCv LuCDC8NYm3KGYMMI6x9ddcGhPy5M7sinoyfjMsXtA1F9va19jHrxMURN5DW4hpZHIzuC tyvA== X-Forwarded-Encrypted: i=1; AFNElJ9gMshDsY+pPXQ+A5Aw2fPNkRnY6Xcd3f0ms/vCJ9zrB7Kgwvw5vk5ww2UB+PjMpIdBTvVr3a7AutSJ3CM=@vger.kernel.org X-Gm-Message-State: AOJu0YyBGHPoZHVDQ5DnJ7tqmaaTeBkQ9apyQYO1hdHBaIH0Vug2csuF Uay6xE6zpJxu/1U3FB65PYbGaCgAqC4TxwqzMUgVdoTMqqfEGb4hSLCSxCTKeZUYlik= X-Gm-Gg: AeBDieuuYdqDuJyC5djeazeuM6g6jkblleRiH6zvHg78Klb2M3nIq7TbTHSqpub7LL+ M2P70FitP0HtAjdYSY5raWPDNJFynzE4oTItyNI1XrRiscgNaAIlOjtMt4wpbP9YAtCEd1qOE9K goC5U3gMHmbCIMRLRg34COdKp+bRC0ZpNVlivimKn/iW87zvUDw+nh1yHfK2CAH7lW/vaiTb8qL mFmlEINHdRtSoLl0tyiANKYcOQI0BTNa34+c+qr/k+rPnClsYBwU8KDfwqGOStueJwfO0HBjFtB mH5Ur9DxjpA9iMMXjfhCXoRrKazT4A+oskEQOO+xRJ75qeyUxqLEzDNqhinnbaQfNENIbMmIpeP U7S1ujI/MQiFdQY4bt6XBjNODWhP6fZi5xGfhd3DDU6iEcgXJs38a+R8w5/TaV/tV9PvCsbsHk7 DhY3jAwM1EYh+IykR7/Ln3UHBbBSMRaHfr4iQkM2AJ2nNwly6eMdRIP/XcXXaGNnobbHxmZ0bDE 0yjtDCZ1i1GfB7B2TRBqYp/FaI= X-Received: by 2002:a17:907:3c8e:b0:b9c:b069:8abe with SMTP id a640c23a62f3a-ba418e853b7mr164954266b.12.1776438726689; Fri, 17 Apr 2026 08:12:06 -0700 (PDT) Received: from alchark-surface.localdomain (bba-86-98-192-109.alshamil.net.ae. [86.98.192.109]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43fe4e591cesm7376426f8f.36.2026.04.17.08.12.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 17 Apr 2026 08:12:06 -0700 (PDT) From: Alexey Charkov Date: Fri, 17 Apr 2026 19:11:46 +0400 Subject: [PATCH RFC 3/4] clk: rockchip: rk3576: allow dclk_vp1_src to propagate rate to parent PLL 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: <20260417-rk3576-dclk-v1-3-26a9d0dcb2de@flipper.net> References: <20260417-rk3576-dclk-v1-0-26a9d0dcb2de@flipper.net> In-Reply-To: <20260417-rk3576-dclk-v1-0-26a9d0dcb2de@flipper.net> To: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Heiko Stuebner , Michael Turquette , Stephen Boyd Cc: Pavel Zhovner , Sebastian Reichel , Andy Yan , devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org, Alexey Charkov X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1840; i=alchark@flipper.net; h=from:subject:message-id; bh=9E+GVCevJV58fhmm0CYyTjqLcW41sUgTRpTXQLHwLHc=; b=owGbwMvMwCW2adGNfoHIK0sZT6slMWQ+8t127xRniY258Vemr65Gvz625DB3Scj+eCYSeP5gs fcvv3b1joksDGJcDJZiiixzvy2xnWrEN2uXh8dXmDmsTCBDpEUaGICAhYEvNzGv1EjHSM9U21DP 0EjHWMeIgYtTAKZ6aiEjQ3+bJOvdiLL/kZfbGnlnOLHPfHN8uXm/VpTI9PfMj8VenmJk2Fa/+au BLrPpiRN5S0p7vgYdNTL//2592W/rcMcA1r3zOQE= X-Developer-Key: i=alchark@flipper.net; a=openpgp; fpr=9DF6A43D95320E9ABA4848F5B2A2D88F1059D4A5 dclk_vp1_src feeds the display clock for Video Port 1. When parented to the default GPLL (1188 MHz), the 8-bit divider cannot synthesize the 248.88 MHz pixel clock required for 2560x1440@60 which VP1 supports: 1188 / 5 =3D 237.6 MHz (-4.53% error). This exceeds DisplayPort's +/-0.5% tolerance and causes black screens on strict sinks. Add CLK_SET_RATE_PARENT so that when dclk_vp1_src is reparented to a programmable PLL (e.g. VPLL via assigned-clock-parents), the CCF divider can ask the PLL to retune. For example, VPLL at 1992 MHz / 8 =3D 249 MHz (0.048% error). This flag relies on reparenting the VP1 source clock to VPLL at DT level to ensure no consumer calls clk_set_rate on dclk_vp1 while its parent is set to the boot-time default of GPLL. Signed-off-by: Alexey Charkov --- drivers/clk/rockchip/clk-rk3576.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/clk/rockchip/clk-rk3576.c b/drivers/clk/rockchip/clk-r= k3576.c index 2557358e0b9d..28eb5a802e83 100644 --- a/drivers/clk/rockchip/clk-rk3576.c +++ b/drivers/clk/rockchip/clk-rk3576.c @@ -1105,7 +1105,7 @@ static struct rockchip_clk_branch rk3576_clk_branches= [] __initdata =3D { COMPOSITE(DCLK_VP0_SRC, "dclk_vp0_src", gpll_cpll_vpll_bpll_lpll_p, CLK_S= ET_RATE_NO_REPARENT, RK3576_CLKSEL_CON(145), 8, 3, MFLAGS, 0, 8, DFLAGS, RK3576_CLKGATE_CON(61), 10, GFLAGS), - COMPOSITE(DCLK_VP1_SRC, "dclk_vp1_src", gpll_cpll_vpll_bpll_lpll_p, CLK_S= ET_RATE_NO_REPARENT, + COMPOSITE(DCLK_VP1_SRC, "dclk_vp1_src", gpll_cpll_vpll_bpll_lpll_p, CLK_S= ET_RATE_NO_REPARENT | CLK_SET_RATE_PARENT, RK3576_CLKSEL_CON(146), 8, 3, MFLAGS, 0, 8, DFLAGS, RK3576_CLKGATE_CON(61), 11, GFLAGS), COMPOSITE(DCLK_VP2_SRC, "dclk_vp2_src", gpll_cpll_vpll_bpll_lpll_p, CLK_S= ET_RATE_NO_REPARENT, --=20 2.52.0 From nobody Tue Jun 16 09:00:25 2026 Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) (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 6A1173CCFD1 for ; Fri, 17 Apr 2026 15:12:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776438733; cv=none; b=SCtduv5UUw6lTmcdCK/5pDZ2YW9FeuzGPZ7DVMWN9HE/z4aZzz91VQe2IyimPG/rB7rXEa9PExwHanC8px0oZpxRBOBd/fJP5IN604DCnW5nmOIPmX4b/D5iHiO1mnA20gYiGpXK2yvVQKSRnZxAVNCUsDnTtFSn58tFSlRGvJ8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776438733; c=relaxed/simple; bh=MJzTscokaYVjaUenKSLbKoiovLeIQbNEzqwhkopLKGI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=lopilK251/ijR8qFCeW3ZX87qjQisc+BQdkcpu/jiol6sJMbxGN7eFV2eikC/AFKLgpGXeg5I5z1MIn/by9V51axWVUYPXeUC5zrUB1ARgl/sx5hVRx47Dm3ln5QtoPa9cTsAbXmKrJ+gTItGLPwd1+V+vZH+s2PCVt9SCh3gs8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=flipper.net; spf=pass smtp.mailfrom=flipper.net; dkim=pass (2048-bit key) header.d=flipper.net header.i=@flipper.net header.b=1vObfbSC; arc=none smtp.client-ip=209.85.128.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=flipper.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flipper.net Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=flipper.net header.i=@flipper.net header.b="1vObfbSC" Received: by mail-wm1-f41.google.com with SMTP id 5b1f17b1804b1-488af96f6b2so10702125e9.0 for ; Fri, 17 Apr 2026 08:12:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=flipper.net; s=google; t=1776438731; x=1777043531; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=az2KIqgV5YqkPRGM1cxImWSRMVebKiNjnNol2i4MAlI=; b=1vObfbSCKpsl6PnOHTD7JXnMHgIHpiMj6lvufrwLhxUxCjoLg1nnpF/lcyS1Z+wK/7 rylYi5u4SOWkJPaw+UvVuNKoatRoTbeTQ9BiZIhRh4AdJMyNF8a6REeac3+YgyQoR2I5 uvp0SVOdogm9OUyP4sFlV1o3eGSvGBZfbrvzb8Ko1ee3MfXfzj9ilviIX997ONe4T+Ai 0jeO0VlYN55uP5Iqh9WtxjRZTD7wnNGfKj/BuEkVh9eeoyOt7AvfA5N5H9u44IPuM7q1 hR/s3ePfTNKEbM1G/sno1j0Z1t2IYxgL+KHETiwu+W0cQctFE+SqydCrf1DNtoN9/dH6 c6Lw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776438731; x=1777043531; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=az2KIqgV5YqkPRGM1cxImWSRMVebKiNjnNol2i4MAlI=; b=n6tYHBzg2mjNAB+pzZOyYgUIJ9fmsGt2iSJc6ugfKKI/nhYDd3JQfdlQLB5E9rR+5Z Pcp7QiPAESFSGtaPmqN5xkZB0obG2gNy6mKWMqB2eJuR7GAPwt2gQQd2FOquibOOzzsQ U6Izwf0H9kX+BgMVdBlmZnfMOtL6SAt4IXxI2YHznAnpIxPW4C3LoBXD8uG6OGaUlBJd JerqzJIu7Ju/Oq+cidfECDPRtyZGZdlzJb7XJbHx2FazMZFGAR4IW+mf/RKxaE0Rxasz xpycGbFCbjA+A3HEX5KzhfhMYfwEJF/8s4MHNA0Ys3EqelshaOTpSCAoizrVTchiyxZe /IQA== X-Forwarded-Encrypted: i=1; AFNElJ93/n+puTURluE9Yskfww087Sj5HSXNhunrYcUEJH0WKZZPspq4irrexlU1owNKy16iIOSBpl4EiPVeeEo=@vger.kernel.org X-Gm-Message-State: AOJu0YwFVX6Jsyj7+iJrGYRONhkoz/W63U5eb6xvoSWMs7UNG8Kds2XZ tUCj+Q81M3KzxMZCJ9hBZsEALek74toi4IEO9g1h8qlavfMgfxH2PdL3Xq0CviJdVpE= X-Gm-Gg: AeBDietpgtjYV06ymWkhGBKjJhC7yl/cUWOrBmyLHWvSeUTd32r/q3K0OGtya+3oWA2 pK0DsWcKhy8/r/ZoGTeySbhaMkoERqSCLVX2pQfbLiP7Ew4wHwJeLB7cKmxE6WHUUC0TGFiJseB CM4FPUt1ESjxquohA3u4uMWLCpIH8TTCDdpx3fdp4VCiPOndPryb7Kn3k30HTfys72QWm0fd/9L QbJi7UTkrw3vuDhgwvNNeBpy26A5J4bYBN5KKr/7V1xzdVXJhZwGSFrtWSGQeQwoTZYVWNNk1yF rjLUR6GT9cnF5n6hWDuJsiZIj8mETjhCbDVWUUTlfdpRwuTlyTW8BzZpPFMBVcFZl8FigL/1r/j TS2nqLE4C16QUxCDqMcRDFNsQ+HrRKeTjgzCqk1M820rm0XCDdyRAJXi+IxsIzySib2FHnN71Wf lpnAiw+llf1+8fUwgh24EGg/bDCwjdNBtCzzN/cIYyHLk8vAW8bajlknoQXkeySPXDA94wJ/QsF vqFyJzVbkiyEbs8 X-Received: by 2002:a05:600c:3546:b0:488:81b1:ae36 with SMTP id 5b1f17b1804b1-488fb7880camr48839705e9.23.1776438730645; Fri, 17 Apr 2026 08:12:10 -0700 (PDT) Received: from alchark-surface.localdomain (bba-86-98-192-109.alshamil.net.ae. [86.98.192.109]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43fe4e591cesm7376426f8f.36.2026.04.17.08.12.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 17 Apr 2026 08:12:10 -0700 (PDT) From: Alexey Charkov Date: Fri, 17 Apr 2026 19:11:47 +0400 Subject: [PATCH RFC 4/4] clk: rockchip: rk3576: add ROUND_CLOSEST to dclk_vp1_src divider 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: <20260417-rk3576-dclk-v1-4-26a9d0dcb2de@flipper.net> References: <20260417-rk3576-dclk-v1-0-26a9d0dcb2de@flipper.net> In-Reply-To: <20260417-rk3576-dclk-v1-0-26a9d0dcb2de@flipper.net> To: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Heiko Stuebner , Michael Turquette , Stephen Boyd Cc: Pavel Zhovner , Sebastian Reichel , Andy Yan , devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org, Alexey Charkov X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1924; i=alchark@flipper.net; h=from:subject:message-id; bh=MJzTscokaYVjaUenKSLbKoiovLeIQbNEzqwhkopLKGI=; b=owGbwMvMwCW2adGNfoHIK0sZT6slMWQ+8t2+8RTP4gqLYob2DNVSvTrzxQ82/a7SW+3xNOBIi PINS76WjoksDGJcDJZiiixzvy2xnWrEN2uXh8dXmDmsTCBDpEUaGICAhYEvNzGv1EjHSM9U21DP 0EjHWMeIgYtTAKb67UtGho4P594u/vp4E6vSzw6BvvkfkrjvvHc1nO7fp1LJ5CvF9IPhn8bhnO2 79F2iasptjeP2Blz4f7J5xZTLyz353lo8+H2fnwsA X-Developer-Key: i=alchark@flipper.net; a=openpgp; fpr=9DF6A43D95320E9ABA4848F5B2A2D88F1059D4A5 Without CLK_DIVIDER_ROUND_CLOSEST, the divider's _is_best_div() only considers candidates where now <=3D target, rejecting any rate above the target even when it is closer. Combined with the PLL round-nearest fix, this causes the divider to still pick a suboptimal rate: with PLL round-nearest alone, div=3D8 produces 249.0 MHz (0.048% over) but is rejected because it exceeds the target, and div=3D3/248.0 MHz wins (-0.354% error). Add CLK_DIVIDER_ROUND_CLOSEST to dclk_vp1_src's div_flags so the divider picks the rate closest to the target regardless of direction. Together with the PLL round-nearest change, this yields: VPLL 1992 MHz / 8 =3D 249.0 MHz (+0.048% error) instead of the previous: VPLL 1488 MHz / 6 =3D 248.0 MHz (-0.354% error) This small difference appears to enable more monitors to lock to the VP1 clock when driving output at 2560x1440@60Hz via DisplayPort. Signed-off-by: Alexey Charkov --- drivers/clk/rockchip/clk-rk3576.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/clk/rockchip/clk-rk3576.c b/drivers/clk/rockchip/clk-r= k3576.c index 28eb5a802e83..9fc3264ef322 100644 --- a/drivers/clk/rockchip/clk-rk3576.c +++ b/drivers/clk/rockchip/clk-rk3576.c @@ -1106,7 +1106,7 @@ static struct rockchip_clk_branch rk3576_clk_branches= [] __initdata =3D { RK3576_CLKSEL_CON(145), 8, 3, MFLAGS, 0, 8, DFLAGS, RK3576_CLKGATE_CON(61), 10, GFLAGS), COMPOSITE(DCLK_VP1_SRC, "dclk_vp1_src", gpll_cpll_vpll_bpll_lpll_p, CLK_S= ET_RATE_NO_REPARENT | CLK_SET_RATE_PARENT, - RK3576_CLKSEL_CON(146), 8, 3, MFLAGS, 0, 8, DFLAGS, + RK3576_CLKSEL_CON(146), 8, 3, MFLAGS, 0, 8, DFLAGS | CLK_DIVIDER_ROUND_= CLOSEST, RK3576_CLKGATE_CON(61), 11, GFLAGS), COMPOSITE(DCLK_VP2_SRC, "dclk_vp2_src", gpll_cpll_vpll_bpll_lpll_p, CLK_S= ET_RATE_NO_REPARENT, RK3576_CLKSEL_CON(147), 8, 3, MFLAGS, 0, 8, DFLAGS, --=20 2.52.0