• Tomi Valkeinen's avatar
    OMAPDSS: fix dss_fck clock rate rounding · 648a55e1
    Tomi Valkeinen authored
    DSS func clock is calculated with prate / div * m. However, the current
    omapdss code calculates it with prate * m / div, which yields a slightly
    different result when there's a remainder. For example, 432000000 / 14 *
    2 = 61714284, but 432000000 * 2 / 14 = 61714285.
    
    In addition to that, the clock framework wants the clock rate given with
    clk_set_rate to be higher than the actual (truncated) end result. So, if
    prate is 432000000, and div is 14, the real result is 30857142.8571...
    We need to call clk_set_rate with 30857143, which gives us a clock of
    30857142. That's why we need to use DIV_ROUND_UP() when calling
    clk_set_rate.
    
    This patch fixes the clock calculation.
    Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
    648a55e1
dss.c 21.1 KB