Some DSI pipelines have DSC (Display Stream Compression) IP block
between the DU and the DSI. Even if DSC is not needed, the IP must be
enabled for the DSI output to work.
This series adds a basic DSC driver, so that the DSC IP gets enabled in
bypass mode. This enables DisplayPort output on Sparrow Hawk board, as
the DP output comes from DSI and sn65dsi86 bridge, and also White Hawk
board's second mini-DP output.
Original series from Marek.
Note: I see that not every run of kms++'s kmstest gives me a picture on
my monitor. Sometimes the monitor seems to be trying to repeatedly sync,
but fails, and the screen stays black. However, I see this same issue on
WhiteHawk, which uses DSI0 pipeline, without DSC, so I think that is a
separate issue.
Tomi
Signed-off-by: Tomi Valkeinen <tomi.valkeinen+renesas@ideasonboard.com>
---
Changes in v5:
- Drop the "renesas,rcar-dsc" compatible, and rename the binding file to renesas,r8a779g0-dsc.yaml
- Check pm_runtime_get_sync() < 0 for error, instead of
pm_runtime_get_sync() != 0
- Move pm_runtime_enable() before drm_bridge_add(), so that runtime PM
is ready when we publish the bridge
- Fix "DCS" typo in commit desc
- Rewrite "drm/rcar-du: dsi: Support DSC in the pipeline" again, this
time solving the DSI/DSC question in rcar_du_encoder_init()
- Link to v4: https://patch.msgid.link/20260615-rcar-du-dsc-v4-0-93096a1b56a3@ideasonboard.com
Changes in v4:
- Add 'renesas,rcar-dsc' compatible, in addition to the SoC specific
compatible
- Use 'bridge' as the name of the DT node
- Arrange Kconfig and Makefile entries alphabetically
- Rebase on drm-misc-next, and fix the drm_atomic_state rename issue
- Use pm_runtime_get_sync() in .atomic_enable() instead of
pm_runtime_resume_and_get() to fix the possible runtime PM get/put
discrepancy
- Drop ioremap and mmio field, as the driver does not touch the
registers
- Use of_drm_get_bridge_by_endpoint() to get the next bridge
- Rewrite "drm/rcar-du: dsi: Support DSC in the pipeline" to use
bridge->type to detect the DSI and the DSC
- And some cosmetic fixes pointed out in the review comments
- Link to v3: https://patch.msgid.link/20260515-rcar-du-dsc-v3-0-164157820498@ideasonboard.com
Changes in v3:
- Simplify DSC driver: drop reset control, drop clk handling, use runtime PM
- Split dts changes for r8a779g0 and sparrow-hawk to separate patches
- Add "arm64: dts: renesas: white-hawk: Add second mini-DP output
support"
- Link to v2: https://patch.msgid.link/20260515-rcar-du-dsc-v2-0-f6b9240a1240@ideasonboard.com
Changes in v2:
- Fixed the dts example in "dt-bindings: display: bridge: Document
Renesas R-Car V4H DSC bindings"
- Link to v1: https://lore.kernel.org/r/20260514-rcar-du-dsc-v1-0-d65f7a9e9841@ideasonboard.com
---
Geert Uytterhoeven (1):
arm64: dts: renesas: white-hawk: Add second mini-DP output support
Marek Vasut (5):
clk: renesas: r8a779g0: Add DSC clock
dt-bindings: display: bridge: Document Renesas R-Car V4H DSC bindings
drm/rcar-du: dsc: Add rudimentary Renesas R-Car V4H DSC driver
arm64: dts: renesas: r8a779g0: Add DSC
arm64: dts: renesas: sparrow-hawk: Enable DisplayPort by adding DSC
Tomi Valkeinen (1):
drm/rcar-du: dsi: Support DSC in the pipeline
.../display/bridge/renesas,r8a779g0-dsc.yaml | 96 +++++++++++++
.../arm64/boot/dts/renesas/r8a779g0-white-hawk.dts | 94 +++++++++++++
arch/arm64/boot/dts/renesas/r8a779g0.dtsi | 31 ++++-
.../boot/dts/renesas/r8a779g3-sparrow-hawk.dts | 5 +
drivers/clk/renesas/r8a779g0-cpg-mssr.c | 1 +
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 | 154 +++++++++++++++++++++
drivers/gpu/drm/renesas/rcar-du/rcar_du_encoder.c | 18 ++-
drivers/gpu/drm/renesas/rcar-du/rcar_mipi_dsi.c | 1 +
10 files changed, 410 insertions(+), 3 deletions(-)
---
base-commit: a56a73ec85c81c7e533bc249ff0fd996256053fd
change-id: 20260514-rcar-du-dsc-45bcf0c2fe86
Best regards,
--
Tomi Valkeinen <tomi.valkeinen+renesas@ideasonboard.com>