aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/brcm2708/patches-4.14/950-0128-panel-raspberrypi-touchscreen-Round-up-clk-rate-to-f.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/brcm2708/patches-4.14/950-0128-panel-raspberrypi-touchscreen-Round-up-clk-rate-to-f.patch')
-rw-r--r--target/linux/brcm2708/patches-4.14/950-0128-panel-raspberrypi-touchscreen-Round-up-clk-rate-to-f.patch35
1 files changed, 35 insertions, 0 deletions
diff --git a/target/linux/brcm2708/patches-4.14/950-0128-panel-raspberrypi-touchscreen-Round-up-clk-rate-to-f.patch b/target/linux/brcm2708/patches-4.14/950-0128-panel-raspberrypi-touchscreen-Round-up-clk-rate-to-f.patch
new file mode 100644
index 0000000000..a61dc66bf6
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.14/950-0128-panel-raspberrypi-touchscreen-Round-up-clk-rate-to-f.patch
@@ -0,0 +1,35 @@
+From 7f98947db09ad419ca73082230ade1f29f18bd82 Mon Sep 17 00:00:00 2001
+From: Eric Anholt <eric@anholt.net>
+Date: Mon, 6 Mar 2017 12:17:16 -0800
+Subject: [PATCH 128/454] panel-raspberrypi-touchscreen: Round up clk rate to
+ fix DSI panel.
+
+Commit 488f9bc8e3def93e0baef53cee2026c2cb0d8956 slightly increased the
+reported rate of PLLD, so the clk driver decided that PLLD/3/8 was now
+higher than our requested pixel clock rate and rejected it in favor of
+PLLD/4/8, which then ran the pixel clock way out of spec.
+
+By bumping the requested clock rate just slightly, we get back to
+PLLD/3/8 like we wanted and the panel displays content again.
+
+Signed-off-by: Eric Anholt <eric@anholt.net>
+---
+ drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+--- a/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c
++++ b/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c
+@@ -220,7 +220,12 @@ static const struct drm_display_mode rpi
+ #define HBP 46
+ #define HFP ((PIXEL_CLOCK / (VTOTAL * VREFRESH)) - (HACT + HSW + HBP))
+
+- .clock = PIXEL_CLOCK / 1000,
++ /* Round up the pixel clock a bit (10khz), so that the
++ * "don't run things faster than the requested clock
++ * rate" rule of the clk driver doesn't reject the
++ * divide-by-3 mode due to rounding error.
++ */
++ .clock = PIXEL_CLOCK / 1000 + 10,
+ .hdisplay = HACT,
+ .hsync_start = HACT + HFP,
+ .hsync_end = HACT + HFP + HSW,