From nobody Fri Sep 25 23:54:11 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 072313AFAEF; Mon, 7 Sep 2026 09:30:23 +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=1788773426; cv=none; b=sjIXOzxZvMdu/hAmKg4f0kKwz4Ez9+YYRO7NZqiFSnzB3WMQ1GUS624EeRHKrCfoTaWIxUOXcQpNBGYd2edkRGY58VPgblcEKV1RenJmr9NTPJlkR0DqpYfnmaqqBpRM+y/oKMuoWH4u3ceSAQ5iymH7/EJEewiBBAKGFwVMkdE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788773426; c=relaxed/simple; bh=Yr1AiuMHmmJPJiHFWFVOs/8XEtrzWZT4k4WVIpQ24w8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=s2t5nJsozaxbvhEmOafuxIK7I0SIWsVy4JbYwD6VCrAplruOtS9R5H3vYUQK242IdBofyR2akUMQDo8UC8JE4Px3DYVc0LOeaBIYIZ35XpvROJ8ogrTWv0gDvbA7cKOq4L48xkmcmZr71pz12H6L5CIfNJB2ARL80bdEF7Br3lc= 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=tq/xG2HO; 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="tq/xG2HO" 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 F2C9AC45; Mon, 7 Sep 2026 11:28:43 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1788773325; bh=Yr1AiuMHmmJPJiHFWFVOs/8XEtrzWZT4k4WVIpQ24w8=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=tq/xG2HOXn2YhcIMAAWJo2sdDxM5ygzxzBu+TSdXjCDDHzWj5uEW/ywvL88IA7Gt4 uZX2nLxUeqYJuXIephQEtoHmLpvWWrEe50CIfAzFe8O9BDY3XcRKwMCECprkQKSfBm jkP8VgaFkYc4qRW8KS85TAkpz1bPr4CFtFmmJBTY= From: Tomi Valkeinen Date: Mon, 07 Sep 2026 12:29:40 +0300 Subject: [PATCH v6 1/6] 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: <20260907-rcar-du-dsc-v6-1-f8ef711a7494@ideasonboard.com> References: <20260907-rcar-du-dsc-v6-0-f8ef711a7494@ideasonboard.com> In-Reply-To: <20260907-rcar-du-dsc-v6-0-f8ef711a7494@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 , Conor Dooley X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=3325; i=tomi.valkeinen+renesas@ideasonboard.com; h=from:subject:message-id; bh=/lmCdoPQ0JpVpdqYUEzSqPQ94ZquEeApfn16xdLovjk=; b=owEBbQKS/ZANAwAIAfo9qoy8lh71AcsmYgBqnoQmx1MLHtnxj1nzm/hIUy3cMmZxcJL1pUQPk eG4maRpSOaJAjMEAAEIAB0WIQTEOAw+ll79gQef86f6PaqMvJYe9QUCap6EJgAKCRD6PaqMvJYe 9bjPD/9iS3IjIfw7csr523bVxzfUZMDC2HNijIMfNC6nz4YBVjWyym9zyjmaPRquJOTC8hRRmEi BPQcCIGV4JZt+RX7qBV75aVcGSvCiNnr9SPdcx6M2JetyUGCl0oygP5xmvZ7zVIdaOgPHUz+n/x Fp9MtXfeVbyF1zWbjQkhuS9NEGeo1ioxjgbBvFT/hBhiVZ5yRvjTSonuDFtIfjhQCQsV03H/cfP luG8a7jSD1DkF8aAdTTxVUAN3MWw0MiVF7Yee/60eQSMrtueH8yjPViAFTwzTXTNpZABb6zU2kl cPTtncw77NLEipAsYZziRZ5cBvNrQgECLh67JYi01BAZDMaJ1HSgNDDb+cKcNf9rQiPnr8zuu+k Md7BaIW4lgCbWWilkfLAgERTzwfNThE2D3FWgVw06+ekOzWymlxYLI9xv/yU0i2f2vz13R0Qr3v 2hzm7qUuFYJP7uV+ffJX5Ci/LzufqS6HjaSF0//JCeTl/jqGVW7y11iPU7Plm/tDyeZriyLWMuo kwa02Hmbwp/ZP7zJDdzyCjL5aEvwyug6b+ZbIv8lmLcLAuTLXDiA04/wyL0bGRz88TmmeRD8wQx Gj+rIwWki+lhb3RGTwCfWMm0RcftSRFUOexY46xMhFZQMymg29E1e9dNJ/3UxAjqu+/lNfMAISC 23Wo3OpL+cBql3A== 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] Reviewed-by: Laurent Pinchart Acked-by: Conor Dooley Reviewed-by: Geert Uytterhoeven Signed-off-by: Tomi Valkeinen --- .../display/bridge/renesas,r8a779g0-dsc.yaml | 96 ++++++++++++++++++= ++++ 1 file changed, 96 insertions(+) diff --git a/Documentation/devicetree/bindings/display/bridge/renesas,r8a77= 9g0-dsc.yaml b/Documentation/devicetree/bindings/display/bridge/renesas,r8a= 779g0-dsc.yaml new file mode 100644 index 000000000000..6ce2444409a2 --- /dev/null +++ b/Documentation/devicetree/bindings/display/bridge/renesas,r8a779g0-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,r8a779g0-dsc.yam= l# +$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 + + bridge@feb8d000 { + compatible =3D "renesas,r8a779g0-dsc"; + reg =3D <0xfeb8d000 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 Sep 25 23:54:11 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 CFC6E449B21; Mon, 7 Sep 2026 09:30:25 +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=1788773427; cv=none; b=SmDqSxrdg61FdZY6TPSQZB2BkdkDwHcmX2xuIrKaGbfTsKwsbOYzmRWv67++7n5BsD9LtijxqBADUHplqdQOOwYzp/5o6oW7YZ2o3tg8ID4oGzh442x1/aw0dyFix2SgRlmFzm2tWVq4BMCuKN7LViBJSP+2yFte65WdHueAG/4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788773427; c=relaxed/simple; bh=dNMdVTeMnVFobPtujimvIvf0UaVgbftd7IP+qP4UKe0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=usIY5lrzeV8s1kWvo7gIYf/EqmXcyn8khHlMj991T5glaxr83B/hX6ZOjlc8oA65ZLiX9En6y+HaaGIwAy2E7zQNkWMMq1+hszYMOu5amuIFN/SA96U3r7d385oCbNDRhxC5sLLruiWz/dGidw7o2I2rcbja8np3AX08s9e18Zc= 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=jIsTILzk; 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="jIsTILzk" 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 8AC16C64; Mon, 7 Sep 2026 11:28:45 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1788773326; bh=dNMdVTeMnVFobPtujimvIvf0UaVgbftd7IP+qP4UKe0=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=jIsTILzkrzy2cgmDU7Jx3oYwe9LOZ1Y0ZPuNElkQqs3ebNwRNiDRxGReb5/dTYQCf Y7RhZdMtRXfaY1ew714mc1adw9Xx5BIvaIf2HP6tBuOuq7plj1dR7hPa34WaMRGpQN B2kUkyHdYr9FrhEW34AeJwgIn7LkSi6FISI6m5Bw= From: Tomi Valkeinen Date: Mon, 07 Sep 2026 12:29:41 +0300 Subject: [PATCH v6 2/6] 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: <20260907-rcar-du-dsc-v6-2-f8ef711a7494@ideasonboard.com> References: <20260907-rcar-du-dsc-v6-0-f8ef711a7494@ideasonboard.com> In-Reply-To: <20260907-rcar-du-dsc-v6-0-f8ef711a7494@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.16.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=6456; i=tomi.valkeinen+renesas@ideasonboard.com; h=from:subject:message-id; bh=g2/8Jh0ABpCUs5YdMLctkWPvIDgmwvU/t7MGNkq2yNo=; b=owEBbQKS/ZANAwAIAfo9qoy8lh71AcsmYgBqnoQm40cDNmCOTgYA0ycH15uLPf35tPYllbVID 1fFDAiWjH6JAjMEAAEIAB0WIQTEOAw+ll79gQef86f6PaqMvJYe9QUCap6EJgAKCRD6PaqMvJYe 9dCXD/9eqlp7oKGywlJdarcYb3r6MYgdWd/WlXReIBorZV9XZtI4GHdeMTWV7emtIk8DLfNc+qX 3sHuh2SbZj8ZmOv1kYf/9e/sVff7pOcrZrseHbDilbKcly7Oqym6LHkG1pK7avJjJdcWlAJTF68 i6fExiOdf0K62imrEaH2o3Se1dW+T8++n+0TYraEyAtw6X0XmSzqoPO7a7x699uspb3mB0nIkoY anG4GLfiUGNoma1CWsns8kjYDAkeZiBE0hjzp2a6emQ0UW+7WAl3OXCTgL5m/WYpjn+6FWbddCH kJ2IXrFaIJi3J1MQdzJQjMEPEBkLaSbb2IdFM+JjJJTDS0MeIuB0zEKMzIWC9TxaN+SmkIeq0L7 UCiLascOy0QZMX8gtEzPt7WXEh2imcZAorUAffbMjCv47SkPVh9TtBaoQFuJKiLUGF4SA35SaYn 9gcckybMQGDoT54wwndxaLcA48r/J/RWESMa6+NBvx4BSsY3Aui41MvFNyl+UNrp+scPwAJZNe4 THoBhzdLxpsbanhbDfFHygItSf0bcWNYBCXkJIOKPCpXfeAPpSHH875ZKeiiiZxY5g4qYw5Trfh Jb47GMx8Ic7L4MfqMMVOjpEoZNUqCALQkw4F0//8/vF8GCe8cv3zf8B0+r00N0Lp6jRMwBk1sno uVphB+DcrvDshOA== 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 Reviewed-by: Laurent Pinchart --- drivers/gpu/drm/renesas/rcar-du/Kconfig | 12 +++ drivers/gpu/drm/renesas/rcar-du/Makefile | 1 + drivers/gpu/drm/renesas/rcar-du/rcar_dsc.c | 153 +++++++++++++++++++++++++= ++++ 3 files changed, 166 insertions(+) diff --git a/drivers/gpu/drm/renesas/rcar-du/Kconfig b/drivers/gpu/drm/rene= sas/rcar-du/Kconfig index 840305fdeb49..80bd770ae0f6 100644 --- a/drivers/gpu/drm/renesas/rcar-du/Kconfig +++ b/drivers/gpu/drm/renesas/rcar-du/Kconfig @@ -25,6 +25,18 @@ config DRM_RCAR_CMM def_tristate DRM_RCAR_DU depends on DRM_RCAR_USE_CMM =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 + config DRM_RCAR_DW_HDMI tristate "R-Car Gen3 and RZ/G2 DU HDMI Encoder Support" depends on DRM && OF diff --git a/drivers/gpu/drm/renesas/rcar-du/Makefile b/drivers/gpu/drm/ren= esas/rcar-du/Makefile index 6f132325c8b7..9ab7a0ac45d8 100644 --- a/drivers/gpu/drm/renesas/rcar-du/Makefile +++ b/drivers/gpu/drm/renesas/rcar-du/Makefile @@ -10,6 +10,7 @@ rcar-du-drm-$(CONFIG_DRM_RCAR_VSP) +=3D rcar_du_vsp.o rcar-du-drm-$(CONFIG_DRM_RCAR_WRITEBACK) +=3D rcar_du_writeback.o =20 obj-$(CONFIG_DRM_RCAR_CMM) +=3D rcar_cmm.o +obj-$(CONFIG_DRM_RCAR_DSC) +=3D rcar_dsc.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_LVDS) +=3D rcar_lvds.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..1882ae34ce8f --- /dev/null +++ b/drivers/gpu/drm/renesas/rcar-du/rcar_dsc.c @@ -0,0 +1,153 @@ +// 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 + +struct rcar_dsc { + struct drm_bridge bridge; + + struct device *dev; +}; + +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_commit *commit) +{ + struct rcar_dsc *dsc =3D bridge_to_rcar_dsc(bridge); + + WARN_ON(pm_runtime_get_sync(dsc->dev) < 0); +} + +static void rcar_dsc_atomic_disable(struct drm_bridge *bridge, + struct drm_atomic_commit *commit) +{ + struct rcar_dsc *dsc =3D bridge_to_rcar_dsc(bridge); + + pm_runtime_put(dsc->dev); +} + +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_create_state =3D drm_atomic_helper_bridge_create_state, + .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 rcar_dsc *dsc; + int ret; + + 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; + + dsc->bridge.next_bridge =3D of_drm_get_bridge_by_endpoint(dev->of_node, + 1, 0); + if (IS_ERR(dsc->bridge.next_bridge)) + return PTR_ERR(dsc->bridge.next_bridge); + + dsc->bridge.of_node =3D dev->of_node; + + pm_runtime_enable(&pdev->dev); + + ret =3D devm_drm_bridge_add(dev, &dsc->bridge); + if (ret) + goto err_runtime_disable; + + return 0; + +err_runtime_disable: + pm_runtime_disable(&pdev->dev); + + return ret; +} + +static void rcar_dsc_remove(struct platform_device *pdev) +{ + pm_runtime_disable(&pdev->dev); +} + +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, + .remove =3D rcar_dsc_remove, + .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 Sep 25 23:54:11 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 48809441633; Mon, 7 Sep 2026 09:30:28 +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=1788773429; cv=none; b=TBFfhnaI6QPkWmwvBSy5leThS4hytBHC07vymMNppXZMWDeOFXBsVyeKu0fwhe0QqXHsNkHd6CI+n9Lf9K1fNiaTmjUs5Iu1SJ4Bc5oZaPH2+sA/mGdgI6RQlBVxXh7dzhCjLrJlwBWuLOLYKFA6yQ6eFXetdh9Qx+2doGw7M/A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788773429; c=relaxed/simple; bh=FQ3q2y/5ev2CFm/FTXyadCkmNXPP67KDXrr1utQU+oo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=J37evfIkWGgjR7/HRsEXgELP58cxM4aGfObgUTuUwAXdyiIqRreM3O48O+F6tg2XTCtDSG2TUzVdCL5BTg/5mpEY0YO4MJmVHKNA+wxuGkR6bHyUO+IW8dpbG+REcPCLSf5oMJcA4S3AMAzsd67eL/witYgBGA35Db3e86+pw8U= 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=EMV5EcYe; 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="EMV5EcYe" 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 20CBEE4E; Mon, 7 Sep 2026 11:28:47 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1788773328; bh=FQ3q2y/5ev2CFm/FTXyadCkmNXPP67KDXrr1utQU+oo=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=EMV5EcYey64WIs0HoYqMZFpPapt/IesyUIFoXPBi6kTz9sOzj6mbzP8MbCcmBU/0w KvsJLy9pg8N/HTsdwlYWkEzAVExw2YxIceaMr5bvcQGNFuVXOdWPj09/pMCr60FVof dMg94aP4u77x0NprRwsIwVeKH6OFfbYXh3GPPydk= From: Tomi Valkeinen Date: Mon, 07 Sep 2026 12:29:42 +0300 Subject: [PATCH v6 3/6] 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: <20260907-rcar-du-dsc-v6-3-f8ef711a7494@ideasonboard.com> References: <20260907-rcar-du-dsc-v6-0-f8ef711a7494@ideasonboard.com> In-Reply-To: <20260907-rcar-du-dsc-v6-0-f8ef711a7494@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.16.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=2421; i=tomi.valkeinen+renesas@ideasonboard.com; h=from:subject:message-id; bh=FQ3q2y/5ev2CFm/FTXyadCkmNXPP67KDXrr1utQU+oo=; b=owEBbQKS/ZANAwAIAfo9qoy8lh71AcsmYgBqnoQn6H06LK43PCj2eotAVh1yQbcawjxAKMcih An5H2thP5yJAjMEAAEIAB0WIQTEOAw+ll79gQef86f6PaqMvJYe9QUCap6EJwAKCRD6PaqMvJYe 9fCpD/9efAxlpGf5fuIrbZnl/1gFs2xxmA37VpfRlHDNW5WHcMLHGFTjrqUlAv3dZm6CXuj82fY 7VxtL3b/6bxHVji/w8DDeyU+DFD3/Ke6sfL3rkAqcDQUyBPBjEpGXrk+d1cRmeBGqdsTxVtOa0H YuSs6uKPC9mpPQyhYIXcWEB0DHJ13TV4wegB6c+pMFmXcJzGFltdn6r2AYEJ9Iy95BBOyOgCrF1 BhVgEQWolLg2BjxCTcfvdphHIplrDBm9xJQuLVwNuyNmAZqjpzjRZRb+J2/7z/FKB+yTnNqv96r kYg8CaHz/R8xjlMw/A2j/tm7kH0ZO8BcoshzdxCvZ2ihPwlONyPA4z1jNdvAQgoOeKDfRCNSdT7 oSCnnAUnVnnddACpYAivDN0Ei9OxvkbEPx5s4Vk84xIjUIhbOhNY461z7GTEDUZstGnd501O0hL g8hhUn2kUDqxswf/usQrmRY02YE3pwJcyssPE2tYlGEBFN9ZRmFc5Gnyy/H7MRf/c0Gh7tAF5Oc iZ0d6IifbYv5CXE9KtVjXk1reCBLQ/jQKA6oovZDLUxwqofmfDaV9g0wCUhcLvpnKNuBNj1KdVm OEgllVu9gA5vSjpG8upvjhf4P39nXUr3h+Ugl54S40ZeeABfOaDV9xMWMs8cBR0op7yblon6nN/ +MB8MQD5n6cDLOA== 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 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. To solve this problem, make sure we store the DSI bridge to the rcdu->dsi[] array, instead of the first bridge in the DSI pipeline (which can be DSC), by checking the bridge's bridge->type. Reviewed-by: Laurent Pinchart Signed-off-by: Tomi Valkeinen --- drivers/gpu/drm/renesas/rcar-du/rcar_du_encoder.c | 17 +++++++++++++++-- drivers/gpu/drm/renesas/rcar-du/rcar_mipi_dsi.c | 1 + 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/renesas/rcar-du/rcar_du_encoder.c b/drivers/gp= u/drm/renesas/rcar-du/rcar_du_encoder.c index d8e7e9877ba8..3f98eae9b6ac 100644 --- a/drivers/gpu/drm/renesas/rcar-du/rcar_du_encoder.c +++ b/drivers/gpu/drm/renesas/rcar-du/rcar_du_encoder.c @@ -90,9 +90,22 @@ int rcar_du_encoder_init(struct rcar_du_device *rcdu, drm_bridge_get(bridge); =20 if (output =3D=3D RCAR_DU_OUTPUT_DSI0 || - output =3D=3D RCAR_DU_OUTPUT_DSI1) + output =3D=3D RCAR_DU_OUTPUT_DSI1) { + struct drm_bridge *dsi_bridge; + + /* + * When we have a DSC block between the DU and the DSI, + * the "bridge" points to the DSC. Detect the DSC by looking + * at the bridge type, and skip the DSC if the bridge is not + * the DSI bridge. + */ + + dsi_bridge =3D bridge->type =3D=3D DRM_MODE_CONNECTOR_DSI ? + bridge : bridge->next_bridge; + rcdu->dsi[output - RCAR_DU_OUTPUT_DSI0] =3D - drm_bridge_get(bridge); + drm_bridge_get(dsi_bridge); + } } =20 /* 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 6e46d6d99f3c..af4edb207486 100644 --- a/drivers/gpu/drm/renesas/rcar-du/rcar_mipi_dsi.c +++ b/drivers/gpu/drm/renesas/rcar-du/rcar_mipi_dsi.c @@ -957,6 +957,7 @@ static int rcar_mipi_dsi_host_attach(struct mipi_dsi_ho= st *host, =20 /* Initialize the DRM bridge. */ dsi->bridge.of_node =3D dsi->dev->of_node; + dsi->bridge.type =3D DRM_MODE_CONNECTOR_DSI; drm_bridge_add(&dsi->bridge); =20 return 0; --=20 2.43.0 From nobody Fri Sep 25 23:54:11 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 62ACC3AFAEF; Mon, 7 Sep 2026 09:30: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=1788773431; cv=none; b=s1IJ8/KsFj0lfcE9lW26b6JW/cksfQ3wa4guuWQoFxVgIPtxCPyfL/eZcuCF+declhCiUDh/PxPNxVi51qEDQg/d7d75uOx9+4ziLIgRm1OZxUWC/cLp3Eq1SxBjbo8DEemNgzDmbaKIoCYLtcqpzn59Nek1OF/yg5Zv+psqIdU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788773431; c=relaxed/simple; bh=pxt6eLN0eft6ujBqYKiE27aLEY7RCOUA55X+4FReXsw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=D/q1EOFSztJq6QQXAji2Z98qxhIx9g6yrgbJVfrhRxFbnE96dxRjck+ZCayaY4GcTzOUnyahu6xh9fYG0VnUQpqe070NUZb8Fq0mUmwCkz73YeUN4ReBnbBl2rR7nXnGhbpU7O/mSBJ9F82sc75vxm7QT5MlxFDyONv8sWrXpOE= 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=E+mj+AQe; 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="E+mj+AQe" 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 A7151104C; Mon, 7 Sep 2026 11:28:48 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1788773330; bh=pxt6eLN0eft6ujBqYKiE27aLEY7RCOUA55X+4FReXsw=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=E+mj+AQeNmAO6MedZblc41P0rFwkuq8uXttCkG74zDSXgvZ3e620k6v1anPQep7rN dBuw9xfHCBWLZB3I0AV19VmEkFwA5CbDcZnWSfkRxk5JX4Pr6/kUAHNm+lTJttC7+g gXemInFNk0wtV859zB0nSHTx1yuOZfquSRcDvFGw= From: Tomi Valkeinen Date: Mon, 07 Sep 2026 12:29:43 +0300 Subject: [PATCH v6 4/6] arm64: dts: renesas: r8a779g0: Add 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: <20260907-rcar-du-dsc-v6-4-f8ef711a7494@ideasonboard.com> References: <20260907-rcar-du-dsc-v6-0-f8ef711a7494@ideasonboard.com> In-Reply-To: <20260907-rcar-du-dsc-v6-0-f8ef711a7494@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.16.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=1926; i=tomi.valkeinen+renesas@ideasonboard.com; h=from:subject:message-id; bh=uA3GD2PeSxEVbg+9Z716Dn4M8i3mnhsr+127qY8OFRk=; b=owEBbQKS/ZANAwAIAfo9qoy8lh71AcsmYgBqnoQnKy+o24MBKUSlPg7XgSi2et1hAFY605DMM Ptb5r/65K+JAjMEAAEIAB0WIQTEOAw+ll79gQef86f6PaqMvJYe9QUCap6EJwAKCRD6PaqMvJYe 9VUSD/9lLv6/1YPxcZaZpXOep07WtfY45JmaBDexy+IjfNWerhwX2XaZT+LX0fpy7dR0Fv5t/W9 i0Xs3OSkV95tNbawQb36DwmLqCdzY75Jc1zJ+bOl1Jz4nmIvTPT7r3pZ5GXAGP2zOR81XJf9mXS bQH5QQYcWBS3zQx95PBg8vciGVg0OIRbmTq6H+2R06Llqg0V62aAMGuAxFLehp45mNjb9Wn22zn TqUInGs2RaU3QO6v3D2KuOVnoaItgNM+FIMUwq4cJ4DZ4wcSC2fJiG8EOUhw1ouG/Iy0GkbMqv9 9dbIEdxBCteAznBKsasqHrt0zLCdQ/N3pbzO3ytzezF5/7LKXVq/6eFWMJ/wuU07Nsi70nzkNOr vgY1CM9RuX9k6yCIdxkCXYjbVPDGo7DqEu7wPuhfF4asDRPKjW6kRxIAMBy2a+lIKkCstPXBgIg C0m8Sff8bPaknU/9rjFM6p9y1JkSeRrhxtEFKcEHmtdSS5KzlDaHJypRlJfO6HtjBuxZamBaGfs t7DKuyACLN+lSb+nPqFk5kpbrtVGoAQS7R3AaU/q5Ggcf9yCGaWXPB0W/pFlFXmXshfGWyoIrZy fKaIeSmKIdVn7DBPZX/EtEIhMsRS30s1M50f/YhSp+OIfUf/Olxr9uUCCRkMrdU4erjn3JLm1Ee TULlwJs8a4HeuPA== 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. The current dtsi file does not represent the DSC at all, and thus the pipeline for DSI1 has not been functional. Signed-off-by: Marek Vasut [tomi.valkeinen: separated the sparrowhawk changes] Signed-off-by: Tomi Valkeinen Reviewed-by: Laurent Pinchart Reviewed-by: Geert Uytterhoeven --- arch/arm64/boot/dts/renesas/r8a779g0.dtsi | 31 +++++++++++++++++++++++++++= +++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/renesas/r8a779g0.dtsi b/arch/arm64/boot/dt= s/renesas/r8a779g0.dtsi index 8a291447b904..285dd88e060c 100644 --- a/arch/arm64/boot/dts/renesas/r8a779g0.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a779g0.dtsi @@ -2315,6 +2315,35 @@ du_out_dsi0: endpoint { port@1 { reg =3D <1>; du_out_dsi1: endpoint { + remote-endpoint =3D <&dsc_in_dsi1>; + }; + }; + }; + }; + + dsc: bridge@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>; }; }; @@ -2551,7 +2580,7 @@ ports { port@0 { reg =3D <0>; dsi1_in: endpoint { - remote-endpoint =3D <&du_out_dsi1>; + remote-endpoint =3D <&dsc_out_dsi1>; }; }; =20 --=20 2.43.0 From nobody Fri Sep 25 23:54:11 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 B051E449B21; Mon, 7 Sep 2026 09:30:31 +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=1788773433; cv=none; b=D3+B03sJ/ypHNGYNAbsAmC0wEmZFlikhgDw9NEPI3LfBp1d6xVf/jcADctiX17LqO5Ce2EKpNhEea8TP68LlVcgX+algMcd7ZXx8YOsuJDv58I1gebKzBRmbjXS77VhEKJoaHI7ndt9/3qv1wD9nnC8o8Ek88PEnZsLsjEzopVk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788773433; c=relaxed/simple; bh=E4l62o+sxS+bPEPN3Rlb+RatxgF6zDPhb0MAy+QFUv8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=hQTrHScsx4dX7sEY74FEuzbmMr9x+LHoiSqu2ciJON0xe0okxwaMt25VtEPEvtj1/gRVGcdSKYL7dB85ux57tw+e86wNwoBpHErW/QnRfEC7QCJ9Xe1hqJ2ye/VG6XPLsAVi51zg6qMCUS+q+XMlypME7VAJ6nNovPk05dbhM7g= 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=sac3TfrM; 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="sac3TfrM" 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 3D64F13BA; Mon, 7 Sep 2026 11:28:50 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1788773331; bh=E4l62o+sxS+bPEPN3Rlb+RatxgF6zDPhb0MAy+QFUv8=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=sac3TfrMtL/YnoGEyRE99e4FuwRIwyvwInDD4Fg3Hzae/FYlilpFrskO+5D4RCEku vHqQVZFppIb94hH6G9FdppMmKxclWRqEV1lx8ZtCBpXZyfSsxjY8agiV+RTFSWFgbP rt9a5L5DQQ6MuzwdBNHY+G8xPgN5r6RsqZy+kC6k= From: Tomi Valkeinen Date: Mon, 07 Sep 2026 12:29:44 +0300 Subject: [PATCH v6 5/6] arm64: dts: renesas: sparrow-hawk: Enable DisplayPort by adding 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: <20260907-rcar-du-dsc-v6-5-f8ef711a7494@ideasonboard.com> References: <20260907-rcar-du-dsc-v6-0-f8ef711a7494@ideasonboard.com> In-Reply-To: <20260907-rcar-du-dsc-v6-0-f8ef711a7494@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.16.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=1310; i=tomi.valkeinen+renesas@ideasonboard.com; h=from:subject:message-id; bh=spwA6S6xpukisy7pkedqiZJctKlACrqVu7cRL2eEc4Y=; b=owEBbQKS/ZANAwAIAfo9qoy8lh71AcsmYgBqnoQn7hRat5DOSUGwCtbdOIXjldd8M3qJfHJGT 3xoeFRziJOJAjMEAAEIAB0WIQTEOAw+ll79gQef86f6PaqMvJYe9QUCap6EJwAKCRD6PaqMvJYe 9QYyD/4sh1tijIaSFJDVKns8PpiUK1txHmylyBdSsKfVBI1B8PrvZefNjcllEPDed5Z3j24T0fL yPppCCavEWQC1F+Y5lxAMqmseVNYhl8RQniY8FjoIiuM0igjf5+E5r7QFXopivep/NmUu6tSN0Y zvzNKhf0QJm7A99nv9LL9yARd675O61RlVAqtO1AMa9YecU96+KGFAPQedfHcphv4gvC7RDo5s2 zzlCrKbsnVKmiW0i4ESMnJv9yEmQMD8+Ub/Sqs7qYkU9Q5TquNm0vIAyVnEAYAZ/VdbyXG67aSU 0YOsigUY1u/ro9FSEbjJ8kooUZyuzkwc2Cvwpn9ELgQrJ+xwAFCI1KPnFaLZxU2eLKBKjMUUO72 xZWdZnSabyu54gKt2B2cOEUiPu2QA00uL1OKsbzRMJkrgLyONxjh3tN2Jf5d4+mNwHYiqW6MHmm C6ZmYMNHyLtuRpQEGnwuQJnRy+QBsmfzF/5O64xozyIFnED2oSNhmOuzFzBJB1f/62SIGjsK8ON RLMw6F9v987V1DNecRZjG3ZDaFp8nIn8yX3c4N86H3sxdEaK81S+b9L2b416BxmNelA3Xsm41p/ Dsz5SS9mQq1zBP5N2csSnTYN5Z1mti2OVSWE8lHlT4XYNUokZu5UyFNbvNTi4z0lsgUZEH6CLmG uhELzpYbbdHiGUg== X-Developer-Key: i=tomi.valkeinen+renesas@ideasonboard.com; a=openpgp; fpr=C4380C3E965EFD81079FF3A7FA3DAA8CBC961EF5 From: Marek Vasut DisplayPort on the Sparrow Hawk board uses sn65dsi86 bridge, which in turn gets the video stream from the SoC's DSI1 port. DSI1 pipeline has a DSC block in between the DU and the DSI1. However, there was no DSC driver in Linux and also the DSC was not defined in the dts files, and thus the DisplayPort output did not work. Now that we have DSC defined in the SoC dts file (r8a779g0.dtsi), we can enable DSC for sparrowhawk. Signed-off-by: Marek Vasut [tomi.valkeinen: separated the sparrow hawk changes from the soc changes] Reviewed-by: Laurent Pinchart Signed-off-by: Tomi Valkeinen Reviewed-by: Geert Uytterhoeven --- arch/arm64/boot/dts/renesas/r8a779g3-sparrow-hawk.dts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/arch/arm64/boot/dts/renesas/r8a779g3-sparrow-hawk.dts b/arch/a= rm64/boot/dts/renesas/r8a779g3-sparrow-hawk.dts index af680290ce81..0a5ebe0460ca 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 From nobody Fri Sep 25 23:54:11 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 B1D0244A41A; Mon, 7 Sep 2026 09:30: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=1788773434; cv=none; b=elJLaRpZsZJ5ne5PLXbZsTlB1V3s8Qw42uHEzdiXB5c5uNG3UhS53dN7N1JTYJ9gSreiXpUIzg86vUPIigTPPFfDiaS3vM5K2BgO8HaOysJZELGE5COhFcgoNQgz1RbbjhIX8IqqmHVx5UfKaQoVhMThCVOvdVqhDO/hf+bdXRQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788773434; c=relaxed/simple; bh=r5QjrFAZtSkTFwOWAs/qFvVvo8FOH/iWvMtmoLDe4uU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=KT9dsxHw6lp6Da2hQ6pTE2rtxjFs3n9Etulkv1NBrldcImKX4buvx3q2o9APXhQKd/KUGqKtSBVsqO7Bf/UhI4aJ22tlCwUIo3Irz/ojGJ7grsgDr5Cu03DkpFvBH86XzOhp/Tgtjyw68Wu8JWPoJ8fNk/a6VCwRg1uF7AGbsvs= 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=JUptlJ+n; 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="JUptlJ+n" 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 B9D8C153F; Mon, 7 Sep 2026 11:28:51 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1788773333; bh=r5QjrFAZtSkTFwOWAs/qFvVvo8FOH/iWvMtmoLDe4uU=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=JUptlJ+ngrtn2ey+0GQH+CsU1MWdqaOuTnY65LyMwuddIbYGqkgYMqdAQz5rC+Jf+ tAkwcvp7+45tGNvGm1Itb1dU2PR33ug0yecajsFrOwJeQ91OGHb1iWwfDg2Yaco42P 4+5LQGo0gjP6GhqLfnvrKPNugfe4yx05Dvum09vA= From: Tomi Valkeinen Date: Mon, 07 Sep 2026 12:29:45 +0300 Subject: [PATCH v6 6/6] arm64: dts: renesas: white-hawk: Add second mini-DP output 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: <20260907-rcar-du-dsc-v6-6-f8ef711a7494@ideasonboard.com> References: <20260907-rcar-du-dsc-v6-0-f8ef711a7494@ideasonboard.com> In-Reply-To: <20260907-rcar-du-dsc-v6-0-f8ef711a7494@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.16.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=2815; i=tomi.valkeinen+renesas@ideasonboard.com; h=from:subject:message-id; bh=wbg5CCdU/74bk2tdhUnSaOwNMuA62RxSenB5kl7Y1u8=; b=owEBbQKS/ZANAwAIAfo9qoy8lh71AcsmYgBqnoQoXmAApt41W4hmFgpQ0vzEduDxOxe1zFM3J 9tyggU/B0GJAjMEAAEIAB0WIQTEOAw+ll79gQef86f6PaqMvJYe9QUCap6EKAAKCRD6PaqMvJYe 9UMhEACj0GwqXa3no24EXYHQ5Aoj0q6XN+fUvOTZUM4kvoRpfzNdAtuY5jtAO4bIqJP3+cW/X31 akFzubpWBe9ARVFyrm4bVCoWKjTsKjSPF0gQyO75jXqiyZBL/4Ui+tJ5o2U0TUkJo6VYEohoIcb I1XFuvU53YpcuMr8edTZRCm3g6p1GBR1WFLpgrsZQWZyJHUXWtmV/E1E/1BLnXtUt01nOpBcsFf mN5nnVVZGLs5to7dngSsM/ZNEpnxhqCiYReh62sIkJIe0HXSfAuXdMr8Lne+1+ehMpEmjzhj3jS EXwuipqKmP3J7bomO7TmST2yc+FOD/vfIVD6lSRrBqA9ERIMTCSTfP03/Z0BkqTpOJslw827IkS /dm11P85NQXmHpgAVVI8wYiYDpXEOA3IptY4cG9hTPsxrewOUe0obbv3Jkbq9JNb6MgEP17YwZu ToV6kv7ygmvvviXMgz6yjPgUPPaes2++uSPEp6KnXIPAX/ryKuvFLMhVPkssQwaajuHqFhY+nEA lY5c92NEazTiKZBov2OXE2xfYu1Ij/tRjA8xeEWfNMtWL+2n4Gg8k0e31UV8udx8SYN7gKMuBae GKUWx8rcHP9+G5cNdAgRmbjaRELSbMKwqnhmPLcSJei4zq9yPDpZ9SWicAFGnUc6LOlwig/KM2h dPjmzrqKjeiPH2A== X-Developer-Key: i=tomi.valkeinen+renesas@ideasonboard.com; a=openpgp; fpr=C4380C3E965EFD81079FF3A7FA3DAA8CBC961EF5 From: Geert Uytterhoeven Add support for the mini-DisplayPort connector on the White Hawk BreakOut board. This connector is driven by a TI SN65DSI86 DSI to eDP bridge, which in turn gets the pixel data from the second DSI channel on the R-Car V4H SoC. Note that this port is not present on the White Hawk Single development board. Signed-off-by: Geert Uytterhoeven [tomi.valkeinen: added status=3Dokay for dsc] Reviewed-by: Laurent Pinchart Signed-off-by: Tomi Valkeinen --- .../arm64/boot/dts/renesas/r8a779g0-white-hawk.dts | 94 ++++++++++++++++++= ++++ 1 file changed, 94 insertions(+) diff --git a/arch/arm64/boot/dts/renesas/r8a779g0-white-hawk.dts b/arch/arm= 64/boot/dts/renesas/r8a779g0-white-hawk.dts index 784d4e8b204c..89d60b83ac4f 100644 --- a/arch/arm64/boot/dts/renesas/r8a779g0-white-hawk.dts +++ b/arch/arm64/boot/dts/renesas/r8a779g0-white-hawk.dts @@ -12,4 +12,98 @@ / { model =3D "Renesas White Hawk CPU and Breakout boards based on r8a779g0"; compatible =3D "renesas,white-hawk-breakout", "renesas,white-hawk-cpu", "= renesas,r8a779g0"; + + sn65dsi86_refclk2: clk-x16 { + compatible =3D "fixed-clock"; + #clock-cells =3D <0>; + clock-frequency =3D <38400000>; + }; + + mini-dp-con2 { + compatible =3D "dp-connector"; + label =3D "CN15"; + type =3D "mini"; + + port { + mini_dp_con_in2: endpoint { + remote-endpoint =3D <&sn65dsi86_out2>; + }; + }; + }; +}; + +&dsc { + status =3D "okay"; +}; + +&dsi1 { + status =3D "okay"; + + ports { + port@1 { + dsi1_out: endpoint { + remote-endpoint =3D <&sn65dsi86_in2>; + data-lanes =3D <1 2 3 4>; + }; + }; + }; +}; + +&i2c4 { + pinctrl-0 =3D <&i2c4_pins>; + pinctrl-names =3D "default"; + + status =3D "okay"; + clock-frequency =3D <400000>; + + bridge@2c { + pinctrl-0 =3D <&irq1_pins>; + pinctrl-names =3D "default"; + + compatible =3D "ti,sn65dsi86"; + reg =3D <0x2c>; + + clocks =3D <&sn65dsi86_refclk2>; + clock-names =3D "refclk"; + + interrupts-extended =3D <&intc_ex 1 IRQ_TYPE_LEVEL_HIGH>; + + enable-gpios =3D <&gpio1 27 GPIO_ACTIVE_HIGH>; + + vccio-supply =3D <®_1p8v>; + vpll-supply =3D <®_1p8v>; + vcca-supply =3D <®_1p2v>; + vcc-supply =3D <®_1p2v>; + + ports { + #address-cells =3D <1>; + #size-cells =3D <0>; + + port@0 { + reg =3D <0>; + sn65dsi86_in2: endpoint { + remote-endpoint =3D <&dsi1_out>; + }; + }; + + port@1 { + reg =3D <1>; + sn65dsi86_out2: endpoint { + remote-endpoint =3D <&mini_dp_con_in2>; + }; + }; + }; + }; +}; + +&pfc { + i2c4_pins: i2c4 { + groups =3D "i2c4"; + function =3D "i2c4"; + }; + + irq1_pins: irq1 { + groups =3D "intc_ex_irq1_a"; + function =3D "intc_ex"; + }; }; --=20 2.43.0