radeon: Use fences to gate entry to reclocking on <r600
GUI idle interrupts don't seem to work terribly well on r500 and earlier, so let's use a fence instead. Signed-off-by: Matthew Garrett <mjg@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
91700f3cac
commit
01434b4bfb
@ -76,6 +76,14 @@ static void radeon_pm_set_clocks(struct radeon_device *rdev, int static_switch)
|
|||||||
msecs_to_jiffies(RADEON_WAIT_IDLE_TIMEOUT));
|
msecs_to_jiffies(RADEON_WAIT_IDLE_TIMEOUT));
|
||||||
rdev->irq.gui_idle = false;
|
rdev->irq.gui_idle = false;
|
||||||
radeon_irq_set(rdev);
|
radeon_irq_set(rdev);
|
||||||
|
} else {
|
||||||
|
struct radeon_fence *fence;
|
||||||
|
radeon_ring_alloc(rdev, 64);
|
||||||
|
radeon_fence_create(rdev, &fence);
|
||||||
|
radeon_fence_emit(rdev, fence);
|
||||||
|
radeon_ring_commit(rdev);
|
||||||
|
radeon_fence_wait(fence, false);
|
||||||
|
radeon_fence_unref(&fence);
|
||||||
}
|
}
|
||||||
radeon_unmap_vram_bos(rdev);
|
radeon_unmap_vram_bos(rdev);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user