|
@@ -309,6 +309,8 @@ static int udl_crtc_mode_set(struct drm_crtc *crtc,
|
|
|
char *wrptr;
|
|
|
int color_depth = 0;
|
|
|
|
|
|
+ udl->crtc = crtc;
|
|
|
+
|
|
|
buf = (char *)udl->mode_buf;
|
|
|
|
|
|
/* for now we just clip 24 -> 16 - if we fix that fix this */
|
|
@@ -450,6 +452,18 @@ int udl_modeset_init(struct drm_device *dev)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
+void udl_modeset_restore(struct drm_device *dev)
|
|
|
+{
|
|
|
+ struct udl_device *udl = dev->dev_private;
|
|
|
+ struct udl_framebuffer *ufb;
|
|
|
+
|
|
|
+ if (!udl->crtc || !udl->crtc->primary->fb)
|
|
|
+ return;
|
|
|
+ udl_crtc_commit(udl->crtc);
|
|
|
+ ufb = to_udl_fb(udl->crtc->primary->fb);
|
|
|
+ udl_handle_damage(ufb, 0, 0, ufb->base.width, ufb->base.height);
|
|
|
+}
|
|
|
+
|
|
|
void udl_modeset_cleanup(struct drm_device *dev)
|
|
|
{
|
|
|
drm_mode_config_cleanup(dev);
|