|
@@ -1454,7 +1454,10 @@ static unsigned long calc_fclk_five_taps(u16 width, u16 height,
|
|
|
do_div(tmp, 2 * out_height * ppl);
|
|
|
fclk = tmp;
|
|
|
|
|
|
- if (height > 2 * out_height && ppl != out_width) {
|
|
|
+ if (height > 2 * out_height) {
|
|
|
+ if (ppl == out_width)
|
|
|
+ return 0;
|
|
|
+
|
|
|
tmp = pclk * (height - 2 * out_height) * out_width;
|
|
|
do_div(tmp, 2 * out_height * (ppl - out_width));
|
|
|
fclk = max(fclk, (u32) tmp);
|
|
@@ -1634,7 +1637,7 @@ static int _dispc_setup_plane(enum omap_plane plane,
|
|
|
DSSDBG("required fclk rate = %lu Hz\n", fclk);
|
|
|
DSSDBG("current fclk rate = %lu Hz\n", dispc_fclk_rate());
|
|
|
|
|
|
- if (fclk > dispc_fclk_rate()) {
|
|
|
+ if (!fclk || fclk > dispc_fclk_rate()) {
|
|
|
DSSERR("failed to set up scaling, "
|
|
|
"required fclk rate = %lu Hz, "
|
|
|
"current fclk rate = %lu Hz\n",
|