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 <[email protected]> --- 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/[email protected] 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/[email protected] 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/[email protected] 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/[email protected] --- 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 <[email protected]>
