Some displays need the low end of the curve cropped in order to make
them happy. In that case we still want to have the 0% point, even though
anything between 0% and 5%(example) would be skipped.

Signed-off-by: Alexandru Stan <[email protected]>
---

 drivers/video/backlight/pwm_bl.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/drivers/video/backlight/pwm_bl.c b/drivers/video/backlight/pwm_bl.c
index 5193a72305a2..b24711ddf504 100644
--- a/drivers/video/backlight/pwm_bl.c
+++ b/drivers/video/backlight/pwm_bl.c
@@ -349,6 +349,14 @@ static int pwm_backlight_parse_dt(struct device *dev,
                        /* Fill in the last point, since no line starts here. */
                        table[x2] = y2;
 
+                       /*
+                        * If we don't start at 0 yet we're increasing, assume
+                        * the dts wanted to crop the low end of the range, so
+                        * insert a 0 to provide a display off mode.
+                        */
+                       if (table[0] > 0 && table[0] < table[num_levels - 1])
+                               table[0] = 0;
+
                        /*
                         * As we use interpolation lets remove current
                         * brightness levels table and replace for the
-- 
2.27.0

_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to