diff options
author | Steve Longerbeam <slongerbeam@gmail.com> | 2014-12-18 21:00:26 -0500 |
---|---|---|
committer | Philipp Zabel <p.zabel@pengutronix.de> | 2015-01-07 13:15:04 -0500 |
commit | 503f1631ae8f42a386193c92cc4488d35978352e (patch) | |
tree | f90982a4e002c56599a7693270d6f035991297dc /drivers/gpu/ipu-v3 | |
parent | b6835a719aaa5ee6f493c94cb8b1ff9ad13f5a18 (diff) |
gpu: ipu-di: Switch to DIV_ROUND_CLOSEST for DI clock divider calc
We can use the DIV_ROUND_CLOSEST() macro when calculating the DI
clock divider, rounded to nearest int.
Suggested-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Steve Longerbeam <steve_longerbeam@mentor.com>
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Diffstat (limited to 'drivers/gpu/ipu-v3')
-rw-r--r-- | drivers/gpu/ipu-v3/ipu-di.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/drivers/gpu/ipu-v3/ipu-di.c b/drivers/gpu/ipu-v3/ipu-di.c index d95fbd0f6952..b61d6be97602 100644 --- a/drivers/gpu/ipu-v3/ipu-di.c +++ b/drivers/gpu/ipu-v3/ipu-di.c | |||
@@ -440,8 +440,7 @@ static void ipu_di_config_clock(struct ipu_di *di, | |||
440 | clk_set_rate(clk, sig->mode.pixelclock); | 440 | clk_set_rate(clk, sig->mode.pixelclock); |
441 | 441 | ||
442 | in_rate = clk_get_rate(clk); | 442 | in_rate = clk_get_rate(clk); |
443 | div = (in_rate + sig->mode.pixelclock / 2) / | 443 | div = DIV_ROUND_CLOSEST(in_rate, sig->mode.pixelclock); |
444 | sig->mode.pixelclock; | ||
445 | if (div == 0) | 444 | if (div == 0) |
446 | div = 1; | 445 | div = 1; |
447 | 446 | ||
@@ -459,8 +458,7 @@ static void ipu_di_config_clock(struct ipu_di *di, | |||
459 | unsigned div, error; | 458 | unsigned div, error; |
460 | 459 | ||
461 | clkrate = clk_get_rate(di->clk_ipu); | 460 | clkrate = clk_get_rate(di->clk_ipu); |
462 | div = (clkrate + sig->mode.pixelclock / 2) / | 461 | div = DIV_ROUND_CLOSEST(clkrate, sig->mode.pixelclock); |
463 | sig->mode.pixelclock; | ||
464 | rate = clkrate / div; | 462 | rate = clkrate / div; |
465 | 463 | ||
466 | error = rate / (sig->mode.pixelclock / 1000); | 464 | error = rate / (sig->mode.pixelclock / 1000); |
@@ -482,8 +480,7 @@ static void ipu_di_config_clock(struct ipu_di *di, | |||
482 | clk_set_rate(clk, sig->mode.pixelclock); | 480 | clk_set_rate(clk, sig->mode.pixelclock); |
483 | 481 | ||
484 | in_rate = clk_get_rate(clk); | 482 | in_rate = clk_get_rate(clk); |
485 | div = (in_rate + sig->mode.pixelclock / 2) / | 483 | div = DIV_ROUND_CLOSEST(in_rate, sig->mode.pixelclock); |
486 | sig->mode.pixelclock; | ||
487 | if (div == 0) | 484 | if (div == 0) |
488 | div = 1; | 485 | div = 1; |
489 | 486 | ||