struct drm_framebuffer *old_fb)
 {
        struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc);
+       struct exynos_drm_manager *manager = exynos_crtc->manager;
        struct drm_plane *plane = exynos_crtc->plane;
        unsigned int crtc_w;
        unsigned int crtc_h;
        crtc_w = crtc->fb->width - x;
        crtc_h = crtc->fb->height - y;
 
+       if (manager->ops->mode_set)
+               manager->ops->mode_set(manager, &crtc->mode);
+
        ret = exynos_plane_mode_set(plane, crtc, crtc->fb, 0, 0, crtc_w, crtc_h,
                                    x, y, crtc_w, crtc_h);
        if (ret)
 
  * @initialize: initializes the manager with drm_dev
  * @remove: cleans up the manager for removal
  * @dpms: control device power.
+ * @mode_set: set the given mode to the manager
  * @commit: set current hw specific display mode to hw.
  * @enable_vblank: specific driver callback for enabling vblank interrupt.
  * @disable_vblank: specific driver callback for disabling vblank interrupt.
                                struct drm_device *drm_dev, int pipe);
        void (*remove)(struct exynos_drm_manager *mgr);
        void (*dpms)(struct exynos_drm_manager *mgr, int mode);
+       void (*mode_set)(struct exynos_drm_manager *mgr,
+                               const struct drm_display_mode *mode);
        void (*commit)(struct exynos_drm_manager *mgr);
        int (*enable_vblank)(struct exynos_drm_manager *mgr);
        void (*disable_vblank)(struct exynos_drm_manager *mgr);