diff options
| author | David S. Miller <davem@davemloft.net> | 2011-12-06 21:10:05 -0500 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2011-12-06 21:10:05 -0500 |
| commit | 959327c7842e8621e28b89acea7d57ff02b60972 (patch) | |
| tree | b00de195fa401186228796abdcd16812862fbf4d /drivers/gpu/drm/radeon/r100.c | |
| parent | f84ea779c25dabc90956f1c329e5e5c501ea96cc (diff) | |
| parent | b835c0f47f725d864bf2545f10c733b754bb6d51 (diff) | |
| download | olio-linux-3.10-959327c7842e8621e28b89acea7d57ff02b60972.tar.xz olio-linux-3.10-959327c7842e8621e28b89acea7d57ff02b60972.zip | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Diffstat (limited to 'drivers/gpu/drm/radeon/r100.c')
| -rw-r--r-- | drivers/gpu/drm/radeon/r100.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/gpu/drm/radeon/r100.c b/drivers/gpu/drm/radeon/r100.c index ad158ea4990..bfc08f6320f 100644 --- a/drivers/gpu/drm/radeon/r100.c +++ b/drivers/gpu/drm/radeon/r100.c @@ -187,13 +187,18 @@ u32 r100_page_flip(struct radeon_device *rdev, int crtc_id, u64 crtc_base) { struct radeon_crtc *radeon_crtc = rdev->mode_info.crtcs[crtc_id]; u32 tmp = ((u32)crtc_base) | RADEON_CRTC_OFFSET__OFFSET_LOCK; + int i; /* Lock the graphics update lock */ /* update the scanout addresses */ WREG32(RADEON_CRTC_OFFSET + radeon_crtc->crtc_offset, tmp); /* Wait for update_pending to go high. */ - while (!(RREG32(RADEON_CRTC_OFFSET + radeon_crtc->crtc_offset) & RADEON_CRTC_OFFSET__GUI_TRIG_OFFSET)); + for (i = 0; i < rdev->usec_timeout; i++) { + if (RREG32(RADEON_CRTC_OFFSET + radeon_crtc->crtc_offset) & RADEON_CRTC_OFFSET__GUI_TRIG_OFFSET) + break; + udelay(1); + } DRM_DEBUG("Update pending now high. Unlocking vupdate_lock.\n"); /* Unlock the lock, so double-buffering can take place inside vblank */ |