From d50c7d4be150b2252c0d2e16cfcf69643bdd6dc9 Mon Sep 17 00:00:00 2001 From: Wolfgang Denk Date: Sun, 19 Oct 2008 02:35:48 +0200 Subject: [PATCH] strmhz(): Round numbers when printing clock frequencies Round clock frequencies for printing. Many boards printed off clock frequencies like 399 MHz instead of the exact 400 MHz because numberes were not rounded. This is fixed now. Signed-off-by: Wolfgang Denk --- include/common.h | 5 +++-- lib_generic/strmhz.c | 6 ++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/include/common.h b/include/common.h index e65904413..b8a654a8a 100644 --- a/include/common.h +++ b/include/common.h @@ -692,8 +692,9 @@ void __attribute__((weak)) show_boot_progress (int val); #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) -#define DIV_ROUND_UP(n,d) (((n) + (d) - 1) / (d)) -#define roundup(x, y) ((((x) + ((y) - 1)) / (y)) * (y)) +#define DIV_ROUND(n,d) (((n) + ((d)/2)) / (d)) +#define DIV_ROUND_UP(n,d) (((n) + (d) - 1) / (d)) +#define roundup(x, y) ((((x) + ((y) - 1)) / (y)) * (y)) #define ALIGN(x,a) __ALIGN_MASK((x),(typeof(x))(a)-1) #define __ALIGN_MASK(x,mask) (((x)+(mask))&~(mask)) diff --git a/lib_generic/strmhz.c b/lib_generic/strmhz.c index d0b6bc60d..342cf2b21 100644 --- a/lib_generic/strmhz.c +++ b/lib_generic/strmhz.c @@ -27,9 +27,11 @@ char *strmhz (char *buf, long hz) long l, n; long m; - n = hz / 1000000L; + n = DIV_ROUND(hz, 1000000L); l = sprintf (buf, "%ld", n); - m = (hz % 1000000L) / 1000L; + + hz -= n * 1000000L; + m = DIV_ROUND(hz, 1000L); if (m != 0) sprintf (buf + l, ".%03ld", m); return (buf);