{
        struct drm_device *dev = usb_get_intfdata(interface);
 
-       drm_kms_helper_poll_disable(dev);
-       return 0;
+       return drm_mode_config_helper_suspend(dev);
 }
 
 static int udl_usb_resume(struct usb_interface *interface)
 {
        struct drm_device *dev = usb_get_intfdata(interface);
 
-       drm_kms_helper_poll_enable(dev);
-       udl_modeset_restore(dev);
-       return 0;
+       return drm_mode_config_helper_resume(dev);
 }
 
 DEFINE_DRM_GEM_FOPS(udl_driver_fops);
 
 
 /* modeset */
 int udl_modeset_init(struct drm_device *dev);
-void udl_modeset_restore(struct drm_device *dev);
 void udl_modeset_cleanup(struct drm_device *dev);
 struct drm_connector *udl_connector_init(struct drm_device *dev);
 
 
        return ret;
 }
 
-void udl_modeset_restore(struct drm_device *dev)
-{
-       struct udl_device *udl = dev->dev_private;
-       struct drm_crtc *crtc = &udl->display_pipe.crtc;
-       struct drm_plane *primary = &udl->display_pipe.plane;
-       struct drm_framebuffer *fb = primary->fb;
-
-       if (!fb)
-               return;
-
-       udl_crtc_dpms(crtc, DRM_MODE_DPMS_ON);
-       udl_handle_damage(fb, 0, 0, fb->width, fb->height);
-}
-
 void udl_modeset_cleanup(struct drm_device *dev)
 {
        drm_mode_config_cleanup(dev);