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 @@ static int taal_power_on(struct omap_dss_device *dssdev) 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; } 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 @@ static int dsi_display_init_dsi(struct omap_dss_device *dssdev) } 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 @@ int omapdss_dsi_display_enable(struct omap_dss_device *dssdev) 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); diff --git a/include/video/omapdss.h b/include/video/omapdss.h index 0a10a234a989..44a864648c15 100644 --- a/include/video/omapdss.h +++ b/include/video/omapdss.h @@ -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);