summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPer Persson <per.xb.persson@stericsson.com>2011-12-02 10:55:40 +0100
committerPhilippe Langlais <philippe.langlais@stericsson.com>2012-05-22 11:04:20 +0200
commit2177c2737720c8169bed0430d3f68a9f9c23d28e (patch)
treeff481cbdeb3454565da632d0e52a7723591e04f7
parentf1d9dd7a98be91f795ed812c988db6ed9be4f73f (diff)
video: mcde: Avoid set_video_mode when in OFF state
set_video command is avoided when the display device is in powered off state. ST-Ericsson ID: 398840, 399022 ST-Ericsson Linux next: NA ST-Ericsson FOSS-OUT ID: Trivial Change-Id: Ida9ede0cafaecd4bffe18b3fb1aad88bbf07586d Signed-off-by: Per Persson <per.xb.persson@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/40767 Reviewed-by: Anders BAUER <anders.bauer@stericsson.com> Reviewed-by: QABUILD Reviewed-by: Jimmy RUBIN <jimmy.rubin@stericsson.com> Reviewed-by: Jonas ABERG <jonas.aberg@stericsson.com>
-rw-r--r--drivers/video/mcde/mcde_dss.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/video/mcde/mcde_dss.c b/drivers/video/mcde/mcde_dss.c
index eb07cf9534b..044e39ad285 100644
--- a/drivers/video/mcde/mcde_dss.c
+++ b/drivers/video/mcde/mcde_dss.c
@@ -341,15 +341,17 @@ EXPORT_SYMBOL(mcde_dss_try_video_mode);
int mcde_dss_set_video_mode(struct mcde_display_device *ddev,
struct mcde_video_mode *vmode)
{
- int ret;
+ int ret = 0;
struct mcde_video_mode old_vmode;
mutex_lock(&ddev->display_lock);
+ /* Do not perform set_video_mode if power mode is off */
+ if (ddev->get_power_mode(ddev) == MCDE_DISPLAY_PM_OFF)
+ goto power_mode_off;
+
ddev->get_video_mode(ddev, &old_vmode);
- if (memcmp(vmode, &old_vmode, sizeof(old_vmode)) == 0) {
- ret = 0;
+ if (memcmp(vmode, &old_vmode, sizeof(old_vmode)) == 0)
goto same_video_mode;
- }
ret = ddev->set_video_mode(ddev, vmode);
if (ret)
@@ -357,6 +359,7 @@ int mcde_dss_set_video_mode(struct mcde_display_device *ddev,
if (ddev->invalidate_area)
ret = ddev->invalidate_area(ddev, NULL);
+power_mode_off:
same_video_mode:
set_video_mode_failed:
mutex_unlock(&ddev->display_lock);