From 5e80a986dd6778fd3cdf91df805f8cbcd410d18f Mon Sep 17 00:00:00 2001 From: Saleem Abdulrasool Date: Sun, 30 Jan 2011 13:17:25 -0800 Subject: [PATCH] siihdmi: remove siihdmi_ps_to_hz in favour of PICOS2KHZ --- drivers/video/mxc/siihdmi.c | 29 +++++++++-------------------- 1 file changed, 9 insertions(+), 20 deletions(-) diff --git a/drivers/video/mxc/siihdmi.c b/drivers/video/mxc/siihdmi.c index f48ac0f2d2d..05a29a9cd19 100644 --- a/drivers/video/mxc/siihdmi.c +++ b/drivers/video/mxc/siihdmi.c @@ -322,19 +322,6 @@ static void siihdmi_parse_cea861_timing_block(struct siihdmi_tx *tx, } while (index < cea->dtd_offset - offset); } -static inline unsigned long siihdmi_ps_to_hz(const unsigned long ps) -{ - unsigned long long numerator = 1000000000000ull; - - if (ps == 0) - return 0; - - /* freq = 1 / time; 10^12 ps = 1s; 10^12/ps = freq */ - do_div(numerator, ps); - - return (unsigned long) numerator; -} - static void siihdmi_set_vmode_registers(struct siihdmi_tx *tx, struct fb_var_screeninfo *var) { @@ -353,13 +340,15 @@ static void siihdmi_set_vmode_registers(struct siihdmi_tx *tx, BUILD_BUG_ON(sizeof(vmode) != 8); - pixclk = siihdmi_ps_to_hz(var->pixclock); + pixclk = var->pixclock ? PICOS2KHZ(var->pixclock) : 0; htotal = var->xres + var->left_margin + var->hsync_len + var->right_margin; vtotal = var->yres + var->upper_margin + var->vsync_len + var->lower_margin; - refresh = (htotal * vtotal) / pixclk; + refresh = (htotal * vtotal) / (pixclk * 1000ul); + + BUG_ON(pixclk == 0); /* basic video mode data */ - vmode[PIXEL_CLOCK] = pixclk / 10000; + vmode[PIXEL_CLOCK] = pixclk / 10; vmode[REFRESH_RATE] = refresh; vmode[X_RESOLUTION] = htotal; vmode[Y_RESOLUTION] = vtotal; @@ -717,9 +706,9 @@ static void siihdmi_dump_modelines(const struct list_head * const modelines) const struct fb_videomode * const mode = &entry->mode; const bool interlaced = (mode->vmode & FB_VMODE_INTERLACED); const bool double_scan = (mode->vmode & FB_VMODE_DOUBLE); - u32 pixel_clock = siihdmi_ps_to_hz(mode->pixclock); + u32 pixclk = mode->pixclock ? PICOS2KHZ(mode->pixclock) : 0; - pixel_clock >>= (double_scan ? 1 : 0); + pixclk >>= (double_scan ? 1 : 0); INFO(" \"%dx%d@%d%s\" %lu.%.2lu %u %u %u %u %u %u %u %u %chsync %cvsync\n", /* mode name */ @@ -728,8 +717,8 @@ static void siihdmi_dump_modelines(const struct list_head * const modelines) interlaced ? "i" : (double_scan ? "d" : ""), /* dot clock frequency (MHz) */ - pixel_clock / 1000000ul, - pixel_clock % 1000000ul, + pixclk / 1000ul, + pixclk % 1000ul, /* horizontal timings */ mode->xres,