drm: atmel-hlcdc: prefer a lower pixel-clock than requested
authorPeter Rosin <peda@axentia.se>
Wed, 18 Dec 2019 12:28:28 +0000 (14:28 +0200)
committerSam Ravnborg <sam@ravnborg.org>
Mon, 6 Jan 2020 18:54:27 +0000 (19:54 +0100)
The intention was to only select a higher pixel-clock rate than the
requested, if a slight overclocking would result in a rate significantly
closer to the requested rate than if the conservative lower pixel-clock
rate is selected. The fixed patch has the logic the other way around and
actually prefers the higher frequency. Fix that.

Signed-off-by: Peter Rosin <peda@axentia.se>
Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Fixes: 9946a3a9dbed ("drm/atmel-hlcdc: allow selecting a higher pixel-clock than requested")
Reported-by: Claudiu Beznea <claudiu.beznea@microchip.com>
Tested-by: Claudiu Beznea <claudiu.beznea@microchip.com>
Cc: Boris Brezillon <boris.brezillon@bootlin.com>
Cc: <stable@vger.kernel.org> # v4.20+
Link: https://patchwork.freedesktop.org/patch/msgid/1576672109-22707-6-git-send-email-claudiu.beznea@microchip.com
drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c

index 721fa88..1098513 100644 (file)
@@ -121,8 +121,8 @@ static void atmel_hlcdc_crtc_mode_set_nofb(struct drm_crtc *c)
                int div_low = prate / mode_rate;
 
                if (div_low >= 2 &&
-                   ((prate / div_low - mode_rate) <
-                    10 * (mode_rate - prate / div)))
+                   (10 * (prate / div_low - mode_rate) <
+                    (mode_rate - prate / div)))
                        /*
                         * At least 10 times better when using a higher
                         * frequency than requested, instead of a lower.