Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 1178 → Rev 1179

/drivers/video/drm/radeon/radeon_fence.c
53,9 → 53,9
* away
*/
WREG32(rdev->fence_drv.scratch_reg, fence->seq);
} else {
} else
radeon_fence_ring_emit(rdev, fence);
}
 
fence->emited = true;
fence->timeout = jiffies + ((2000 * HZ) / 1000);
list_del(&fence->list);
168,9 → 168,40
return signaled;
}
 
int radeon_fence_wait(struct radeon_fence *fence, bool interruptible)
int r600_fence_wait(struct radeon_fence *fence, bool intr, bool lazy)
{
struct radeon_device *rdev;
int ret = 0;
 
rdev = fence->rdev;
 
__set_current_state(intr ? TASK_INTERRUPTIBLE : TASK_UNINTERRUPTIBLE);
 
while (1) {
if (radeon_fence_signaled(fence))
break;
 
if (time_after_eq(jiffies, fence->timeout)) {
ret = -EBUSY;
break;
}
 
if (lazy)
schedule_timeout(1);
 
if (intr && signal_pending(current)) {
ret = -ERESTARTSYS;
break;
}
}
__set_current_state(TASK_RUNNING);
return ret;
}
 
 
int radeon_fence_wait(struct radeon_fence *fence, bool intr)
{
struct radeon_device *rdev;
unsigned long cur_jiffies;
unsigned long timeout;
bool expired = false;
185,6 → 216,14
if (radeon_fence_signaled(fence)) {
return 0;
}
 
if (rdev->family >= CHIP_R600) {
r = r600_fence_wait(fence, intr, 0);
if (r == -ERESTARTSYS)
return -EBUSY;
return r;
}
 
retry:
cur_jiffies = jiffies;
timeout = HZ / 100;
191,11 → 230,11
if (time_after(fence->timeout, cur_jiffies)) {
timeout = fence->timeout - cur_jiffies;
}
if (interruptible) {
if (intr) {
r = wait_event_interruptible_timeout(rdev->fence_drv.queue,
radeon_fence_signaled(fence), timeout);
if (unlikely(r == -ERESTARTSYS)) {
return -ERESTART;
return -EBUSY;
}
} else {
r = wait_event_timeout(rdev->fence_drv.queue,