aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorTomi Valkeinen <tomi.valkeinen@ti.com>2010-10-11 04:33:30 -0400
committerTomi Valkeinen <tomi.valkeinen@ti.com>2011-05-11 07:20:17 -0400
commit22d6d676261a5e204a7078df21459747750c92fb (patch)
tree45b0e5811f00a83123bc6551c1f493cbc2762e16 /drivers
parent03329ace1dc7dc9319f6f405381d898fc66fb2cb (diff)
OMAP: DSS2: DSI: add parameter to enter ulps on disable
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>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/video/omap2/displays/panel-taal.c4
-rw-r--r--drivers/video/omap2/dss/dsi.c8
2 files changed, 6 insertions, 6 deletions
diff --git a/drivers/video/omap2/displays/panel-taal.c b/drivers/video/omap2/displays/panel-taal.c
index 04d9bc94c5b3..44d73f779ebe 100644
--- a/drivers/video/omap2/displays/panel-taal.c
+++ b/drivers/video/omap2/displays/panel-taal.c
@@ -932,7 +932,7 @@ err:
932 932
933 taal_hw_reset(dssdev); 933 taal_hw_reset(dssdev);
934 934
935 omapdss_dsi_display_disable(dssdev, true); 935 omapdss_dsi_display_disable(dssdev, true, false);
936err0: 936err0:
937 return r; 937 return r;
938} 938}
@@ -955,7 +955,7 @@ static void taal_power_off(struct omap_dss_device *dssdev)
955 taal_hw_reset(dssdev); 955 taal_hw_reset(dssdev);
956 } 956 }
957 957
958 omapdss_dsi_display_disable(dssdev, true); 958 omapdss_dsi_display_disable(dssdev, true, false);
959 959
960 td->enabled = 0; 960 td->enabled = 0;
961} 961}
diff --git a/drivers/video/omap2/dss/dsi.c b/drivers/video/omap2/dss/dsi.c
index 8bc443bae6b1..f54839fa50b1 100644
--- a/drivers/video/omap2/dss/dsi.c
+++ b/drivers/video/omap2/dss/dsi.c
@@ -3763,9 +3763,9 @@ err0:
3763} 3763}
3764 3764
3765static void dsi_display_uninit_dsi(struct omap_dss_device *dssdev, 3765static void dsi_display_uninit_dsi(struct omap_dss_device *dssdev,
3766 bool disconnect_lanes) 3766 bool disconnect_lanes, bool enter_ulps)
3767{ 3767{
3768 if (!dsi.ulps_enabled) 3768 if (enter_ulps && !dsi.ulps_enabled)
3769 dsi_enter_ulps(); 3769 dsi_enter_ulps();
3770 3770
3771 /* disable interface */ 3771 /* disable interface */
@@ -3848,7 +3848,7 @@ err0:
3848EXPORT_SYMBOL(omapdss_dsi_display_enable); 3848EXPORT_SYMBOL(omapdss_dsi_display_enable);
3849 3849
3850void omapdss_dsi_display_disable(struct omap_dss_device *dssdev, 3850void omapdss_dsi_display_disable(struct omap_dss_device *dssdev,
3851 bool disconnect_lanes) 3851 bool disconnect_lanes, bool enter_ulps)
3852{ 3852{
3853 DSSDBG("dsi_display_disable\n"); 3853 DSSDBG("dsi_display_disable\n");
3854 3854
@@ -3858,7 +3858,7 @@ void omapdss_dsi_display_disable(struct omap_dss_device *dssdev,
3858 3858
3859 dsi_display_uninit_dispc(dssdev); 3859 dsi_display_uninit_dispc(dssdev);
3860 3860
3861 dsi_display_uninit_dsi(dssdev, disconnect_lanes); 3861 dsi_display_uninit_dsi(dssdev, disconnect_lanes, enter_ulps);
3862 3862
3863 enable_clocks(0); 3863 enable_clocks(0);
3864 dsi_enable_pll_clock(0); 3864 dsi_enable_pll_clock(0);