viafb: returns 0 two too early
Otherwise this will already return 0 if iteration MAXLOOP-2 occurs in the first loop. Signed-off-by: Roel Kluin <roel.kluin@gmail.com> Cc: Joseph Chan <josephchan@via.com.tw> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Родитель
b83734ec09
Коммит
2bd8c47597
|
@ -267,13 +267,17 @@ int viafb_wait_engine_idle(void)
|
||||||
int loop = 0;
|
int loop = 0;
|
||||||
|
|
||||||
while (!(readl(viaparinfo->io_virt + VIA_REG_STATUS) &
|
while (!(readl(viaparinfo->io_virt + VIA_REG_STATUS) &
|
||||||
VIA_VR_QUEUE_BUSY) && (loop++ < MAXLOOP))
|
VIA_VR_QUEUE_BUSY) && (loop < MAXLOOP)) {
|
||||||
|
loop++;
|
||||||
cpu_relax();
|
cpu_relax();
|
||||||
|
}
|
||||||
|
|
||||||
while ((readl(viaparinfo->io_virt + VIA_REG_STATUS) &
|
while ((readl(viaparinfo->io_virt + VIA_REG_STATUS) &
|
||||||
(VIA_CMD_RGTR_BUSY | VIA_2D_ENG_BUSY | VIA_3D_ENG_BUSY)) &&
|
(VIA_CMD_RGTR_BUSY | VIA_2D_ENG_BUSY | VIA_3D_ENG_BUSY)) &&
|
||||||
(loop++ < MAXLOOP))
|
(loop < MAXLOOP)) {
|
||||||
|
loop++;
|
||||||
cpu_relax();
|
cpu_relax();
|
||||||
|
}
|
||||||
|
|
||||||
return loop >= MAXLOOP;
|
return loop >= MAXLOOP;
|
||||||
}
|
}
|
||||||
|
|
Загрузка…
Ссылка в новой задаче