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
