[PATCH 2/3] backlight: pwm_bl: Artificially add 0% during interpolation
From: Alexandru Stan
Date: Tue Jul 21 2020 - 00:27:24 EST
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 <amstan@xxxxxxxxxxxx>
---
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