]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
OMAPDSS: clean up dss_mgr_set_timings
authorTomi Valkeinen <tomi.valkeinen@ti.com>
Thu, 9 Aug 2012 15:13:13 +0000 (18:13 +0300)
committerTomi Valkeinen <tomi.valkeinen@ti.com>
Fri, 7 Sep 2012 17:02:11 +0000 (20:02 +0300)
dss_mgr_set_timings() can only be called when the output is not active.
This means that most of the code in the function is extra, as there's no
need to write the values to registers, etc, because that will be handled
when the output will be enabled.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drivers/video/omap2/dss/apply.c

index 53629dd0291b42f3bc8594e5f3ad38f96208e900..385b6df9925dbc2dce7568c6c73994f8404ee886 100644 (file)
@@ -1314,21 +1314,19 @@ void dss_mgr_set_timings(struct omap_overlay_manager *mgr,
                const struct omap_video_timings *timings)
 {
        unsigned long flags;
-
-       mutex_lock(&apply_lock);
+       struct mgr_priv_data *mp = get_mgr_priv(mgr);
 
        spin_lock_irqsave(&data_lock, flags);
 
-       dss_apply_mgr_timings(mgr, timings);
-
-       dss_write_regs();
-       dss_set_go_bits();
+       if (mp->updating) {
+               DSSERR("cannot set timings for %s: manager needs to be disabled\n",
+                       mgr->name);
+               goto out;
+       }
 
+       dss_apply_mgr_timings(mgr, timings);
+out:
        spin_unlock_irqrestore(&data_lock, flags);
-
-       wait_pending_extra_info_updates();
-
-       mutex_unlock(&apply_lock);
 }
 
 static void dss_apply_mgr_lcd_config(struct omap_overlay_manager *mgr,