OMAP: DSS2: remove update_mode from omapdss
[pandora-kernel.git] / drivers / video / omap2 / dss / manager.c
index 9aeea50..18a1b92 100644 (file)
@@ -416,8 +416,6 @@ struct overlay_cache_data {
        enum omap_burst_size burst_size;
        u32 fifo_low;
        u32 fifo_high;
-
-       bool manual_update;
 };
 
 struct manager_cache_data {
@@ -437,7 +435,6 @@ struct manager_cache_data {
 
        bool alpha_enabled;
 
-       bool manual_upd_display;
        bool manual_update;
        bool do_manual_update;
 
@@ -539,24 +536,15 @@ static int dss_mgr_wait_for_go(struct omap_overlay_manager *mgr)
        if (!dssdev || dssdev->state != OMAP_DSS_DISPLAY_ACTIVE)
                return 0;
 
+       if (dssdev->caps & OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE)
+               return 0;
+
        if (dssdev->type == OMAP_DISPLAY_TYPE_VENC
                        || dssdev->type == OMAP_DISPLAY_TYPE_HDMI) {
                irq = DISPC_IRQ_EVSYNC_ODD | DISPC_IRQ_EVSYNC_EVEN;
        } else {
-               if (dssdev->caps & OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE) {
-                       enum omap_dss_update_mode mode;
-                       mode = dssdev->driver->get_update_mode(dssdev);
-                       if (mode != OMAP_DSS_UPDATE_AUTO)
-                               return 0;
-
-                       irq = (dssdev->manager->id == OMAP_DSS_CHANNEL_LCD) ?
-                               DISPC_IRQ_FRAMEDONE
-                               : DISPC_IRQ_FRAMEDONE2;
-               } else {
-                       irq = (dssdev->manager->id == OMAP_DSS_CHANNEL_LCD) ?
-                               DISPC_IRQ_VSYNC
-                               : DISPC_IRQ_VSYNC2;
-               }
+               irq = (dssdev->manager->id == OMAP_DSS_CHANNEL_LCD) ?
+                       DISPC_IRQ_VSYNC : DISPC_IRQ_VSYNC2;
        }
 
        mc = &dss_cache.manager_cache[mgr->id];
@@ -617,24 +605,15 @@ int dss_mgr_wait_for_go_ovl(struct omap_overlay *ovl)
        if (!dssdev || dssdev->state != OMAP_DSS_DISPLAY_ACTIVE)
                return 0;
 
+       if (dssdev->caps & OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE)
+               return 0;
+
        if (dssdev->type == OMAP_DISPLAY_TYPE_VENC
                        || dssdev->type == OMAP_DISPLAY_TYPE_HDMI) {
                irq = DISPC_IRQ_EVSYNC_ODD | DISPC_IRQ_EVSYNC_EVEN;
        } else {
-               if (dssdev->caps & OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE) {
-                       enum omap_dss_update_mode mode;
-                       mode = dssdev->driver->get_update_mode(dssdev);
-                       if (mode != OMAP_DSS_UPDATE_AUTO)
-                               return 0;
-
-                       irq = (dssdev->manager->id == OMAP_DSS_CHANNEL_LCD) ?
-                               DISPC_IRQ_FRAMEDONE
-                               : DISPC_IRQ_FRAMEDONE2;
-               } else {
-                       irq = (dssdev->manager->id == OMAP_DSS_CHANNEL_LCD) ?
-                               DISPC_IRQ_VSYNC
-                               : DISPC_IRQ_VSYNC2;
-               }
+               irq = (dssdev->manager->id == OMAP_DSS_CHANNEL_LCD) ?
+                       DISPC_IRQ_VSYNC : DISPC_IRQ_VSYNC2;
        }
 
        oc = &dss_cache.overlay_cache[ovl->id];
@@ -763,7 +742,7 @@ static int configure_overlay(enum omap_plane plane)
        orig_outw = outw;
        orig_outh = outh;
 
-       if (c->manual_update && mc->do_manual_update) {
+       if (mc->manual_update && mc->do_manual_update) {
                unsigned bpp;
                unsigned scale_x_m = w, scale_x_d = outw;
                unsigned scale_y_m = h, scale_y_d = outh;
@@ -928,7 +907,7 @@ static int configure_dispc(void)
                if (!oc->dirty)
                        continue;
 
-               if (oc->manual_update && !mc->do_manual_update)
+               if (mc->manual_update && !mc->do_manual_update)
                        continue;
 
                if (mgr_busy[oc->channel]) {
@@ -976,7 +955,7 @@ static int configure_dispc(void)
                /* We don't need GO with manual update display. LCD iface will
                 * always be turned off after frame, and new settings will be
                 * taken in to use at next update */
-               if (!mc->manual_upd_display)
+               if (!mc->manual_update)
                        dispc_go(i);
        }
 
@@ -1302,11 +1281,6 @@ static int omap_dss_mgr_apply(struct omap_overlay_manager *mgr)
 
                oc->enabled = true;
 
-               oc->manual_update =
-                       dssdev->caps & OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE &&
-                       dssdev->driver->get_update_mode(dssdev) !=
-                               OMAP_DSS_UPDATE_AUTO;
-
                ++num_planes_enabled;
        }
 
@@ -1341,13 +1315,8 @@ static int omap_dss_mgr_apply(struct omap_overlay_manager *mgr)
                mc->trans_enabled = mgr->info.trans_enabled;
                mc->alpha_enabled = mgr->info.alpha_enabled;
 
-               mc->manual_upd_display =
-                       dssdev->caps & OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE;
-
                mc->manual_update =
-                       dssdev->caps & OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE &&
-                       dssdev->driver->get_update_mode(dssdev) !=
-                               OMAP_DSS_UPDATE_AUTO;
+                       dssdev->caps & OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE;
        }
 
        /* XXX TODO: Try to get fifomerge working. The problem is that it