aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/bcm27xx/patches-5.15/950-0587-regulator-rpi-panel-attiny-Don-t-read-the-LCD-power-.patch
diff options
context:
space:
mode:
authorÁlvaro Fernández Rojas <noltari@gmail.com>2022-05-16 23:40:32 +0200
committerÁlvaro Fernández Rojas <noltari@gmail.com>2022-05-17 15:11:22 +0200
commit20ea6adbf199097c4f5f591ffee088340630dae4 (patch)
treed6719d95e136611a1c25bbf7789652d6d402779d /target/linux/bcm27xx/patches-5.15/950-0587-regulator-rpi-panel-attiny-Don-t-read-the-LCD-power-.patch
parentbca05bd072180dc38ef740b37ded9572a6db1981 (diff)
downloadupstream-20ea6adbf199097c4f5f591ffee088340630dae4.tar.gz
upstream-20ea6adbf199097c4f5f591ffee088340630dae4.tar.bz2
upstream-20ea6adbf199097c4f5f591ffee088340630dae4.zip
bcm27xx: add support for linux v5.15
Build system: x86_64 Build-tested: bcm2708, bcm2709, bcm2710, bcm2711 Run-tested: bcm2708/RPiB+, bcm2709/RPi3B, bcm2710/RPi3B, bcm2711/RPi4B Signed-off-by: Marty Jones <mj8263788@gmail.com> Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Diffstat (limited to 'target/linux/bcm27xx/patches-5.15/950-0587-regulator-rpi-panel-attiny-Don-t-read-the-LCD-power-.patch')
-rw-r--r--target/linux/bcm27xx/patches-5.15/950-0587-regulator-rpi-panel-attiny-Don-t-read-the-LCD-power-.patch46
1 files changed, 46 insertions, 0 deletions
diff --git a/target/linux/bcm27xx/patches-5.15/950-0587-regulator-rpi-panel-attiny-Don-t-read-the-LCD-power-.patch b/target/linux/bcm27xx/patches-5.15/950-0587-regulator-rpi-panel-attiny-Don-t-read-the-LCD-power-.patch
new file mode 100644
index 0000000000..95bbfe15b8
--- /dev/null
+++ b/target/linux/bcm27xx/patches-5.15/950-0587-regulator-rpi-panel-attiny-Don-t-read-the-LCD-power-.patch
@@ -0,0 +1,46 @@
+From 76035ed0bd7fcc2c0af5a038139b50231b95fa37 Mon Sep 17 00:00:00 2001
+From: Dave Stevenson <dave.stevenson@raspberrypi.com>
+Date: Mon, 29 Nov 2021 18:31:37 +0000
+Subject: [PATCH] regulator/rpi-panel-attiny: Don't read the LCD power
+ status
+
+The I2C to the Atmel is very fussy, and locks up easily on
+Pi0-3 particularly on reads.
+
+The LCD power status is controlled solely by this driver, so
+rather than reading it back from the Atmel, use the cached
+status last set.
+
+Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
+---
+ drivers/regulator/rpi-panel-attiny-regulator.c | 18 +-----------------
+ 1 file changed, 1 insertion(+), 17 deletions(-)
+
+--- a/drivers/regulator/rpi-panel-attiny-regulator.c
++++ b/drivers/regulator/rpi-panel-attiny-regulator.c
+@@ -144,24 +144,8 @@ static int attiny_lcd_power_disable(stru
+ static int attiny_lcd_power_is_enabled(struct regulator_dev *rdev)
+ {
+ struct attiny_lcd *state = rdev_get_drvdata(rdev);
+- unsigned int data;
+- int ret, i;
+
+- mutex_lock(&state->lock);
+-
+- for (i = 0; i < 10; i++) {
+- ret = regmap_read(rdev->regmap, REG_PORTC, &data);
+- if (!ret)
+- break;
+- usleep_range(10000, 12000);
+- }
+-
+- mutex_unlock(&state->lock);
+-
+- if (ret < 0)
+- return ret;
+-
+- return data & PC_RST_BRIDGE_N;
++ return state->port_states[REG_PORTC - REG_PORTA] & PC_RST_BRIDGE_N;
+ }
+
+ static const struct regulator_init_data attiny_regulator_default = {