From nobody Mon Dec 15 21:46:52 2025 Received: from smtpbg151.qq.com (smtpbg151.qq.com [18.169.211.239]) (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 E4B5121ADA3; Thu, 8 May 2025 06:44:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=18.169.211.239 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746686665; cv=none; b=aZVF4Rbaae4Amf9HMehJQtsPfuYvZGzb/CKFmN9NoGxmzv7sTW6mHNRObZRdAqnBl/UWSsRGXwoJ6Jn2gwUzSVD8/sCiTNm6oXm36VOpW0G7KyPV5kTLtee0dP2ARaJKWbUzaLWVERP2mUsnK/M0eYG9BAQUegUwm6Nw6NvQYYY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746686665; c=relaxed/simple; bh=/38mWXskPoVQglLcSXuOweYW8P002AnwffGmfoyHC+I=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References; b=ruZax9bdj50oCUrytQN8b2h/m7YXKlpFC9DLzANc3QoHPJy5rt2p+e40ZIZgANDD4gyjs9yzAxSKAd7kxGLHSZjkIygRRP8t75He+7iquTPtDi/YnkETD1gDM3euWPjo5EIliGgFgiNJEUID4DlyQ9XubOA6z5o2vyPL4mVvWtA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=airkyi.com; spf=pass smtp.mailfrom=airkyi.com; dkim=pass (1024-bit key) header.d=airkyi.com header.i=@airkyi.com header.b=EIBFFjXc; arc=none smtp.client-ip=18.169.211.239 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=airkyi.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=airkyi.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=airkyi.com header.i=@airkyi.com header.b="EIBFFjXc" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=airkyi.com; s=altu2504; t=1746686614; bh=QyDFhO8OtjpTCJbTfPuoHwFDRMlY45kLnroWzhMw0+o=; h=From:To:Subject:Date:Message-Id; b=EIBFFjXcS1XhvSE80uXG9ACdOd1Elnc6pazPCFetlfV1srzr2i5Pp2jHvYO85xQ2o g2+Gn9I25Sv4trSTf4HSVZosb3BAY08/G5CXxC+71niwt3Vm9WS9Z82NMpiIi9GSDM drJA8tOiWy0FQUUgG2XO3ss7g2Or8RoP3k0XRpck= X-QQ-mid: esmtpsz18t1746686612te3481210 X-QQ-Originating-IP: zbzDiNl3M4Ey2lstqT3s4mpmSf/C2+GYcEOzllnANXk= Received: from DESKTOP-8BT1A2O.localdomain ( [58.22.7.114]) by bizesmtp.qq.com (ESMTP) with id ; Thu, 08 May 2025 14:43:29 +0800 (CST) X-QQ-SSF: 0000000000000000000000000000000 X-QQ-GoodBg: 0 X-BIZMAIL-ID: 997468467344160860 From: Chaoyi Chen To: Sandy Huang , Heiko Stuebner , Andy Yan , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Chaoyi Chen , Dragan Simic , dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH 1/2] arm64: dts: rockchip: Improve coding style for rk3399 cdn_dp Date: Thu, 8 May 2025 14:43:03 +0800 Message-Id: <20250508064304.670-2-kernel@airkyi.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20250508064304.670-1-kernel@airkyi.com> References: <20250508064304.670-1-kernel@airkyi.com> X-QQ-SENDSIZE: 520 Feedback-ID: esmtpsz:airkyi.com:qybglogicsvrsz:qybglogicsvrsz4a-0 X-QQ-XMAILINFO: N5B7MX/IRFYgEb1I4KmXo2Ziq6XRf69B3uXk7PnGoPxySQhlZvpv/XYE PtUfBYD1Sw3zPuLf0SqUHBr4OSnXsXjpuJI4nDCKI5KD+ekTPFhEqS8zhROeEgFSIrWHBCn Hv5qHWvicl13+yg4bho6pcYLQDx03ZmfOjJAzm3YplltTo14kPYrulaI/geBgidQCBkS7/R uJ+favHAQ0dkNG2jjlsMBRdsRax9SCRHsl8kamRgWTmqx26CAf/tzcFTUQ/1duJadj8JGM7 n86D2A9CHnXOypQociLXJvY1/e9DtWv6Q/1//ipT67YSvs5/vBBVbVZW0zzBQgxnXSOZ6C4 Woa06SkHPAWlRn2H4SYkTBNxB/DBXuJJSm13OksKSmfT0ovIKDlHbxtr/5ynL0RjZkEjTyT AyuFhvJYFD2bl+czpCvIg1RyO74YttGxn6UaV6eSG0Neh+ZOmcnFUkdgFD7r59IPPOBfPcO Im/nhqLEdDiOSVFCuN6naJ4i+/Ysar39tKpcJUHM2Cshb5PRPOOWnOxTwxKpZBngcN6GIRY ca/MRXvQiEQsEcRcs2y90fwIuCKxwpcCuFV0Ec+wQaEUzCi0Qn1RhyVFJo0J+/sgsDDUlSx 55wFEIZa8lQbZaLlKvprxilt/R54VB+pxe9ai8pyD5pqEM4U7Pez7whjZb21HmkEe2p0TfQ 8V/MQ7TrBdjQafWlZ8zhZCVduIv6mevtOJHWFeL4NFNFtUOMGnEPWOnaKtdgIB6LNza+AVo aZeyQfXfSGsfXHbMcnSgaZEFFUvDYMvn/fMJACE14647/dXpPUXcDb7kthc43ScJGN5ZjvX ytxSCGED2dYdPHlyGqsSrMRzFEg4gMB4DPEWfu5iSY8PuBCQ4tZzEh289R1Of1glFgQw833 8bAuUfYzoQHpac5deERHHSjr4AoJV7Ufq6f2vkwAL6c0aOXeWSmywztSAWvh0rXhGU3ELxt MVDgLxklZMP/MUwy2i58XlL/4 X-QQ-XMRINFO: Mp0Kj//9VHAxr69bL5MkOOs= X-QQ-RECHKSPAM: 0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Chaoyi Chen Let's make the ports nodes of cdn_dp in the same style as the other display interface, and match the style of ports's yaml. Signed-off-by: Chaoyi Chen --- arch/arm64/boot/dts/rockchip/rk3399-base.dtsi | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/rockchip/rk3399-base.dtsi b/arch/arm64/boo= t/dts/rockchip/rk3399-base.dtsi index 9d5f5b083e3c..e340b6df7445 100644 --- a/arch/arm64/boot/dts/rockchip/rk3399-base.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk3399-base.dtsi @@ -618,7 +618,11 @@ cdn_dp: dp@fec00000 { status =3D "disabled"; =20 ports { - dp_in: port { + #address-cells =3D <1>; + #size-cells =3D <0>; + + dp_in: port@0 { + reg =3D <0>; #address-cells =3D <1>; #size-cells =3D <0>; =20 @@ -632,6 +636,10 @@ dp_in_vopl: endpoint@1 { remote-endpoint =3D <&vopl_out_dp>; }; }; + + dp_out: port@1 { + reg =3D <1>; + }; }; }; =20 --=20 2.49.0 From nobody Mon Dec 15 21:46:52 2025 Received: from smtpbgeu2.qq.com (smtpbgeu2.qq.com [18.194.254.142]) (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 6035F17A2F0; Thu, 8 May 2025 06:44:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=18.194.254.142 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746686661; cv=none; b=HkfFPmIB/YjdgewrtqIKLCDkfK1GHank/+Vz3kK0MRebPv29ssZ1yDJcyMTk823IVVplUIGWJKD9LINYiduhmm3XCjt8NdBKcGFdHWcw34LXV5mDru5M2Kp20Q+FnuTOqFhLgkCuU36s30ZH9IkgH+CcLEpBtD3efTjajwltLls= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746686661; c=relaxed/simple; bh=iJW6WOHNtWwu4D33uyz/a7pPIbuQhMzzj5nZUW+PiE8=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References; b=GxKrscB1CONmjkFgeTwtphFqVe0K7bmoIL6KB1uk50GE3jvST0wiz9DZvkCa2Lb0LqtBXzBNW8C4KwNN60n/PDRj6vy047V5pYuQ/bHesdzjd1f4zj6gAxBsMJPesi4YcUpWT5VW1b901DPlARsF7YHeMueHzkpogj187nJve7w= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=airkyi.com; spf=pass smtp.mailfrom=airkyi.com; dkim=pass (1024-bit key) header.d=airkyi.com header.i=@airkyi.com header.b=C19ZUcTz; arc=none smtp.client-ip=18.194.254.142 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=airkyi.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=airkyi.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=airkyi.com header.i=@airkyi.com header.b="C19ZUcTz" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=airkyi.com; s=altu2504; t=1746686616; bh=S38gIegyImzSiPrPTJZbZJbHNkJdghgnHdGNsjdUcdY=; h=From:To:Subject:Date:Message-Id; b=C19ZUcTzKIfhaexVnl4JUB9Ja60eg5kPNE9KoaBFDReYt+lhTBMwaPxiR0pJs2GqO pNqh49+OuHbSWe9o0O8Lr+bxOsHjQYdBDVfUJ96U4CQXLn8uIJrsDnO1gw3JPaOHlw Q8y/bG5S2SSMCyjxE8pGAv9ORo3wQNpOmKm7cNfU= X-QQ-mid: esmtpsz18t1746686615t934238f6 X-QQ-Originating-IP: 6QePaabhGr3rW48lbWk1i7+S8T1BOSY7MRS+ZtJxtzw= Received: from DESKTOP-8BT1A2O.localdomain ( [58.22.7.114]) by bizesmtp.qq.com (ESMTP) with id ; Thu, 08 May 2025 14:43:33 +0800 (CST) X-QQ-SSF: 0000000000000000000000000000000 X-QQ-GoodBg: 0 X-BIZMAIL-ID: 16256494491489308250 From: Chaoyi Chen To: Sandy Huang , Heiko Stuebner , Andy Yan , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Chaoyi Chen , Dragan Simic , dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH 2/2] dt-bindings: display: rockchip: Convert cdn-dp-rockchip.txt to yaml Date: Thu, 8 May 2025 14:43:04 +0800 Message-Id: <20250508064304.670-3-kernel@airkyi.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20250508064304.670-1-kernel@airkyi.com> References: <20250508064304.670-1-kernel@airkyi.com> X-QQ-SENDSIZE: 520 Feedback-ID: esmtpsz:airkyi.com:qybglogicsvrsz:qybglogicsvrsz4a-0 X-QQ-XMAILINFO: MN7J+qOXnZ1LC2rHDFipWslgoSnqa12WgIq5OFE7T5CnvQygjVvLtPOz 34z4g/G9c6Bz2zSN9IWW2dtlILMVqZUuVpfFpRnYER0GVTZluIS8NoJgI4+I7x3O8ACv17D ygDmpUbZ1K4KHwBwGmbVlEIaCw+TwGpVv/18qZ1aIvSh23CNPOc9361Cmwm4OAj2NFNCKTw u28d7uoc4XpcUVtEGg/Y10Htm4i5vF+zLYaYxkw1T/HAPF3FPG+ddADvdn8AI5hQfBAJ1yR rDBHnTKXH0+OMpgNrwgEk+jcIMfXgcvJz2xci4ITCYxeC4bVDGzGcl7axDygcYcWcnjHuS7 eS1FHY/JKF3JRPLDjfcBta73qlJOX2T3cvK6RPDM1dyl9oHN14xmK7wSJDdA2BDPXpW/sNm wuAuswVyBAPPyp3cxZmYrU+WEWQEeeQnhgmiq5Hqu5IyO5wAWTjtOHzmLZf7t4AHUCmMoQ2 gqUs3Ys6A84V2NHL6PqI9RrBB9e03ZA800pFwB57vDBhr8ALcoC+km9Y2Nh6SqHlvjymonv fMRCSTidxAZnOadpLIWOyKHsKN0GZVllC1/niUn6yxMv6s8I7z29sM+fk+FjJA4oJSPitga ykBWlz2Jlybhk5R9kdXPd5pRggBDU66vTenAwHryRhknLZhRg5RBZZsGysESH4f75t8xW1A Q4CpwR3Ox3WD53hK4LOyqI3nuozPLk7FEKjipwSeunDL8Q2cEPpq2HMJ9BN+vvGYMswNeHz 1pxQqpNMFXrbZXZ/Fsorf6xuN8puXtFvDPMNoyJfOoqOuT4mbXrOGfqyM4jaYu/GDMkwcmX uB+bKMQjk66GROAx55iDXNYpD1IqTTnYWyQmHmZ4DqSuefX6b5Y4Q633iYG3xAzyofOyD9I Lg0pApPOnai0jkvm0ERghjvIP52JT98z31ddueWW2o08u4UGzm+alYO6dZwOWB2+v/v9T1p t9cRaRB+mRBCG92dz7sXNhGoh/BJB+uWO6BTeoru44MlNynosFzXdn9AV X-QQ-XMRINFO: NI4Ajvh11aEj8Xl/2s1/T8w= X-QQ-RECHKSPAM: 0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Chaoyi Chen Convert cdn-dp-rockchip.txt to yaml. Tested with: 1. make ARCH=3Darm64 dt_binding_check DT_SCHEMA_FILES=3DDocumentation/devic= etree/bindings/display/rockchip/rockchip,cdn-dp.yaml 2. make ARCH=3Darm64 dtbs_check DT_SCHEMA_FILES=3DDocumentation/devicetree/= bindings/display/rockchip/rockchip,cdn-dp.yaml Signed-off-by: Chaoyi Chen --- .../display/rockchip/cdn-dp-rockchip.txt | 74 --------- .../display/rockchip/rockchip,cdn-dp.yaml | 148 ++++++++++++++++++ 2 files changed, 148 insertions(+), 74 deletions(-) delete mode 100644 Documentation/devicetree/bindings/display/rockchip/cdn-= dp-rockchip.txt create mode 100644 Documentation/devicetree/bindings/display/rockchip/rock= chip,cdn-dp.yaml diff --git a/Documentation/devicetree/bindings/display/rockchip/cdn-dp-rock= chip.txt b/Documentation/devicetree/bindings/display/rockchip/cdn-dp-rockch= ip.txt deleted file mode 100644 index 8df7d2e393d6..000000000000 --- a/Documentation/devicetree/bindings/display/rockchip/cdn-dp-rockchip.txt +++ /dev/null @@ -1,74 +0,0 @@ -Rockchip RK3399 specific extensions to the cdn Display Port -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D - -Required properties: -- compatible: must be "rockchip,rk3399-cdn-dp" - -- reg: physical base address of the controller and length - -- clocks: from common clock binding: handle to dp clock. - -- clock-names: from common clock binding: - Required elements: "core-clk" "pclk" "spdif" "grf" - -- resets : a list of phandle + reset specifier pairs -- reset-names : string of reset names - Required elements: "apb", "core", "dptx", "spdif" -- power-domains : power-domain property defined with a phandle - to respective power domain. -- assigned-clocks: main clock, should be <&cru SCLK_DP_CORE> -- assigned-clock-rates : the DP core clk frequency, shall be: 100000000 - -- rockchip,grf: this soc should set GRF regs, so need get grf here. - -- ports: contain a port nodes with endpoint definitions as defined in - Documentation/devicetree/bindings/media/video-interfaces.txt. - contained 2 endpoints, connecting to the output of vop. - -- phys: from general PHY binding: the phandle for the PHY device. - -- extcon: extcon specifier for the Power Delivery - -- #sound-dai-cells =3D it must be 1 if your system is using 2 DAIs: I2S, S= PDIF - ---------------------------------------------------------------------------= ----- - -Example: - cdn_dp: dp@fec00000 { - compatible =3D "rockchip,rk3399-cdn-dp"; - reg =3D <0x0 0xfec00000 0x0 0x100000>; - interrupts =3D ; - clocks =3D <&cru SCLK_DP_CORE>, <&cru PCLK_DP_CTRL>, - <&cru SCLK_SPDIF_REC_DPTX>, <&cru PCLK_VIO_GRF>; - clock-names =3D "core-clk", "pclk", "spdif", "grf"; - assigned-clocks =3D <&cru SCLK_DP_CORE>; - assigned-clock-rates =3D <100000000>; - power-domains =3D <&power RK3399_PD_HDCP>; - phys =3D <&tcphy0_dp>, <&tcphy1_dp>; - resets =3D <&cru SRST_DPTX_SPDIF_REC>; - reset-names =3D "spdif"; - extcon =3D <&fusb0>, <&fusb1>; - rockchip,grf =3D <&grf>; - #address-cells =3D <1>; - #size-cells =3D <0>; - #sound-dai-cells =3D <1>; - - ports { - #address-cells =3D <1>; - #size-cells =3D <0>; - - dp_in: port { - #address-cells =3D <1>; - #size-cells =3D <0>; - dp_in_vopb: endpoint@0 { - reg =3D <0>; - remote-endpoint =3D <&vopb_out_dp>; - }; - - dp_in_vopl: endpoint@1 { - reg =3D <1>; - remote-endpoint =3D <&vopl_out_dp>; - }; - }; - }; - }; diff --git a/Documentation/devicetree/bindings/display/rockchip/rockchip,cd= n-dp.yaml b/Documentation/devicetree/bindings/display/rockchip/rockchip,cdn= -dp.yaml new file mode 100644 index 000000000000..ed68b48a6743 --- /dev/null +++ b/Documentation/devicetree/bindings/display/rockchip/rockchip,cdn-dp.ya= ml @@ -0,0 +1,148 @@ +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/rockchip/rockchip,cdn-dp.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Rockchip RK3399 specific extensions to the CDN Display Port + +maintainers: + - Andy Yan + - Heiko Stuebner + - Sandy Huang + +properties: + compatible: + items: + - const: rockchip,rk3399-cdn-dp + + reg: + description: + CDN DP core register + + assigned-clock-rates: true + assigned-clocks: true + + clocks: + minItems: 4 + + clock-names: + items: + - const: core-clk + - const: pclk + - const: spdif + - const: grf + + extcon: + description: + Phandle to the extcon device providing the cable state for the DP ph= y. + + interrupts: + maxItems: 1 + + phys: + minItems: 1 + maxItems: 2 + + ports: + $ref: /schemas/graph.yaml#/properties/ports + + properties: + port@0: + $ref: /schemas/graph.yaml#/properties/port + description: Input of the CDN DP + properties: + endpoint@0: + description: Connection to the VOPB + endpoint@1: + description: Connection to the VOPL + port@1: + $ref: /schemas/graph.yaml#/properties/port + description: Output of the CDN DP + + required: + - port@0 + - port@1 + + power-domains: + maxItems: 1 + + resets: + minItems: 4 + + reset-names: + items: + - const: spdif + - const: dptx + - const: apb + - const: core + + rockchip,grf: + $ref: /schemas/types.yaml#/definitions/phandle + description: + This SoC makes use of GRF regs. + + "#sound-dai-cells": + const: 1 + +required: + - compatible + - reg + - clocks + - clock-names + - interrupts + - phys + - ports + - resets + - reset-names + - rockchip,grf + +unevaluatedProperties: false + +examples: + - | + #include + #include + #include + cdn_dp: dp@fec00000 { + compatible =3D "rockchip,rk3399-cdn-dp"; + reg =3D <0x0 0xfec00000 0x0 0x100000>; + assigned-clocks =3D <&cru SCLK_DP_CORE>; + assigned-clock-rates =3D <100000000>; + interrupts =3D ; + clocks =3D <&cru SCLK_DP_CORE>, <&cru PCLK_DP_CTRL>, <&cru SCLK_SP= DIF_REC_DPTX>, + <&cru PCLK_VIO_GRF>; + clock-names =3D "core-clk", "pclk", "spdif", "grf"; + power-domains =3D <&power RK3399_PD_HDCP>; + phys =3D <&tcphy0_dp>, <&tcphy1_dp>; + resets =3D <&cru SRST_DPTX_SPDIF_REC>, <&cru SRST_P_UPHY0_DPTX>, + <&cru SRST_P_UPHY0_APB>, <&cru SRST_DP_CORE>; + reset-names =3D "spdif", "dptx", "apb", "core"; + rockchip,grf =3D <&grf>; + #sound-dai-cells =3D <1>; + + ports { + #address-cells =3D <1>; + #size-cells =3D <0>; + + dp_in: port@0 { + reg =3D <0>; + #address-cells =3D <1>; + #size-cells =3D <0>; + + dp_in_vopb: endpoint@0 { + reg =3D <0>; + remote-endpoint =3D <&vopb_out_dp>; + }; + + dp_in_vopl: endpoint@1 { + reg =3D <1>; + remote-endpoint =3D <&vopl_out_dp>; + }; + }; + + dp_out: port@1 { + reg =3D <1>; + }; + }; + }; -- 2.49.0