<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Helvetica,sans-serif;" dir="ltr">
<p style="margin-top:0;margin-bottom:0">Acked-by: Alex Deucher <alexander.deucher@amd.com><br>
</p>
</div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> amd-gfx <amd-gfx-bounces@lists.freedesktop.org> on behalf of David Francis <David.Francis@amd.com><br>
<b>Sent:</b> Tuesday, November 6, 2018 11:14:46 AM<br>
<b>To:</b> amd-gfx@lists.freedesktop.org<br>
<b>Cc:</b> Francis, David; Samantham@posteo.net; Wentland, Harry; Guttula, Suresh<br>
<b>Subject:</b> [PATCH] drm/amd: Don't fail on backlight = 0</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">Amgpu's backlight update status function was<br>
returning 1 (an error value) when the backlight<br>
property was 0.  This breaks users that assume<br>
0 is a valid backlight value (which is a<br>
correct assumption)<br>
<br>
If the user passes in a backlight value of 0,<br>
tell them everything is fine, then write a value of<br>
1 to hardware.<br>
<br>
Signed-off-by: David Francis <David.Francis@amd.com><br>
Bugzilla: <a href="https://bugs.freedesktop.org/108668">https://bugs.freedesktop.org/108668</a><br>
Fixes: 416615ea9578 ("drm/amd/display: set backlight level limit to 1")<br>
Cc: Suresh.Guttula@amd.com<br>
Cc: Harry.Wentland@amd.com<br>
Cc: Samantham@posteo.net<br>
---<br>
 .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c  | 18 ++++++++++--------<br>
 1 file changed, 10 insertions(+), 8 deletions(-)<br>
<br>
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c<br>
index f8ec8a146663..131e6483d442 100644<br>
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c<br>
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c<br>
@@ -1567,21 +1567,23 @@ static int amdgpu_dm_backlight_update_status(struct backlight_device *bd)<br>
 {<br>
         struct amdgpu_display_manager *dm = bl_get_data(bd);<br>
 <br>
+       /* backlight_pwm_u16_16 parameter is in unsigned 32 bit, 16 bit integer<br>
+        * and 16 bit fractional, where 1.0 is max backlight value.<br>
+        * bd->props.brightness is 8 bit format and needs to be converted by<br>
+        * scaling via copy lower byte to upper byte of 16 bit value.<br>
+        */<br>
+       uint32_t brightness = bd->props.brightness * 0x101;<br>
+<br>
         /*<br>
          * PWM interperts 0 as 100% rather than 0% because of HW<br>
-        * limitation for level 0.So limiting minimum brightness level<br>
+        * limitation for level 0.  So limiting minimum brightness level<br>
          * to 1.<br>
          */<br>
         if (bd->props.brightness < 1)<br>
-               return 1;<br>
+               brightness = 0x101;<br>
 <br>
-       /* backlight_pwm_u16_16 parameter is in unsigned 32 bit, 16 bit integer<br>
-        * and 16 bit fractional, where 1.0 is max backlight value.<br>
-        * bd->props.brightness is 8 bit format and needs to be converted by<br>
-        * scaling via copy lower byte to upper byte of 16 bit value.<br>
-        */<br>
         if (dc_link_set_backlight_level(dm->backlight_link,<br>
-                       (bd->props.brightness * 0x101), 0, 0))<br>
+                       brightness, 0, 0))<br>
                 return 0;<br>
         else<br>
                 return 1;<br>
-- <br>
2.17.1<br>
<br>
_______________________________________________<br>
amd-gfx mailing list<br>
amd-gfx@lists.freedesktop.org<br>
<a href="https://lists.freedesktop.org/mailman/listinfo/amd-gfx">https://lists.freedesktop.org/mailman/listinfo/amd-gfx</a><br>
</div>
</span></font></div>
</body>
</html>