]> git.ipfire.org Git - thirdparty/kernel/stable.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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 13 Nov 2025 20:34:11 +0000 (15:34 -0500)
[ Upstream commit cfb29225db20c56432a8525366321c0c09edfb2e ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpu/drm/tidss/tidss_crtc.c

index 1604eca265ef666de814307f8cc1159ecd420af8..36c22d86085279a7c346917c25df539615010128 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);
 }