drm/rockchip: vop: add cycles_per_pixel check for both rgb and mcu interfaces

The RGB interface also supports formats that have multiple cycles per
pixel, such as MEDIA_BUS_FMT_RGB888_3X8, MEDIA_BUS_FMT_RGB565_2X8_LE,
and so on. And the &drm_display_mode.crtc_clock should be multiplied by
the return value of rockchip_drm_get_cycles_per_pixel().

Fixes: 3cb261be89 ("drm/rockchip: drv: fix the dclk calculation of mcu interface")
Change-Id: I85c0168ccfaedbf5566a2c6b8f86e881fbc93ad0
Signed-off-by: Damon Ding <damon.ding@rock-chips.com>
This commit is contained in:
Damon Ding
2025-02-11 16:18:54 +08:00
parent e6270f2d22
commit 825560b30c

View File

@@ -3349,7 +3349,7 @@ static bool vop_crtc_mode_fixup(struct drm_crtc *crtc,
s->output_if & VOP_OUTPUT_IF_BT656))
adj_mode->crtc_clock *= 2;
if (vop->mcu_timing.mcu_pix_total)
if (s->output_if & VOP_OUTPUT_IF_RGB)
adj_mode->crtc_clock *= rockchip_drm_get_cycles_per_pixel(s->bus_format) *
(vop->mcu_timing.mcu_pix_total + 1);