From 8a85c98dcf840a060db6c51d071ad6cd1308d2be Mon Sep 17 00:00:00 2001 From: tanhua1 Date: Wed, 27 May 2020 16:21:25 +0800 Subject: [PATCH] drm/msm/sde: limit the backlight min brightness as bl_min_level High-precision brightness will set the brightness level from bl_min_level to bl_max_level. If we enable 12bit brightness, in fact, the hardware will not tolerate very low brightness such as level '1 - 9' in liberty, these levels cause the backlight unstable. So we have to define the minimum brightness by 'qcom,mdss-dsi-bl-min-level' that the driver does not set the backlight level below that. Change-Id: I0c1c76b959e33c2eaa551cd30875e05e983e5ecb Signed-off-by: tanhua1 Reviewed-on: https://gerrit.mot.com/1583985 SLTApproved: Slta Waiver SME-Granted: SME Approvals Granted Tested-by: Jira Key Reviewed-by: Xiangpo Zhao Reviewed-by: Hua Tan Submit-Approved: Jira Key --- msm/sde/sde_connector.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/msm/sde/sde_connector.c b/msm/sde/sde_connector.c index a471333b3293..ee47ecab9170 100644 --- a/msm/sde/sde_connector.c +++ b/msm/sde/sde_connector.c @@ -88,6 +88,9 @@ static int sde_backlight_device_update_status(struct backlight_device *bd) if (brightness > display->panel->bl_config.bl_max_level) brightness = display->panel->bl_config.bl_max_level; + if(brightness && brightness < display->panel->bl_config.bl_min_level) + brightness = display->panel->bl_config.bl_min_level; + /* map UI brightness into driver backlight level with rounding */ bl_lvl = mult_frac(brightness, display->panel->bl_config.bl_max_level, display->panel->bl_config.brightness_max_level);