]> git.karo-electronics.de Git - linux-beck.git/commitdiff
OMAP: DSS2: DSI: add parameter to enter ulps on disable
authorTomi Valkeinen <tomi.valkeinen@ti.com>
Mon, 11 Oct 2010 08:33:30 +0000 (11:33 +0300)
committerTomi Valkeinen <tomi.valkeinen@ti.com>
Wed, 11 May 2011 11:20:17 +0000 (14:20 +0300)
Add parameter to omapdss_dsi_display_disable() which the panel driver
can use to tell if the DSI lanes should be put to ULPS before disabling
the interface.

This can be used to skip ULPS entry in cases where the panel doesn't
care about ULPS state, for example when the panel will be reset, or when
the display interface will be enabled again right after the disable.

This will speed up the operation considerably in cases where entering
ULPS would fail with timeout, and the panel driver isn't even interested
in entering ULPS.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drivers/video/omap2/displays/panel-taal.c
drivers/video/omap2/dss/dsi.c
include/video/omapdss.h

index 04d9bc94c5b317974d4ea067e57ce2176e6083ee..44d73f779ebed5fa515852a827ca155bcad512ce 100644 (file)
@@ -932,7 +932,7 @@ err:
 
        taal_hw_reset(dssdev);
 
-       omapdss_dsi_display_disable(dssdev, true);
+       omapdss_dsi_display_disable(dssdev, true, false);
 err0:
        return r;
 }
@@ -955,7 +955,7 @@ static void taal_power_off(struct omap_dss_device *dssdev)
                taal_hw_reset(dssdev);
        }
 
-       omapdss_dsi_display_disable(dssdev, true);
+       omapdss_dsi_display_disable(dssdev, true, false);
 
        td->enabled = 0;
 }
index 8bc443bae6b1ddc0b287256102b173835ed89730..f54839fa50b19371fdb873cb240d2209b36f7944 100644 (file)
@@ -3763,9 +3763,9 @@ err0:
 }
 
 static void dsi_display_uninit_dsi(struct omap_dss_device *dssdev,
-               bool disconnect_lanes)
+               bool disconnect_lanes, bool enter_ulps)
 {
-       if (!dsi.ulps_enabled)
+       if (enter_ulps && !dsi.ulps_enabled)
                dsi_enter_ulps();
 
        /* disable interface */
@@ -3848,7 +3848,7 @@ err0:
 EXPORT_SYMBOL(omapdss_dsi_display_enable);
 
 void omapdss_dsi_display_disable(struct omap_dss_device *dssdev,
-               bool disconnect_lanes)
+               bool disconnect_lanes, bool enter_ulps)
 {
        DSSDBG("dsi_display_disable\n");
 
@@ -3858,7 +3858,7 @@ void omapdss_dsi_display_disable(struct omap_dss_device *dssdev,
 
        dsi_display_uninit_dispc(dssdev);
 
-       dsi_display_uninit_dsi(dssdev, disconnect_lanes);
+       dsi_display_uninit_dsi(dssdev, disconnect_lanes, enter_ulps);
 
        enable_clocks(0);
        dsi_enable_pll_clock(0);
index 0a10a234a989be555e32d597636a21b2433d38ba..44a864648c157e15991365ae4088a7e4257b424a 100644 (file)
@@ -590,7 +590,7 @@ void omap_dsi_release_vc(struct omap_dss_device *dssdev, int channel);
 
 int omapdss_dsi_display_enable(struct omap_dss_device *dssdev);
 void omapdss_dsi_display_disable(struct omap_dss_device *dssdev,
-               bool disconnect_lanes);
+               bool disconnect_lanes, bool enter_ulps);
 
 int omapdss_dpi_display_enable(struct omap_dss_device *dssdev);
 void omapdss_dpi_display_disable(struct omap_dss_device *dssdev);