From: Eric Anholt Date: Mon, 6 Mar 2017 20:17:16 +0000 (-0800) Subject: panel-raspberrypi-touchscreen: Round up clk rate to fix DSI panel. X-Git-Tag: archive/raspbian/4.9.82-1+deb9u3+rpi1_jessie~5^2~291 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=dd45a23ad9b05b10ece2cbc76aca76b80e367ec1;p=linux-4.9.git 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 --- diff --git a/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c b/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c index 1a536fe4d040..7f315f04b109 100644 --- 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_touchscreen_modes[] = { #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,