diff options
author | Inki Dae <inki.dae@samsung.com> | 2014-10-24 17:43:14 +0900 |
---|---|---|
committer | Inki Dae <inki.dae@samsung.com> | 2014-10-24 17:56:03 +0900 |
commit | dd6b323f8f9c6bfde6c8414f311df86cd6bebe8b (patch) | |
tree | c21ebbce6764f338c611ca48080fc8606e22af32 | |
parent | ceb664dbdf47c48d356f2d0ed3ab7ae33b07cb53 (diff) | |
download | linux-3.10-dd6b323f8f9c6bfde6c8414f311df86cd6bebe8b.tar.gz linux-3.10-dd6b323f8f9c6bfde6c8414f311df86cd6bebe8b.tar.bz2 linux-3.10-dd6b323f8f9c6bfde6c8414f311df86cd6bebe8b.zip |
drm/panel: s6e63j0x03: correct lcd power status
This patch makes sure for panel driver to have correct power status.
Change-Id: I33e6e64969ab6f2679f5f1f889ccfde27d81c901
Signed-off-by: Inki Dae <inki.dae@samsung.com>
-rw-r--r-- | drivers/gpu/drm/panel/panel-s6e63j0x03.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/drivers/gpu/drm/panel/panel-s6e63j0x03.c b/drivers/gpu/drm/panel/panel-s6e63j0x03.c index d07eb0a3d42..de7bdfa6615 100644 --- a/drivers/gpu/drm/panel/panel-s6e63j0x03.c +++ b/drivers/gpu/drm/panel/panel-s6e63j0x03.c @@ -478,10 +478,12 @@ static const struct backlight_ops s6e63j0x03_bl_ops = { .update_status = s6e63j0x03_set_brightness, }; +static int s6e63j0x03_enable(struct drm_panel *panel); static int s6e63j0x03_disable(struct drm_panel *panel) { struct s6e63j0x03 *ctx = panel_to_s6e63j0x03(panel); + int ret; s6e63j0x03_dcs_write_seq_static(ctx, MIPI_DCS_SET_DISPLAY_OFF); s6e63j0x03_dcs_write_seq_static(ctx, MIPI_DCS_ENTER_SLEEP_MODE); @@ -491,7 +493,13 @@ static int s6e63j0x03_disable(struct drm_panel *panel) usleep_range(ctx->power_off_delay * 1000, (ctx->power_off_delay + 1) * 1000); - return s6e63j0x03_power_off(ctx); + ret = s6e63j0x03_power_off(ctx); + if (ret < 0) + return s6e63j0x03_enable(panel); + + ctx->power = FB_BLANK_POWERDOWN; + + return ret; } static int s6e63j0x03_enable(struct drm_panel *panel) @@ -509,7 +517,9 @@ static int s6e63j0x03_enable(struct drm_panel *panel) ret = ctx->error; if (ret < 0) - s6e63j0x03_disable(panel); + return s6e63j0x03_disable(panel); + + ctx->power = FB_BLANK_UNBLANK; return ret; } |