summaryrefslogtreecommitdiff
path: root/drivers/video/omap2/omapfb
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/video/omap2/omapfb')
-rw-r--r--drivers/video/omap2/omapfb/omapfb-ioctl.c16
-rw-r--r--drivers/video/omap2/omapfb/omapfb-main.c10
2 files changed, 16 insertions, 10 deletions
diff --git a/drivers/video/omap2/omapfb/omapfb-ioctl.c b/drivers/video/omap2/omapfb/omapfb-ioctl.c
index d30b45d7264..c9879f3a204 100644
--- a/drivers/video/omap2/omapfb/omapfb-ioctl.c
+++ b/drivers/video/omap2/omapfb/omapfb-ioctl.c
@@ -303,6 +303,18 @@ static int omapfb_update_window(struct fb_info *fbi,
return display->driver->update(display, x, y, w, h);
}
+static int omapfb_update_display(struct fb_info *fbi)
+{
+ struct omap_dss_device *display = fb2display(fbi);
+ u16 dw, dh;
+
+ if (!display)
+ return 0;
+
+ display->driver->get_resolution(display, &dw, &dh);
+ return display->driver->update(display, 0, 0, dw, dh);
+}
+
int omapfb_set_update_mode(struct fb_info *fbi,
enum omapfb_update_mode mode)
{
@@ -604,6 +616,10 @@ int omapfb_ioctl(struct fb_info *fbi, unsigned int cmd, unsigned long arg)
int r = 0;
switch (cmd) {
+ case FBIO_UPDATE_DISPLAY:
+ DBG("ioctl FBIO_UPDATE_DISPLAY\n");
+ r = omapfb_update_display(fbi);
+ break;
case OMAPFB_SYNC_GFX:
DBG("ioctl SYNC_GFX\n");
if (!display || !display->driver->sync) {
diff --git a/drivers/video/omap2/omapfb/omapfb-main.c b/drivers/video/omap2/omapfb/omapfb-main.c
index 856917b3361..f5f57a4e9a2 100644
--- a/drivers/video/omap2/omapfb/omapfb-main.c
+++ b/drivers/video/omap2/omapfb/omapfb-main.c
@@ -2326,8 +2326,6 @@ static int omapfb_init_display(struct omapfb2_device *fbdev,
d->fbdev = fbdev;
if (dssdev->caps & OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE) {
- u16 w, h;
-
if (auto_update) {
omapfb_start_auto_update(fbdev, dssdev);
d->update_mode = OMAPFB_AUTO_UPDATE;
@@ -2342,14 +2340,6 @@ static int omapfb_init_display(struct omapfb2_device *fbdev,
return r;
}
}
-
- dssdrv->get_resolution(dssdev, &w, &h);
- r = dssdrv->update(dssdev, 0, 0, w, h);
- if (r) {
- dev_err(fbdev->dev,
- "Failed to update display\n");
- return r;
- }
} else {
d->update_mode = OMAPFB_AUTO_UPDATE;
}