• Sakari Ailus's avatar
    media: ccs-pll: Avoid overflow in pre-PLL divisor lower bound search · 482e75e7
    Sakari Ailus authored
    The external clock frequency times the PLL multiplier may exceed the value
    range of 32-bit unsigned integers. Instead perform the same calculation y
    using two divisions.
    
    The result has some potential to be different, but that's ok: this number
    is used to limit the range of pre-PLL divisors to find optimal values. So
    the effect of the rare case of a different result here would mean an
    invalid pre-PLL divisor is tried. That will be found out a little later in
    any case.
    
    Also guard against dividing by zero if the external clock frequency is
    higher than the maximum OP PLL output clock --- a rather improbable case.
    Signed-off-by: default avatarSakari Ailus <sakari.ailus@linux.intel.com>
    Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
    482e75e7
ccs-pll.c 15.5 KB