Commit 22d6d676261a5e204a7078df21459747750c92fb

Authored by Tomi Valkeinen
1 parent 03329ace1d

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>

Showing 3 changed files with 7 additions and 7 deletions Side-by-side Diff

drivers/video/omap2/displays/panel-taal.c
... ... @@ -932,7 +932,7 @@
932 932  
933 933 taal_hw_reset(dssdev);
934 934  
935   - omapdss_dsi_display_disable(dssdev, true);
  935 + omapdss_dsi_display_disable(dssdev, true, false);
936 936 err0:
937 937 return r;
938 938 }
... ... @@ -955,7 +955,7 @@
955 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 960 td->enabled = 0;
961 961 }
drivers/video/omap2/dss/dsi.c
... ... @@ -3763,9 +3763,9 @@
3763 3763 }
3764 3764  
3765 3765 static 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 3769 dsi_enter_ulps();
3770 3770  
3771 3771 /* disable interface */
... ... @@ -3848,7 +3848,7 @@
3848 3848 EXPORT_SYMBOL(omapdss_dsi_display_enable);
3849 3849  
3850 3850 void omapdss_dsi_display_disable(struct omap_dss_device *dssdev,
3851   - bool disconnect_lanes)
  3851 + bool disconnect_lanes, bool enter_ulps)
3852 3852 {
3853 3853 DSSDBG("dsi_display_disable\n");
3854 3854  
... ... @@ -3858,7 +3858,7 @@
3858 3858  
3859 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 3863 enable_clocks(0);
3864 3864 dsi_enable_pll_clock(0);
include/video/omapdss.h
... ... @@ -590,7 +590,7 @@
590 590  
591 591 int omapdss_dsi_display_enable(struct omap_dss_device *dssdev);
592 592 void omapdss_dsi_display_disable(struct omap_dss_device *dssdev,
593   - bool disconnect_lanes);
  593 + bool disconnect_lanes, bool enter_ulps);
594 594  
595 595 int omapdss_dpi_display_enable(struct omap_dss_device *dssdev);
596 596 void omapdss_dpi_display_disable(struct omap_dss_device *dssdev);