aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/bcm27xx/patches-5.15/950-0516-regulator-rpi-panel-Remove-get_brightness-hook.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/bcm27xx/patches-5.15/950-0516-regulator-rpi-panel-Remove-get_brightness-hook.patch')
-rw-r--r--target/linux/bcm27xx/patches-5.15/950-0516-regulator-rpi-panel-Remove-get_brightness-hook.patch54
1 files changed, 54 insertions, 0 deletions
diff --git a/target/linux/bcm27xx/patches-5.15/950-0516-regulator-rpi-panel-Remove-get_brightness-hook.patch b/target/linux/bcm27xx/patches-5.15/950-0516-regulator-rpi-panel-Remove-get_brightness-hook.patch
new file mode 100644
index 0000000000..81ce244665
--- /dev/null
+++ b/target/linux/bcm27xx/patches-5.15/950-0516-regulator-rpi-panel-Remove-get_brightness-hook.patch
@@ -0,0 +1,54 @@
+From 7019ea2a7587700e366729872bdec56d54842c8c Mon Sep 17 00:00:00 2001
+From: Dave Stevenson <dave.stevenson@raspberrypi.com>
+Date: Tue, 21 Sep 2021 15:32:50 +0100
+Subject: [PATCH] regulator: rpi-panel: Remove get_brightness hook
+
+The driver was implementing a get_brightness function that
+tried to read back the PWM setting of the display to report
+as the current brightness.
+The controller on the display does not support that, therefore
+we end up reporting a brightness of 0, and that confuses
+systemd's backlight service.
+
+Remove the hook so that the framework returns the current
+brightness automatically.
+
+Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
+---
+ .../regulator/rpi-panel-attiny-regulator.c | 23 -------------------
+ 1 file changed, 23 deletions(-)
+
+--- a/drivers/regulator/rpi-panel-attiny-regulator.c
++++ b/drivers/regulator/rpi-panel-attiny-regulator.c
+@@ -207,31 +207,8 @@ static int attiny_update_status(struct b
+ return ret;
+ }
+
+-static int attiny_get_brightness(struct backlight_device *bl)
+-{
+- struct attiny_lcd *state = bl_get_data(bl);
+- struct regmap *regmap = state->regmap;
+- int ret, brightness, i;
+-
+- mutex_lock(&state->lock);
+-
+- for (i = 0; i < 10; i++) {
+- ret = regmap_read(regmap, REG_PWM, &brightness);
+- if (!ret)
+- break;
+- }
+-
+- mutex_unlock(&state->lock);
+-
+- if (ret)
+- return ret;
+-
+- return brightness;
+-}
+-
+ static const struct backlight_ops attiny_bl = {
+ .update_status = attiny_update_status,
+- .get_brightness = attiny_get_brightness,
+ };
+
+ static int attiny_gpio_get_direction(struct gpio_chip *gc, unsigned int off)