[PATCH v3 0/5] Improve Rockchip VOP2 display modes handling on RK3588 HDMI0
From: Cristian Ciocaltea
Date: Tue Feb 04 2025 - 07:45:12 EST
VOP2 support for RK3588 SoC is currently not capable to handle the full
range of display modes advertised by the connected screens, e.g. it
doesn't cope well with non-integer refresh rates like 59.94, 29.97,
23.98, etc.
There are two HDMI PHYs available on RK3588, each providing a PLL that
can be used by three out of the four VOP2 video ports as an alternative
and more accurate pixel clock source. They are able to handle display
modes up to 4K@60Hz, anything above that, e.g. the maximum supported
8K@60Hz resolution, is supposed to be handled by the system CRU.
There is quite a bit of complexity in downstream driver to handle all
possible usecases - see [1] for a brief description on how was that
designed to work.
As for the moment HDMI1 output support [2] is not fully merged upstream,
the patch series targets HDMI0 only.
Additionally, please note that testing any HDMI 2.0 specific modes, e.g.
4K@60Hz, requires high TMDS clock ratio and scrambling capability [3].
Thanks,
Cristian
[1] https://github.com/radxa/kernel/blob/linux-6.1-stan-rkr4.1/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c#L4742
[2] https://lore.kernel.org/lkml/20241211-rk3588-hdmi1-v2-0-02cdca22ff68@xxxxxxxxxxxxx/
[3] https://gitlab.collabora.com/hardware-enablement/rockchip-3588/linux/-/commits/rk3588-hdmi-bridge-v6.14-rc1
Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@xxxxxxxxxxxxx>
---
Changes in v3:
- Check the already computed clock instead of mode->crtc_clock in the
conditional that triggers the switch to HDMI PHY PLL
- Rebased series onto v6.14-rc1
- Link to v2: https://lore.kernel.org/r/20241211-vop2-hdmi0-disp-modes-v2-0-471cf5001e45@xxxxxxxxxxxxx
Changes in v2:
- Collected Acked-by tag from Rob and Tested-by from Naoki
- Rebased series onto v6.13-rc1
- Link to v1: https://lore.kernel.org/r/20241116-vop2-hdmi0-disp-modes-v1-0-2bca51db4898@xxxxxxxxxxxxx
---
Cristian Ciocaltea (5):
dt-bindings: display: vop2: Add optional PLL clock properties
drm/rockchip: vop2: Drop unnecessary if_pixclk_rate computation
drm/rockchip: vop2: Improve display modes handling on RK3588 HDMI0
arm64: dts: rockchip: Enable HDMI0 PHY clk provider on RK3588
arm64: dts: rockchip: Add HDMI0 PHY PLL clock source to VOP2 on RK3588
.../bindings/display/rockchip/rockchip-vop2.yaml | 4 +++
arch/arm64/boot/dts/rockchip/rk3588-base.dtsi | 7 +++--
drivers/gpu/drm/rockchip/rockchip_drm_vop2.c | 36 +++++++++++++++++++++-
3 files changed, 44 insertions(+), 3 deletions(-)
---
base-commit: 2014c95afecee3e76ca4a56956a936e23283f05b
change-id: 20241116-vop2-hdmi0-disp-modes-b39e3619768f