diff options
author | Roel Kluin <roel.kluin@gmail.com> | 2009-03-31 15:25:36 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-04-01 08:59:32 -0700 |
commit | 2bd8c47597b2522795f5eb2e61c22dcfec5dfa6a (patch) | |
tree | 37d6d0617059f42680ec2dc458da2841856064dc /drivers | |
parent | b83734ec0975e1f53420b7a2d454612fc905a9d0 (diff) |
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>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/video/via/accel.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/video/via/accel.c b/drivers/video/via/accel.c index 632523ff1fb..45c54bfe99b 100644 --- a/drivers/video/via/accel.c +++ b/drivers/video/via/accel.c @@ -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; } |