diff options
author | Roel Kluin <roel.kluin@gmail.com> | 2009-04-16 22:57:46 +0200 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2009-04-20 09:28:20 +1000 |
commit | d9c6f546469f33f9aa48ae5991c33da8cd535b37 (patch) | |
tree | 3566163c07452cec433ac00a58adf059c6d06219 /drivers/gpu | |
parent | 029a2edbd36f5e34ff1aebfba1bca31b5ac9899e (diff) | |
download | kernel_goldelico_gta04-d9c6f546469f33f9aa48ae5991c33da8cd535b37.zip kernel_goldelico_gta04-d9c6f546469f33f9aa48ae5991c33da8cd535b37.tar.gz kernel_goldelico_gta04-d9c6f546469f33f9aa48ae5991c33da8cd535b37.tar.bz2 |
drm: count reaches -1
With a postfix decrement in the test count will reach -1 rather than 0,
subsequent tests fail.
Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu')
-rw-r--r-- | drivers/gpu/drm/via/via_dma.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/gpu/drm/via/via_dma.c b/drivers/gpu/drm/via/via_dma.c index 7a339db..bfb92d2 100644 --- a/drivers/gpu/drm/via/via_dma.c +++ b/drivers/gpu/drm/via/via_dma.c @@ -481,11 +481,13 @@ static int via_wait_idle(drm_via_private_t * dev_priv) { int count = 10000000; - while (!(VIA_READ(VIA_REG_STATUS) & VIA_VR_QUEUE_BUSY) && count--); + while (!(VIA_READ(VIA_REG_STATUS) & VIA_VR_QUEUE_BUSY) && --count) + ; - while (count-- && (VIA_READ(VIA_REG_STATUS) & + while (count && (VIA_READ(VIA_REG_STATUS) & (VIA_CMD_RGTR_BUSY | VIA_2D_ENG_BUSY | - VIA_3D_ENG_BUSY))) ; + VIA_3D_ENG_BUSY))) + --count; return count; } @@ -705,7 +707,7 @@ static int via_cmdbuf_size(struct drm_device *dev, void *data, struct drm_file * switch (d_siz->func) { case VIA_CMDBUF_SPACE: while (((tmp_size = via_cmdbuf_space(dev_priv)) < d_siz->size) - && count--) { + && --count) { if (!d_siz->wait) { break; } @@ -717,7 +719,7 @@ static int via_cmdbuf_size(struct drm_device *dev, void *data, struct drm_file * break; case VIA_CMDBUF_LAG: while (((tmp_size = via_cmdbuf_lag(dev_priv)) > d_siz->size) - && count--) { + && --count) { if (!d_siz->wait) { break; } |