]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/client: Stop using the legacy crtc->mode
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Fri, 28 Feb 2025 21:14:51 +0000 (23:14 +0200)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Thu, 13 Mar 2025 16:33:11 +0000 (18:33 +0200)
crtc->mode is legacy junk and shouldn't really be used with
atomic drivers.

Most (all?) atomic drivers do end up still calling
drm_atomic_helper_update_legacy_modeset_state() at some
point, so crtc->mode does still get populated, and this
does work for now. But now that the modes[] lifetime issues
have been sorted out we can just switch over to the
proper crtc->state->mode.

v2: Rebase

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20250228211454.8138-6-ville.syrjala@linux.intel.com
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
drivers/gpu/drm/drm_client_modeset.c

index ff034359f0632961aff704359bf8700448b3df9e..4c64535fb82cb64595b2210a8c555c317dbf5c2b 100644 (file)
@@ -733,20 +733,9 @@ retry:
 
                /* last resort: use current mode */
                if (!modes[i]) {
-                       /*
-                        * IMPORTANT: We want to use the adjusted mode (i.e.
-                        * after the panel fitter upscaling) as the initial
-                        * config, not the input mode, which is what crtc->mode
-                        * usually contains. But since our current
-                        * code puts a mode derived from the post-pfit timings
-                        * into crtc->mode this works out correctly.
-                        *
-                        * This is crtc->mode and not crtc->state->mode for the
-                        * fastboot check to work correctly.
-                        */
                        mode_type = "current";
                        mode_replace(dev, &modes[i],
-                                    &connector->state->crtc->mode);
+                                    &new_crtc->state->mode);
                }
 
                /*