From 80e3133dac98453b2189742dff8629371a5b9c3a Mon Sep 17 00:00:00 2001 From: Rahul Dadhich Date: Fri, 23 Mar 2018 11:49:21 +0530 Subject: [PATCH] VIGS: Fix first turning off display after start emulator Change-Id: I0fa09108f1d2f07ae7991fa0fb09d111ee49a363 Signed-off-by: Rahul Dadhich --- drivers/gpu/drm/vigs/vigs_crtc.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/drivers/gpu/drm/vigs/vigs_crtc.c b/drivers/gpu/drm/vigs/vigs_crtc.c index b3daee6ae4b1..8feace301502 100644 --- a/drivers/gpu/drm/vigs/vigs_crtc.c +++ b/drivers/gpu/drm/vigs/vigs_crtc.c @@ -104,6 +104,7 @@ static void vigs_crtc_dpms(struct drm_crtc *crtc, int mode) struct vigs_device *vigs_dev = crtc->dev->dev_private; int blank, i; struct fb_event event; + static bool backlight_initialized = false; DRM_DEBUG_KMS("enter: in_dpms = %d, mode = %d\n", vigs_dev->in_dpms, @@ -163,6 +164,20 @@ static void vigs_crtc_dpms(struct drm_crtc *crtc, int mode) */ vigs_dev->in_dpms = true; + if (!backlight_initialized && blank == FB_BLANK_POWERDOWN){ + /* + * We have to avoid turning off display backlight + * before turning it on. This is maru backlight + * driver limitation because Frame buffer driver + * do not control backlight driver and cannot + * turn on backlight initially. + * So let turn backlight on first time. + */ + blank = FB_BLANK_UNBLANK; + fb_notifier_call_chain(FB_EVENT_BLANK, &event); + blank = FB_BLANK_POWERDOWN; + backlight_initialized = true; + } fb_notifier_call_chain(FB_EVENT_BLANK, &event); vigs_dev->in_dpms = false; -- 2.34.1