@@ -1068,7 +1068,8 @@ static int omapfb_pan_display(struct fb_var_screeninfo *var,
{
struct omapfb_info *ofbi = FB2OFB(fbi);
struct fb_var_screeninfo new_var;
- int r;
+ int r = 0;
+ struct omap_dss_device *display = fb2display(fbi);
DBG("pan_display(%d)\n", FB2OFB(fbi)->id);
@@ -1086,6 +1087,11 @@ static int omapfb_pan_display(struct fb_var_screeninfo *var,
r = omapfb_apply_changes(fbi, 0);
+ if (display && display->driver->update &&
+ display->driver->get_update_mode(display)
+ == OMAP_DSS_UPDATE_MANUAL)
+ display->driver->update(display, 0, 0, var->xres, var->yres);
+
omapfb_put_mem_region(ofbi->region);
return r;