mirror of
https://github.com/edk2-porting/linux-next.git
synced 2025-01-15 17:14:00 +08:00
media: ccs-pll: End search if there are no better values available
The VT divisor search can be ended if we've already found the value that corresponds exactly the total divisor, as there are no better (lower) values available. Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
This commit is contained in:
parent
9454432af0
commit
9c1a0d9e91
@ -352,6 +352,7 @@ __ccs_pll_calculate(struct device *dev, const struct ccs_pll_limits *lim,
|
||||
sys_div <= max_sys_div;
|
||||
sys_div += 2 - (sys_div & 1)) {
|
||||
uint16_t pix_div = DIV_ROUND_UP(vt_div, sys_div);
|
||||
uint16_t rounded_div;
|
||||
|
||||
if (pix_div < lim->vt_bk.min_pix_clk_div
|
||||
|| pix_div > lim->vt_bk.max_pix_clk_div) {
|
||||
@ -363,10 +364,15 @@ __ccs_pll_calculate(struct device *dev, const struct ccs_pll_limits *lim,
|
||||
continue;
|
||||
}
|
||||
|
||||
rounded_div = roundup(vt_div, best_pix_div);
|
||||
|
||||
/* Check if this one is better. */
|
||||
if (pix_div * sys_div
|
||||
<= roundup(vt_div, best_pix_div))
|
||||
if (pix_div * sys_div <= rounded_div)
|
||||
best_pix_div = pix_div;
|
||||
|
||||
/* Bail out if we've already found the best value. */
|
||||
if (vt_div == rounded_div)
|
||||
break;
|
||||
}
|
||||
if (best_pix_div < INT_MAX >> 1)
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user