From: Haixia Shi Date: Fri, 30 Jan 2015 18:57:27 +0000 (-0800) Subject: drm/udl: properly set active_16 flag in udl_crtc_page_flip(). (v2) X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=6c3912d69b23e33e8f8b9479cd7bf5331345615d;p=GitHub%2Fmoto-9609%2Fandroid_kernel_motorola_exynos9610.git drm/udl: properly set active_16 flag in udl_crtc_page_flip(). (v2) When page flipping, we need to mark the new fb as active and unmark the active flag for the old fb (if different). Signed-off-by: Haixia Shi Reviewed-by: Stéphane Marchesin Signed-off-by: Dave Airlie --- diff --git a/drivers/gpu/drm/udl/udl_modeset.c b/drivers/gpu/drm/udl/udl_modeset.c index 1701f1dfb23f..677190a65e82 100644 --- a/drivers/gpu/drm/udl/udl_modeset.c +++ b/drivers/gpu/drm/udl/udl_modeset.c @@ -340,11 +340,11 @@ static int udl_crtc_mode_set(struct drm_crtc *crtc, wrptr = udl_dummy_render(wrptr); - ufb->active_16 = true; if (old_fb) { struct udl_framebuffer *uold_fb = to_udl_fb(old_fb); uold_fb->active_16 = false; } + ufb->active_16 = true; udl->mode_buf_len = wrptr - buf; /* damage all of it */ @@ -373,6 +373,13 @@ static int udl_crtc_page_flip(struct drm_crtc *crtc, struct drm_device *dev = crtc->dev; unsigned long flags; + struct drm_framebuffer *old_fb = crtc->primary->fb; + if (old_fb) { + struct udl_framebuffer *uold_fb = to_udl_fb(old_fb); + uold_fb->active_16 = false; + } + ufb->active_16 = true; + udl_handle_damage(ufb, 0, 0, fb->width, fb->height); spin_lock_irqsave(&dev->event_lock, flags);