]> www.infradead.org Git - users/hch/misc.git/commitdiff
drm/tidss: Set crtc modesetting parameters with adjusted mode
authorJayesh Choudhary <j-choudhary@ti.com>
Tue, 24 Jun 2025 08:04:02 +0000 (13:34 +0530)
committerTomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Wed, 13 Aug 2025 07:56:06 +0000 (10:56 +0300)
TIDSS uses crtc_* fields to propagate its registers and set the
clock rates. So set the CRTC modesetting timing parameters with
the adjusted mode when needed, to set correct values.

Cc: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Signed-off-by: Jayesh Choudhary <j-choudhary@ti.com>
Link: https://lore.kernel.org/r/20250624080402.302526-1-j-choudhary@ti.com
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
drivers/gpu/drm/tidss/tidss_crtc.c

index 17efd77ce7f237cd1fbadd0b3e86f0a12608fc68..da89fd01c3376352840185cd4ac355dd41fd5bb1 100644 (file)
@@ -91,7 +91,7 @@ static int tidss_crtc_atomic_check(struct drm_crtc *crtc,
        struct dispc_device *dispc = tidss->dispc;
        struct tidss_crtc *tcrtc = to_tidss_crtc(crtc);
        u32 hw_videoport = tcrtc->hw_videoport;
-       const struct drm_display_mode *mode;
+       struct drm_display_mode *mode;
        enum drm_mode_status ok;
 
        dev_dbg(ddev->dev, "%s\n", __func__);
@@ -108,6 +108,9 @@ static int tidss_crtc_atomic_check(struct drm_crtc *crtc,
                return -EINVAL;
        }
 
+       if (drm_atomic_crtc_needs_modeset(crtc_state))
+               drm_mode_set_crtcinfo(mode, 0);
+
        return dispc_vp_bus_check(dispc, hw_videoport, crtc_state);
 }