|
@@ -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);
|