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;
|
||||
|
||||
while (!(readl(viaparinfo->io_virt + VIA_REG_STATUS) &
|
||||
VIA_VR_QUEUE_BUSY) && (loop++ < MAXLOOP))
|
||||
VIA_VR_QUEUE_BUSY) && (loop < MAXLOOP)) {
|
||||
loop++;
|
||||
cpu_relax();
|
||||
}
|
||||
|
||||
while ((readl(viaparinfo->io_virt + VIA_REG_STATUS) &
|
||||
(VIA_CMD_RGTR_BUSY | VIA_2D_ENG_BUSY | VIA_3D_ENG_BUSY)) &&
|
||||
(loop++ < MAXLOOP))
|
||||
(loop < MAXLOOP)) {
|
||||
loop++;
|
||||
cpu_relax();
|
||||
}
|
||||
|
||||
return loop >= MAXLOOP;
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче