DIV_ROUND_CLOSEST naturally selects the nearest divider, making the
manual 10x proximity check redundant. Drop it and switch from
DIV_ROUND_UP accordingly.

Signed-off-by: Manikandan Muralidharan <[email protected]>
---
 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c | 16 ++--------------
 1 file changed, 2 insertions(+), 14 deletions(-)

diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c 
b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c
index 9673fbce42a7..f30138da1ed8 100644
--- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c
+++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c
@@ -112,28 +112,16 @@ static void atmel_hlcdc_crtc_mode_set_nofb(struct 
drm_crtc *c)
                mask |= ATMEL_HLCDC_CLKSEL;
        }
 
-       div = DIV_ROUND_UP(prate, mode_rate);
+       div = DIV_ROUND_CLOSEST(prate, mode_rate);
        if (div < 2) {
                div = 2;
        } else if (ATMEL_HLCDC_CLKDIV(div) & ~ATMEL_HLCDC_CLKDIV_MASK) {
                /* The divider ended up too big, try a lower base rate. */
                cfg &= ~ATMEL_HLCDC_CLKSEL;
                prate /= 2;
-               div = DIV_ROUND_UP(prate, mode_rate);
+               div = DIV_ROUND_CLOSEST(prate, mode_rate);
                if (ATMEL_HLCDC_CLKDIV(div) & ~ATMEL_HLCDC_CLKDIV_MASK)
                        div = ATMEL_HLCDC_CLKDIV_MASK;
-       } else {
-               int div_low = prate / mode_rate;
-
-               if (div_low >= 2 &&
-                   (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.
-                        * So, go with that.
-                        */
-                       div = div_low;
        }
 
        cfg |= ATMEL_HLCDC_CLKDIV(div);
-- 
2.25.1

Reply via email to