mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-11-27 01:11:31 +00:00
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 <hshi@chromium.org> Reviewed-by: Stéphane Marchesin <marcheu@chromium.org> Signed-off-by: Dave Airlie <airlied@gmail.com>
This commit is contained in:
parent
56a8620a15
commit
6c3912d69b
1 changed files with 8 additions and 1 deletions
|
|
@ -340,11 +340,11 @@ static int udl_crtc_mode_set(struct drm_crtc *crtc,
|
||||||
|
|
||||||
wrptr = udl_dummy_render(wrptr);
|
wrptr = udl_dummy_render(wrptr);
|
||||||
|
|
||||||
ufb->active_16 = true;
|
|
||||||
if (old_fb) {
|
if (old_fb) {
|
||||||
struct udl_framebuffer *uold_fb = to_udl_fb(old_fb);
|
struct udl_framebuffer *uold_fb = to_udl_fb(old_fb);
|
||||||
uold_fb->active_16 = false;
|
uold_fb->active_16 = false;
|
||||||
}
|
}
|
||||||
|
ufb->active_16 = true;
|
||||||
udl->mode_buf_len = wrptr - buf;
|
udl->mode_buf_len = wrptr - buf;
|
||||||
|
|
||||||
/* damage all of it */
|
/* damage all of it */
|
||||||
|
|
@ -373,6 +373,13 @@ static int udl_crtc_page_flip(struct drm_crtc *crtc,
|
||||||
struct drm_device *dev = crtc->dev;
|
struct drm_device *dev = crtc->dev;
|
||||||
unsigned long flags;
|
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);
|
udl_handle_damage(ufb, 0, 0, fb->width, fb->height);
|
||||||
|
|
||||||
spin_lock_irqsave(&dev->event_lock, flags);
|
spin_lock_irqsave(&dev->event_lock, flags);
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue