From nobody Fri Jun 12 14:00:00 2026 Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) (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 187613DB96B; Thu, 14 May 2026 12:25:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=213.167.242.64 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778761528; cv=none; b=ptSkeQovQe+IvmHlstUrU5r7mU05w2EyDdLWuNjWLXqC+steQddY0vAXCKUiKTpb00+uSFEeYm8pOJ2cOe+TFFDUHNtqIR6vS5H51pcilfBEsoqOVR0teE7r4m86Aa/l9cxXuvs9IiOOW7tmzqQNBYDsZi28QYSmJcjsic7KxoI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778761528; c=relaxed/simple; bh=5x7Ln4iaXdF3MSB6XJc9r1qugg8DjCeCJV/XznDnxs4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=SRuJhoCe/3Zv9FSU5AOkMI9tE5v6DQbhW45ag8odkIHGqDldz7p9VLyUwKNuba74MxanXgenSxnL5ibrUECwkOYlnLiRMutAjL2AcpEWFEen6rF0A3vy0B5OFhPnYNdmgIAjyIcuK/73kljO2yrR0QANdYBOSb4d4P3nWSxML1g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com; spf=pass smtp.mailfrom=ideasonboard.com; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b=Zax/BXpm; arc=none smtp.client-ip=213.167.242.64 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="Zax/BXpm" Received: from [127.0.1.1] (91-158-153-178.elisa-laajakaista.fi [91.158.153.178]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id D39386A2; Thu, 14 May 2026 14:25:13 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1778761515; bh=5x7Ln4iaXdF3MSB6XJc9r1qugg8DjCeCJV/XznDnxs4=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=Zax/BXpmaLeXEiUikrOdHMh4VY9N47K0Mz8d/oLHZ0vWjB9cmiylC9Ys1QAfsKojw ou7GrBSM8FtACmGdTQfNgcoUFbxeDjDBKbbNifo4pj4b1yfh2KxM60a4hEhPW0ZRDL MC8zOfHIri9l+9wCXhVE6jv5WEBV0lxxZ+MyY1tM= From: Tomi Valkeinen Date: Thu, 14 May 2026 15:24:53 +0300 Subject: [PATCH 1/5] clk: renesas: r8a779g0: Add DSC clock 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: <20260514-rcar-du-dsc-v1-1-d65f7a9e9841@ideasonboard.com> References: <20260514-rcar-du-dsc-v1-0-d65f7a9e9841@ideasonboard.com> In-Reply-To: <20260514-rcar-du-dsc-v1-0-d65f7a9e9841@ideasonboard.com> To: Geert Uytterhoeven , Michael Turquette , Stephen Boyd , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Magnus Damm , Marek Vasut , Laurent Pinchart , Kieran Bingham , Philipp Zabel Cc: linux-renesas-soc@vger.kernel.org, linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, Tomi Valkeinen X-Mailer: b4 0.15-dev-c25d1 X-Developer-Signature: v=1; a=openpgp-sha256; l=929; i=tomi.valkeinen+renesas@ideasonboard.com; h=from:subject:message-id; bh=Sa58pHpMpn9uJbYQtT/HcZDpP5JrbrhbJQzUT3AA1cQ=; b=owEBbQKS/ZANAwAIAfo9qoy8lh71AcsmYgBqBb8vmW+evGtl/kYSB6xA5BxW57p9X1ifdi7J8 O0BMb6HcrGJAjMEAAEIAB0WIQTEOAw+ll79gQef86f6PaqMvJYe9QUCagW/LwAKCRD6PaqMvJYe 9cmcD/oCtz0RLJ2pDpVJ6X0zgWOqTV+8SRw1GISeOS86qVcwdwN73IUFH/GEqWbQ99JXutF38DP q5qXYFQbg3SagqincEas3fMJgU9rujB+DJb67qPSDvR7t/jFhLzWZ60CfyRZe7aBvoT8Z6grXts eOSKjz+mMBndWeJt9mm5s95JVnXYGRownvrvD8AzbQpzCH3/HCkuJmOS3ZlycpbDZjqx3Zzoca0 AmnQkxGJp/ZtghJ40BhapVLCG/pRxm4AJgF52sLrg7Hah+c03V8sWwuFAMiSCzBaWU5m7gkLYxT fFzoVaAbZ1DZ9n4mlQVbhGJiv6fh5mJnGozqmxkFn/hBMoPHJgraARCrbJHc//dyb08r+awbsuc 9oOxlwv1Lp+o7czlAkpMUop6Mg20MmO0oY6A1JfEEyCkOorhhhcW74KVs7YHMEruUTWi/94ULBa rtmtjsa1Jjm9+IfBor6SuRfqkaE9CaB91gdayVweko017eoToUXpZ66cgi8ETknNnh7nEVlXMhz g+2aXNSwGPC7IQXbejN1klvhRpHerMgfdZC5fOc11sGW6tnMX8/IqN9moOdIlnW7VvYtr/i60OV mmTjs0yT404sR/kiOe9E7J+7DFetd6xFagpyBE7/9NnmzQzTSx0dcbyYjraR2FR74XFE0rQezrR Em8ixNqXuuA+smQ== X-Developer-Key: i=tomi.valkeinen+renesas@ideasonboard.com; a=openpgp; fpr=C4380C3E965EFD81079FF3A7FA3DAA8CBC961EF5 From: Marek Vasut Add the DSC module clock for Renesas R-Car V4H (R8A779G0) SoC. Signed-off-by: Marek Vasut Signed-off-by: Tomi Valkeinen --- drivers/clk/renesas/r8a779g0-cpg-mssr.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/clk/renesas/r8a779g0-cpg-mssr.c b/drivers/clk/renesas/= r8a779g0-cpg-mssr.c index 015b9773cc55..54ba76ff5ab0 100644 --- a/drivers/clk/renesas/r8a779g0-cpg-mssr.c +++ b/drivers/clk/renesas/r8a779g0-cpg-mssr.c @@ -245,6 +245,7 @@ static const struct mssr_mod_clk r8a779g0_mod_clks[] __= initconst =3D { DEF_MOD("fcpvx0", 1100, R8A779G0_CLK_S0D1_VIO), DEF_MOD("fcpvx1", 1101, R8A779G0_CLK_S0D1_VIO), DEF_MOD("tsn", 2723, R8A779G0_CLK_S0D4_HSC), + DEF_MOD("dsc", 2819, R8A779G0_CLK_VIOBUSD2), DEF_MOD("ssiu", 2926, R8A779G0_CLK_S0D6_PER), DEF_MOD("ssi", 2927, R8A779G0_CLK_S0D6_PER), }; --=20 2.43.0 From nobody Fri Jun 12 14:00:00 2026 Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) (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 5D9413DD870; Thu, 14 May 2026 12:25:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=213.167.242.64 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778761531; cv=none; b=kNtbcjWeDeSuCzpb4WMebPiHljHu2cwo7HDeC7n5ENQ2L7quhKm2g4F1xzAPvAx23U9yKl6EO0IIIyj/z6Rn2h2iaN9+PIVUjyW0y7vtTGC/XsPrtnkPgkTOyyb0R8zZcmhTIRsIP+TlicZmRCeLVyMBSp/yzKCC5BHZqupOjDA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778761531; c=relaxed/simple; bh=xpwu7gw/Hyq9MFh4sV1+vxNpjFWFFVHAZQvp2tR0HCU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=qGE4+67EOnEwpIr94oMwePhDs5c+N5HlbXuICx9wvBHd0bCvmz/1psfIsz9XvKA35nAtvj482Gis6h60ly8ZpxYqVR83qiAkPqhTvQ0R/OCyRTOauwOHrTzRDwf9AgbarymYxeiR6bKN8lgA+Fn21CJSYwP3J4rVakZQZEqPTOw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com; spf=pass smtp.mailfrom=ideasonboard.com; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b=kI/RLvCl; arc=none smtp.client-ip=213.167.242.64 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="kI/RLvCl" Received: from [127.0.1.1] (91-158-153-178.elisa-laajakaista.fi [91.158.153.178]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 5BEF4D7E; Thu, 14 May 2026 14:25:15 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1778761516; bh=xpwu7gw/Hyq9MFh4sV1+vxNpjFWFFVHAZQvp2tR0HCU=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=kI/RLvClr8pn1haNpA72wV097TuLpwvSjhFA7pP+jumMwrYAN5/5I+/F+TIRTVe71 L0HRV9Yf07pQpPUmuuy/G2yzOuXSOOssHZV3bP1SfYY+lq/32eCOqj6RttaNbHeKdf WAkyJHlfvlWwxAKfXYvPVHkGZddBwIp9VoNwcwYA= From: Tomi Valkeinen Date: Thu, 14 May 2026 15:24:54 +0300 Subject: [PATCH 2/5] dt-bindings: display: bridge: Document Renesas R-Car V4H DSC bindings 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: <20260514-rcar-du-dsc-v1-2-d65f7a9e9841@ideasonboard.com> References: <20260514-rcar-du-dsc-v1-0-d65f7a9e9841@ideasonboard.com> In-Reply-To: <20260514-rcar-du-dsc-v1-0-d65f7a9e9841@ideasonboard.com> To: Geert Uytterhoeven , Michael Turquette , Stephen Boyd , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Magnus Damm , Marek Vasut , Laurent Pinchart , Kieran Bingham , Philipp Zabel Cc: linux-renesas-soc@vger.kernel.org, linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, Tomi Valkeinen X-Mailer: b4 0.15-dev-c25d1 X-Developer-Signature: v=1; a=openpgp-sha256; l=3104; i=tomi.valkeinen+renesas@ideasonboard.com; h=from:subject:message-id; bh=VcZfIV0MZFalb62VGStBH3gpxTVoD8PjQZsgbR2cw3U=; b=owEBbQKS/ZANAwAIAfo9qoy8lh71AcsmYgBqBb8vwKxP5yD8Glr45fYvo29RAT9lXLohAxD3b Xi5tFb4J96JAjMEAAEIAB0WIQTEOAw+ll79gQef86f6PaqMvJYe9QUCagW/LwAKCRD6PaqMvJYe 9RomD/9qnOvf7iqgXSK3SYlb7W6n+O6tOKKpnuAU3g35i7ziCHTkAJpaIpog+oxC8Ybm2gNkXSt oygTapZHQS3w885jo9HEXnJlVUefhUmPFryBNVzB6LmZyyyly3n3zkCDjTYlxfw2xVjgKvmEHyu MK13G7n6GeSx5qvNoCqw3af2SrEb/K6EPYpVY62L/+wFUfZdLxDn7w0q1JOIg2fsVYyqpwfHEK6 PoqS10MoBKD8SwunN7/eWR0SXn3+TCIXOK7XXhVgrxrmZmGMVlvMBwuS82jT0NYs4ed2HsvV0NN 5eN6QC+kpatEDkPhFbRao2b7tCmbFrZo8ScGE95N93xBwpO+TLgPENj8see4HdhMzRjXhfWSUsc f6zBil3N5/9LnTpssh/jVQg/Cqhe/Z6fw9eO1v59A0CSTNKfCxBGuhZb318S0PEdO9qJsWNVcKh t8yV+L+McLcoS/rQOwBgr/gebk3LQVj38bsDKu8ODfdXgdmfu+M+wUskZMZbzH3CEUpAdxe33ki lb9Cb5DdgauUy4Mb5Xhe2Axuu2PjUcAUgsrMtP3JDilXSMAdiHAyzFW7t46diAA5btCGy+bMEnJ O4nKvIU1F8vrKf2cbfAgCeAJMBOXXAsWuVxUfLqj/WGCHK1CuiZNMpgCtHO8y3UiX5QWisaHNK7 DpSo5plSoFGnQ1w== X-Developer-Key: i=tomi.valkeinen+renesas@ideasonboard.com; a=openpgp; fpr=C4380C3E965EFD81079FF3A7FA3DAA8CBC961EF5 From: Marek Vasut The Renesas DSC Display Stream Compression is a bridge embedded in the Renesas R-Car V4H SoC. The bridge performs VESA DSC encoding of up to 8k or 400 Mpixel/s . Signed-off-by: Marek Vasut [tomi.valkeinen: fix the example] Signed-off-by: Tomi Valkeinen --- .../bindings/display/bridge/renesas,dsc.yaml | 96 ++++++++++++++++++= ++++ 1 file changed, 96 insertions(+) diff --git a/Documentation/devicetree/bindings/display/bridge/renesas,dsc.y= aml b/Documentation/devicetree/bindings/display/bridge/renesas,dsc.yaml new file mode 100644 index 000000000000..91245beb67d7 --- /dev/null +++ b/Documentation/devicetree/bindings/display/bridge/renesas,dsc.yaml @@ -0,0 +1,96 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/bridge/renesas,dsc.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Renesas R-Car DSC Display Stream Compression + +maintainers: + - Marek Vasut + +description: | + This binding describes the VESA DSC Display Stream Compression encoder + embedded in the Renesas R-Car V4H SoC. The encoder supports all DSC1.1 + encoding mechanisms, configurable bits-per-pixel, resolution up to 8k. + +properties: + compatible: + const: renesas,r8a779g0-dsc + + reg: + maxItems: 1 + + clocks: + maxItems: 1 + + interrupts: + maxItems: 1 + + power-domains: + maxItems: 1 + + resets: + maxItems: 1 + + ports: + $ref: /schemas/graph.yaml#/properties/ports + + properties: + port@0: + $ref: /schemas/graph.yaml#/properties/port + description: R-Car DU input port + + port@1: + $ref: /schemas/graph.yaml#/properties/port + description: R-Car DSI output port + + required: + - port@0 + - port@1 + +required: + - compatible + - reg + - clocks + - interrupts + - power-domains + - resets + - ports + +unevaluatedProperties: false + +examples: + - | + #include + #include + #include + + dsc@feb8d000 { + compatible =3D "renesas,r8a779g0-dsc"; + reg =3D <0 0xfeb8d000 0 0x400>; + interrupts =3D ; + clocks =3D <&cpg CPG_MOD 2819>; + power-domains =3D <&sysc R8A779G0_PD_ALWAYS_ON>; + resets =3D <&cpg 2819>; + + ports { + #address-cells =3D <1>; + #size-cells =3D <0>; + + port@0 { + reg =3D <0>; + dsc_in_dsi1: endpoint { + remote-endpoint =3D <&du_out_dsi1>; + }; + }; + + port@1 { + reg =3D <1>; + dsc_out_dsi1: endpoint { + remote-endpoint =3D <&dsi1_in>; + }; + }; + }; + }; +... --=20 2.43.0 From nobody Fri Jun 12 14:00:00 2026 Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) (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 E68313DD844; Thu, 14 May 2026 12:25:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=213.167.242.64 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778761531; cv=none; b=J/K+Vspin5+mTbj32P5IPe77Ign75uotho+hUIKRQ16rqjan88zTGQc4UNoHHmpyJgZIuvbAGlmUNOUwMEqwAx8QDxQhDx5cidAhYQsbLLTN/NjziFM+cOaV3ABJG/bStGxeUnzIewd+8QfpNXg4XSAuvLwAnHL883UManu7o7I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778761531; c=relaxed/simple; bh=epDgLDQTOQLsxSIGm1FoiCtmVkVYkjcH+hGsLBHI0Wg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=bTG6x7yn94F1Oju1rnn14m2cyopVEq+xZpPTEoq27Xak7qRtY5AMW8GTsjJ5Xo4bX02hDu4UPuVklnUrcUU94aa+wUqhcAUzPOO9A0tRqBCXViyeolMukYmXlVt4M0BiEPv9Bp6Z9eoTakbWD1M2M9D2qDutdOuwWxfj3vRKmO8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com; spf=pass smtp.mailfrom=ideasonboard.com; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b=JgwEqFWs; arc=none smtp.client-ip=213.167.242.64 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="JgwEqFWs" Received: from [127.0.1.1] (91-158-153-178.elisa-laajakaista.fi [91.158.153.178]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id D615F1283; Thu, 14 May 2026 14:25:16 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1778761518; bh=epDgLDQTOQLsxSIGm1FoiCtmVkVYkjcH+hGsLBHI0Wg=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=JgwEqFWsN+kYaHCIXkBQT1f+rPimkuh1Kve5jORnUiXhiF2OCeH1PyNJbs1smrZIc kesQMZxsSjxGNFT+oqoejYQkDVbtVc6Qz50Gv7cIvDdVG+7Y++VW2KLWQjKMgqvy5J J/+eohz+AB0ZsEYXzJp56puykWjH2LQZDiKm/p/g= From: Tomi Valkeinen Date: Thu, 14 May 2026 15:24:55 +0300 Subject: [PATCH 3/5] drm/rcar-du: dsc: Add rudimentary Renesas R-Car V4H DSC driver 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: <20260514-rcar-du-dsc-v1-3-d65f7a9e9841@ideasonboard.com> References: <20260514-rcar-du-dsc-v1-0-d65f7a9e9841@ideasonboard.com> In-Reply-To: <20260514-rcar-du-dsc-v1-0-d65f7a9e9841@ideasonboard.com> To: Geert Uytterhoeven , Michael Turquette , Stephen Boyd , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Magnus Damm , Marek Vasut , Laurent Pinchart , Kieran Bingham , Philipp Zabel Cc: linux-renesas-soc@vger.kernel.org, linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, Tomi Valkeinen X-Mailer: b4 0.15-dev-c25d1 X-Developer-Signature: v=1; a=openpgp-sha256; l=6866; i=tomi.valkeinen+renesas@ideasonboard.com; h=from:subject:message-id; bh=lZXV9zDNtBcZP1iYgupaF2p7YJZFHlVyrRbo4zRvwrY=; b=owEBbQKS/ZANAwAIAfo9qoy8lh71AcsmYgBqBb8wH9XunC9dDlap3xmigJt9WVju6dglBivKF Im3c5oMIveJAjMEAAEIAB0WIQTEOAw+ll79gQef86f6PaqMvJYe9QUCagW/MAAKCRD6PaqMvJYe 9QLiEACZ6pWsfudpC4HUPwhgiltKUpWrf+rhxa/zrGuZOY/rsD+waJOZ+JUNR9jEIAV/nw9TQhw VKi7BsgTpUFYSgd0oL3Y//omwyN2WC97C+DfaIyoHHaJFGhwBo4QNioYrU2RMnpfdZghdm+UJ6s TvJiEY2BwhKSHHF/orCmMbHb/j8ZtkB4KuFp2KoGbUFKf8M9ueotoo5JRo126dL5Fkcx4RgahHu d9undzjzc0bNmnr487Lc9CvbfQTVT3icGTm82GHOuqvIfkiWlg/jbm5qpqLdKdhV8JQnKhySLnF wh02b7aEvAELXqBuKJH2ryCcSW2S9L3mQugrgLaICEsTMMtlYKgm+QCynH8W90MFRAXDYlJs4+N 4w+sBh/pXS4sbBUZ5ZVEVnyFJpvl3kAO5cLhcOGluVsrcoAqw3tl6ByKRgt2ZBckyPhmUhtKaJD Wh8TJPoMI0cxskG5CC8tJTPbgzwl1hyICzr1qeyv2bDVmnm0zvH8z1bQA+eSynP2WYrNqIVWkV/ 3isuBYetBS29wThYA+4rDAyoD72R6+4II0nvswmUVcbV/ObqkvW334MzSKfgE6wFd55d5IDTkXL BzETil0ed2OkqF0mRb5Vxs1XkMKeDDioDy6TJf/N6u2RVTTtuElVJ2tFczfoPYK+6bEALT7hHMV WGr6HbGeIJGDWxQ== X-Developer-Key: i=tomi.valkeinen+renesas@ideasonboard.com; a=openpgp; fpr=C4380C3E965EFD81079FF3A7FA3DAA8CBC961EF5 From: Marek Vasut The Renesas DSC Display Stream Compression is a bridge embedded in the Renesas R-Car V4H SoC. The bridge performs VESA DSC encoding of up to 8k or 400 Mpixel/s . Add rudimentary driver, which currently acts as a pass-through bridge and allows DSI1 to be operational on R-Car V4H. Signed-off-by: Marek Vasut [tomi.valkeinen: use bridge->next_bridge, minor changes] Signed-off-by: Tomi Valkeinen --- drivers/gpu/drm/renesas/rcar-du/Kconfig | 13 +++ drivers/gpu/drm/renesas/rcar-du/Makefile | 1 + drivers/gpu/drm/renesas/rcar-du/rcar_dsc.c | 163 +++++++++++++++++++++++++= ++++ 3 files changed, 177 insertions(+) diff --git a/drivers/gpu/drm/renesas/rcar-du/Kconfig b/drivers/gpu/drm/rene= sas/rcar-du/Kconfig index 840305fdeb49..a51f996d3537 100644 --- a/drivers/gpu/drm/renesas/rcar-du/Kconfig +++ b/drivers/gpu/drm/renesas/rcar-du/Kconfig @@ -33,6 +33,19 @@ config DRM_RCAR_DW_HDMI help Enable support for R-Car Gen3 or RZ/G2 internal HDMI encoder. =20 +config DRM_RCAR_USE_DSC + bool "R-Car DU DSC Encoder Support" + depends on DRM_BRIDGE && OF + depends on DRM_RCAR_DU || COMPILE_TEST + default DRM_RCAR_DU + help + Enable support for the R-Car Display Unit embedded DSC encoder. + +config DRM_RCAR_DSC + def_tristate DRM_RCAR_DU + depends on DRM_RCAR_USE_DSC + select RESET_CONTROLLER + config DRM_RCAR_USE_LVDS bool "R-Car DU LVDS Encoder Support" depends on DRM_BRIDGE && OF diff --git a/drivers/gpu/drm/renesas/rcar-du/Makefile b/drivers/gpu/drm/ren= esas/rcar-du/Makefile index 6f132325c8b7..cc27b2265d94 100644 --- a/drivers/gpu/drm/renesas/rcar-du/Makefile +++ b/drivers/gpu/drm/renesas/rcar-du/Makefile @@ -12,5 +12,6 @@ rcar-du-drm-$(CONFIG_DRM_RCAR_WRITEBACK) +=3D rcar_du_wri= teback.o obj-$(CONFIG_DRM_RCAR_CMM) +=3D rcar_cmm.o obj-$(CONFIG_DRM_RCAR_DU) +=3D rcar-du-drm.o obj-$(CONFIG_DRM_RCAR_DW_HDMI) +=3D rcar_dw_hdmi.o +obj-$(CONFIG_DRM_RCAR_DSC) +=3D rcar_dsc.o obj-$(CONFIG_DRM_RCAR_LVDS) +=3D rcar_lvds.o obj-$(CONFIG_DRM_RCAR_MIPI_DSI) +=3D rcar_mipi_dsi.o diff --git a/drivers/gpu/drm/renesas/rcar-du/rcar_dsc.c b/drivers/gpu/drm/r= enesas/rcar-du/rcar_dsc.c new file mode 100644 index 000000000000..2ab5a4bb099c --- /dev/null +++ b/drivers/gpu/drm/renesas/rcar-du/rcar_dsc.c @@ -0,0 +1,163 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * R-Car DSC Encoder + * + * Copyright (C) 2025 Marek Vasut + * Copyright (C) 2025 Renesas Electronics Corporation + */ + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +struct rcar_dsc { + struct drm_bridge bridge; + + struct device *dev; + void __iomem *mmio; + struct clk *clk; + struct reset_control *rst; +}; + +static inline struct rcar_dsc *bridge_to_rcar_dsc(struct drm_bridge *bridg= e) +{ + return container_of(bridge, struct rcar_dsc, bridge); +} + +/* -----------------------------------------------------------------------= ------ + * Bridge + */ + +static int rcar_dsc_attach(struct drm_bridge *bridge, + struct drm_encoder *encoder, + enum drm_bridge_attach_flags flags) +{ + struct rcar_dsc *dsc =3D bridge_to_rcar_dsc(bridge); + + if (!(flags & DRM_BRIDGE_ATTACH_NO_CONNECTOR)) + return -EINVAL; + + return drm_bridge_attach(encoder, dsc->bridge.next_bridge, bridge, + DRM_BRIDGE_ATTACH_NO_CONNECTOR); +} + +static void rcar_dsc_atomic_enable(struct drm_bridge *bridge, + struct drm_atomic_state *state) +{ + struct rcar_dsc *dsc =3D bridge_to_rcar_dsc(bridge); + + WARN_ON(clk_prepare_enable(dsc->clk)); + WARN_ON(reset_control_deassert(dsc->rst)); +} + +static void rcar_dsc_atomic_disable(struct drm_bridge *bridge, + struct drm_atomic_state *state) +{ + struct rcar_dsc *dsc =3D bridge_to_rcar_dsc(bridge); + + reset_control_assert(dsc->rst); + clk_disable_unprepare(dsc->clk); +} + +static enum drm_mode_status +rcar_dsc_bridge_mode_valid(struct drm_bridge *bridge, + const struct drm_display_info *info, + const struct drm_display_mode *mode) +{ + if (mode->hdisplay < 320 || mode->hdisplay > 8190) + return MODE_BAD_HVALUE; + + if (mode->vdisplay < 160 || mode->vdisplay > 8190) + return MODE_BAD_VVALUE; + + if (mode->clock > 400000) /* Really 400 Mpixel/s */ + return MODE_CLOCK_HIGH; + + return MODE_OK; +} + +static const struct drm_bridge_funcs rcar_dsc_bridge_ops =3D { + .attach =3D rcar_dsc_attach, + .atomic_duplicate_state =3D drm_atomic_helper_bridge_duplicate_state, + .atomic_destroy_state =3D drm_atomic_helper_bridge_destroy_state, + .atomic_reset =3D drm_atomic_helper_bridge_reset, + .atomic_enable =3D rcar_dsc_atomic_enable, + .atomic_disable =3D rcar_dsc_atomic_disable, + .mode_valid =3D rcar_dsc_bridge_mode_valid, +}; + +/* -----------------------------------------------------------------------= ------ + * Probe & Remove + */ + +static int rcar_dsc_probe(struct platform_device *pdev) +{ + struct device *dev =3D &pdev->dev; + struct device_node *remote; + struct rcar_dsc *dsc; + + dsc =3D devm_drm_bridge_alloc(dev, struct rcar_dsc, bridge, + &rcar_dsc_bridge_ops); + if (IS_ERR(dsc)) + return PTR_ERR(dsc); + + platform_set_drvdata(pdev, dsc); + + dsc->dev =3D &pdev->dev; + + /* Acquire resources. */ + dsc->mmio =3D devm_platform_ioremap_resource(pdev, 0); + if (IS_ERR(dsc->mmio)) + return PTR_ERR(dsc->mmio); + + dsc->clk =3D devm_clk_get(dev, NULL); + if (IS_ERR(dsc->clk)) + return dev_err_probe(dev, PTR_ERR(dsc->clk), + "Failed to get CPG clock\n"); + + dsc->rst =3D devm_reset_control_get(dev, NULL); + if (IS_ERR(dsc->rst)) + return dev_err_probe(dev, PTR_ERR(dsc->rst), + "Failed to get CPG reset\n"); + + remote =3D of_graph_get_remote_node(dev->of_node, 1, 0); + if (!remote) + return -EINVAL; + + dsc->bridge.next_bridge =3D of_drm_find_and_get_bridge(remote); + of_node_put(remote); + if (!dsc->bridge.next_bridge) + return -EPROBE_DEFER; + + dsc->bridge.of_node =3D dev->of_node; + + return devm_drm_bridge_add(dev, &dsc->bridge); +} + +static const struct of_device_id rcar_dsc_of_table[] =3D { + { .compatible =3D "renesas,r8a779g0-dsc" }, + {} +}; + +MODULE_DEVICE_TABLE(of, rcar_dsc_of_table); + +static struct platform_driver rcar_dsc_platform_driver =3D { + .probe =3D rcar_dsc_probe, + .driver =3D { + .name =3D "rcar-dsc", + .of_match_table =3D rcar_dsc_of_table, + }, +}; + +module_platform_driver(rcar_dsc_platform_driver); + +MODULE_DESCRIPTION("Renesas R-Car DSC Encoder Driver"); +MODULE_LICENSE("GPL"); --=20 2.43.0 From nobody Fri Jun 12 14:00:00 2026 Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) (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 B2E803DD878; Thu, 14 May 2026 12:25:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=213.167.242.64 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778761536; cv=none; b=WIj1tJt9ogi1XobE5/2M8VFVjh5cxqA44cTNSxD5fxDJrpE6l0qeWmnJOneEuF1S716k2FTNXVmG40J7BuwRhZ3rLdheeSXQP9g33rKpGjaoPROL5bB+pATmvlVijOXDII9mqymlgQWOissakNWm/CTZol8iSOTE9XYrhocZgzM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778761536; c=relaxed/simple; bh=gBQFB78X4KGzpd0DZyLsXnhD9qIE3f4obIum+k+GS5o=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Oo0Hp9LuN3qY8WBh4zotjv/g80F1IBhX8mmDjun7WlLAAHTral3N9aMgmXV8Dykzdw2w2VdBN2e4j7QUo/8LR/+Csa4wX6mZcrka4CR9w57811OHPndDCd8tbenOuupPt++qwztcl4kuYJuBuKz5WFHJA0ZcK4suWbAwUQd2mpY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com; spf=pass smtp.mailfrom=ideasonboard.com; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b=lFtrB+Uo; arc=none smtp.client-ip=213.167.242.64 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="lFtrB+Uo" Received: from [127.0.1.1] (91-158-153-178.elisa-laajakaista.fi [91.158.153.178]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 5DBBA151C; Thu, 14 May 2026 14:25:18 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1778761519; bh=gBQFB78X4KGzpd0DZyLsXnhD9qIE3f4obIum+k+GS5o=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=lFtrB+UoqFuxTIzOBc7w8uMp9D6M0oCDm46BtRLfOT48Ku2grZvAOLFohMiJ91LK8 CTQljzgnHec22wmwqehTBIRO5dL7U3v+5a3DA+DbXEcL0PJvWG1FjN5pnZYauJxnIY eswlw8GMkf4lamtQWDBF6Rfql9g8qHCOO3WUGOGY= From: Tomi Valkeinen Date: Thu, 14 May 2026 15:24:56 +0300 Subject: [PATCH 4/5] drm/rcar-du: dsi: Support DSC in the pipeline 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: <20260514-rcar-du-dsc-v1-4-d65f7a9e9841@ideasonboard.com> References: <20260514-rcar-du-dsc-v1-0-d65f7a9e9841@ideasonboard.com> In-Reply-To: <20260514-rcar-du-dsc-v1-0-d65f7a9e9841@ideasonboard.com> To: Geert Uytterhoeven , Michael Turquette , Stephen Boyd , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Magnus Damm , Marek Vasut , Laurent Pinchart , Kieran Bingham , Philipp Zabel Cc: linux-renesas-soc@vger.kernel.org, linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, Tomi Valkeinen X-Mailer: b4 0.15-dev-c25d1 X-Developer-Signature: v=1; a=openpgp-sha256; l=2997; i=tomi.valkeinen+renesas@ideasonboard.com; h=from:subject:message-id; bh=gBQFB78X4KGzpd0DZyLsXnhD9qIE3f4obIum+k+GS5o=; b=owEBbQKS/ZANAwAIAfo9qoy8lh71AcsmYgBqBb8w3bJxm5PYo0lOz2kVrpXAE4j/STeTDvAvI 7fKVbe38WyJAjMEAAEIAB0WIQTEOAw+ll79gQef86f6PaqMvJYe9QUCagW/MAAKCRD6PaqMvJYe 9RU8EACauJKA2vSlMPd2p1f1rG/9tWTWFhNBbkgG0MtA/vkOcVLEjttOv2tVndqeccLdrep5shy tA40qu8QMyghGINJYDgUN2KGLNDkTJi3vpoFR5zxFPY1TVEx1llIXoGQJjmQvSHe1afHqbH9QgL qRNvkomdmM81TzQeiisz4EM5VopbOO+NyS3IPvh9miYqpvqa/rzlwkACC3GKvuHALz2OgH839V5 AXV+VyY598Dzm9CDI68sdwOHBeffOJCHVybtElUFSqs3ekviFQMofAYHnkij6X15Je0j6hJ0liO wvKk1Quhue5gzQtqZQAvR5MK4np8ls+8egF0lHmBsGYOc3AO/2eB8rIfOV9xy3Aqzc9C2RMwMFO OD+kSzUE5qHrLnN9n2VHmTZicMzW/w0KjVFJA7/LnQR2CRZU4cwDFs08wBSObYOmbVQBV5VozoW dxxTeN9hFxuW8m9wg7OG04CGpa0z+Nwj1bIBygW3x23T7OvlfZVUD1x9VLGue6L/EIAdaciCA7M DyskWtYMnGKPdXphpp9/GrK9jQ/x4kVD/MVEXLxceqOXjQJFyw6ic6zxlB6Nh2tnvFzCBnGRRF2 NkWleT3GqDr7FuPrFLYrng6I/BVeGRcB9r1pmZK/Bw1QE7U3jkKXOyUXEEHAx0XTmF7GCAca0GN aPW8jlWaj0GF0Qg== X-Developer-Key: i=tomi.valkeinen+renesas@ideasonboard.com; a=openpgp; fpr=C4380C3E965EFD81079FF3A7FA3DAA8CBC961EF5 Enabling DSI clocks on rcar-du needs some tricks as the DU dot clock is provided by the DSI. Thus, we call rcar_mipi_dsi_pclk_enable() from the crtc, when enabling the crtc. With DSC (added in upcoming patch) in the pipeline, between the DU and the DSI, the above call path is broken as the crtc tries to call rcar_mipi_dsi_pclk_enable() on the DSC. Adjust the rcar_mipi_dsi_pclk_enable() so that it detects the DSC, and in that case gets the next bridge from the DSC, which is the DSI. Signed-off-by: Tomi Valkeinen --- drivers/gpu/drm/renesas/rcar-du/rcar_mipi_dsi.c | 36 +++++++++++++++++++++= ++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/renesas/rcar-du/rcar_mipi_dsi.c b/drivers/gpu/= drm/renesas/rcar-du/rcar_mipi_dsi.c index 4ef2e3c129ed..085e229bcb0b 100644 --- a/drivers/gpu/drm/renesas/rcar-du/rcar_mipi_dsi.c +++ b/drivers/gpu/drm/renesas/rcar-du/rcar_mipi_dsi.c @@ -88,6 +88,8 @@ struct dsi_setup_info { const struct dsi_clk_config *clkset; }; =20 +static const struct drm_bridge_funcs rcar_mipi_dsi_bridge_ops; + static inline struct rcar_mipi_dsi * bridge_to_rcar_mipi_dsi(struct drm_bridge *bridge) { @@ -844,15 +846,39 @@ static void rcar_mipi_dsi_atomic_disable(struct drm_b= ridge *bridge, rcar_mipi_dsi_stop_video(dsi); } =20 +/* + * We need to skip the DSC bridge when we have DSC in between the DU and + * the DSI. We detect the DSI bridge via bridge->funcs, and assume the + * next_bridge is the DSI bridge. If this is not the case, the DT data + * is wrong (so it shouldn't really happen). + */ +static struct drm_bridge * +rcar_mipi_dsi_resolve_bridge(struct drm_bridge *bridge) +{ + if (bridge->funcs !=3D &rcar_mipi_dsi_bridge_ops) + bridge =3D bridge->next_bridge; + + if (!bridge || bridge->funcs !=3D &rcar_mipi_dsi_bridge_ops) + return NULL; + + return bridge; +} + void rcar_mipi_dsi_pclk_enable(struct drm_bridge *bridge, struct drm_atomic_state *state) { - struct rcar_mipi_dsi *dsi =3D bridge_to_rcar_mipi_dsi(bridge); const struct drm_display_mode *mode; struct drm_connector *connector; + struct rcar_mipi_dsi *dsi; struct drm_crtc *crtc; int ret; =20 + bridge =3D rcar_mipi_dsi_resolve_bridge(bridge); + if (WARN_ON(!bridge)) + return; + + dsi =3D bridge_to_rcar_mipi_dsi(bridge); + connector =3D drm_atomic_get_new_connector_for_encoder(state, bridge->encoder); crtc =3D drm_atomic_get_new_connector_state(state, connector)->crtc; @@ -885,7 +911,13 @@ EXPORT_SYMBOL_GPL(rcar_mipi_dsi_pclk_enable); =20 void rcar_mipi_dsi_pclk_disable(struct drm_bridge *bridge) { - struct rcar_mipi_dsi *dsi =3D bridge_to_rcar_mipi_dsi(bridge); + struct rcar_mipi_dsi *dsi; + + bridge =3D rcar_mipi_dsi_resolve_bridge(bridge); + if (WARN_ON(!bridge)) + return; + + dsi =3D bridge_to_rcar_mipi_dsi(bridge); =20 rcar_mipi_dsi_shutdown(dsi); rcar_mipi_dsi_clk_disable(dsi); --=20 2.43.0 From nobody Fri Jun 12 14:00:00 2026 Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) (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 4C331395AEC; Thu, 14 May 2026 12:25:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=213.167.242.64 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778761536; cv=none; b=JVSzH7zqO5B/1MhkyJmhSHxzZygShV70TxtfmAbnGddzxupPPQONgCVtzGGvroeR8cXuKC7yvs3C+Ia4+qqjOqpxY7bVusof9W/Us3vkid5+GJBFs7l72MjoW5/8n8fYpzhnIDJnglDQksGZTj+04WzDv9J7hDga5cvYwk2vMbo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778761536; c=relaxed/simple; bh=CIep6fJfVAhn74HMjDE/V/v4KeGkg+5aWPNFXSJzT0U=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=gSdfXpD9kF8grAlUtTgPLZd+HfYkhDFAx8drFaqRRIJc97B6nRibL6hfAbNf54HvaZdwRX+gg/TDe5OjOCj8QdByJtbc0n/qQFgVL/kDMBOQ+tQfFNZzxppI0mKuLgGJ4KDWb0/wJwQ3j8HPN94dZ1IDQUZXhuo0GR9ebNHchho= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com; spf=pass smtp.mailfrom=ideasonboard.com; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b=YQYjIDhh; arc=none smtp.client-ip=213.167.242.64 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="YQYjIDhh" Received: from [127.0.1.1] (91-158-153-178.elisa-laajakaista.fi [91.158.153.178]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id D432D18E9; Thu, 14 May 2026 14:25:19 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1778761521; bh=CIep6fJfVAhn74HMjDE/V/v4KeGkg+5aWPNFXSJzT0U=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=YQYjIDhhkCHX8nArOf2h6dbnWacNVL70EWQkXCc2DJHlBaDUz85dJsBY97GCRVyFV mbr2VgnaU0nQriM19y1Tivxj8pdIf9d4pluL/qocq23/spJ4H1oGfKJmnbwZtmtiis gxUcFGHyeMBlAtjLkdJjTuYm8tjXqIeYmPthQbwo= From: Tomi Valkeinen Date: Thu, 14 May 2026 15:24:57 +0300 Subject: [PATCH 5/5] arm64: dts: renesas: Add Renesas R-Car V4H DSC 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: <20260514-rcar-du-dsc-v1-5-d65f7a9e9841@ideasonboard.com> References: <20260514-rcar-du-dsc-v1-0-d65f7a9e9841@ideasonboard.com> In-Reply-To: <20260514-rcar-du-dsc-v1-0-d65f7a9e9841@ideasonboard.com> To: Geert Uytterhoeven , Michael Turquette , Stephen Boyd , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Magnus Damm , Marek Vasut , Laurent Pinchart , Kieran Bingham , Philipp Zabel Cc: linux-renesas-soc@vger.kernel.org, linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, Tomi Valkeinen X-Mailer: b4 0.15-dev-c25d1 X-Developer-Signature: v=1; a=openpgp-sha256; l=2322; i=tomi.valkeinen+renesas@ideasonboard.com; h=from:subject:message-id; bh=zG6hvH8cY6/FnPokxtHg066A+36wEiN+1/jJynaivt4=; b=owEBbQKS/ZANAwAIAfo9qoy8lh71AcsmYgBqBb8wHjTOJGQXLyHTo6PmhuCSYT02JRE/rO4wV YUftPFPBdmJAjMEAAEIAB0WIQTEOAw+ll79gQef86f6PaqMvJYe9QUCagW/MAAKCRD6PaqMvJYe 9fbkD/9R5Ih+b15fuThFLtbiiOt5NFTKqAxVt3j+l9D+ymrjBkXmlat1+kWdrwl2BizAvoX+NJj FOgZp68ziea6NeZsYr297co/P6SqSbK99C8nmi1YYZEE1BF+YOF23TZwFBusEs80iox/T40xEOK grGNDkKfrkKECs9rftl4ZCEO1vCV3NcM57dl4lKq61WsDcjVMxaBn5a9bC1qWbhhP4C2I0TROB2 Abg1bgyLLPb1J9+OsuMH4J0+DKLLgMzikayLHEH6cHAlvtqzaX5H9E9JwrokrfdGnZbljUFVug1 mTY0DS3fwCTgaq5Ce8/lLb+cbBqYSS8i23eJSyoMPh2zeoGkRaWruryhEP0Gc0/yQnZD4AASoZ0 ei/hUnO2ywY3ywWerQu5hPLPJB8sfsJ++kRHryhjPzYyhWVPS5mCRG5u2SuIZE9Iz2E/vKHsV80 D8+agw6/gRq4LTBr+Q/9l8zjEoOsl8RoiwZrFeGyJhiKqpyul9GUWbSlW6UeMSFQGIV+pF+58Ji OfCjMMmN5kYDlbVcCbyiEcNm0InHIGw1ZnJY5x5DsFNnBaSWPSkRay/b6UEG7bGzped+D+EHV9h ghuycW6O7aflAgzP6GMn5nAmK3wMOQuHXdYIbETGdgIc+FyOwnoldCjBiQCESWfhqDK8bjxqAwF 65A5IMq/z2e367g== X-Developer-Key: i=tomi.valkeinen+renesas@ideasonboard.com; a=openpgp; fpr=C4380C3E965EFD81079FF3A7FA3DAA8CBC961EF5 From: Marek Vasut The Renesas DSC Display Stream Compression is a bridge embedded in the Renesas R-Car V4H SoC. The bridge is placed between DU and DSI1 units. Describe the bridge in DT and enable it on Retronix Sparrow Hawk board to keep DSI1 operational on this board. Signed-off-by: Marek Vasut Signed-off-by: Tomi Valkeinen --- arch/arm64/boot/dts/renesas/r8a779g0.dtsi | 31 ++++++++++++++++++= +++- .../boot/dts/renesas/r8a779g3-sparrow-hawk.dts | 5 ++++ 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/renesas/r8a779g0.dtsi b/arch/arm64/boot/dt= s/renesas/r8a779g0.dtsi index 82a7278836e5..52a6176f9fd0 100644 --- a/arch/arm64/boot/dts/renesas/r8a779g0.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a779g0.dtsi @@ -2298,6 +2298,35 @@ du_out_dsi0: endpoint { port@1 { reg =3D <1>; du_out_dsi1: endpoint { + remote-endpoint =3D <&dsc_in_dsi1>; + }; + }; + }; + }; + + dsc: dsc@feb8d000 { + compatible =3D "renesas,r8a779g0-dsc"; + reg =3D <0 0xfeb8d000 0 0x400>; + interrupts =3D ; + clocks =3D <&cpg CPG_MOD 2819>; + power-domains =3D <&sysc R8A779G0_PD_ALWAYS_ON>; + resets =3D <&cpg 2819>; + status =3D "disabled"; + + ports { + #address-cells =3D <1>; + #size-cells =3D <0>; + + port@0 { + reg =3D <0>; + dsc_in_dsi1: endpoint { + remote-endpoint =3D <&du_out_dsi1>; + }; + }; + + port@1 { + reg =3D <1>; + dsc_out_dsi1: endpoint { remote-endpoint =3D <&dsi1_in>; }; }; @@ -2534,7 +2563,7 @@ ports { port@0 { reg =3D <0>; dsi1_in: endpoint { - remote-endpoint =3D <&du_out_dsi1>; + remote-endpoint =3D <&dsc_out_dsi1>; }; }; =20 diff --git a/arch/arm64/boot/dts/renesas/r8a779g3-sparrow-hawk.dts b/arch/a= rm64/boot/dts/renesas/r8a779g3-sparrow-hawk.dts index 812b133cf29e..f418998c6b05 100644 --- a/arch/arm64/boot/dts/renesas/r8a779g3-sparrow-hawk.dts +++ b/arch/arm64/boot/dts/renesas/r8a779g3-sparrow-hawk.dts @@ -288,6 +288,11 @@ channel4 { }; }; =20 +/* Page 27 / DSI to Display */ +&dsc { + status =3D "okay"; +}; + /* Page 27 / DSI to Display */ &dsi1 { status =3D "okay"; --=20 2.43.0