drm: Clear crtc->primary->crtc when disabling the crtc via setcrtc()
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Thu, 22 Mar 2018 15:22:53 +0000 (17:22 +0200)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Thu, 29 Mar 2018 16:14:20 +0000 (19:14 +0300)
Keep the primary->crtc in sync with the state->crtc (also with
primary->fb and state->fb) when disabling the crtc (and thus also
the primary) via setcrtc().

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180322152313.6561-4-ville.syrjala@linux.intel.com
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
drivers/gpu/drm/drm_crtc.c

index 03583887cfec323628ee9723ee1be8b275bc37ef..7a973ada7195f47ee4ec7e2312171fd45d7feb46 100644 (file)
@@ -471,7 +471,7 @@ static int __drm_mode_set_config_internal(struct drm_mode_set *set,
 
        ret = crtc->funcs->set_config(set, ctx);
        if (ret == 0) {
-               crtc->primary->crtc = crtc;
+               crtc->primary->crtc = fb ? crtc : NULL;
                crtc->primary->fb = fb;
        }