diff options
| -rw-r--r-- | drivers/gpu/drm/radeon/r600.c | 3 | ||||
| -rw-r--r-- | drivers/gpu/drm/radeon/radeon_fence.c | 2 |
2 files changed, 3 insertions, 2 deletions
diff --git a/drivers/gpu/drm/radeon/r600.c b/drivers/gpu/drm/radeon/r600.c index a76eca18f13..2aaf147969b 100644 --- a/drivers/gpu/drm/radeon/r600.c +++ b/drivers/gpu/drm/radeon/r600.c | |||
| @@ -2533,11 +2533,12 @@ void r600_dma_fence_ring_emit(struct radeon_device *rdev, | |||
| 2533 | { | 2533 | { |
| 2534 | struct radeon_ring *ring = &rdev->ring[fence->ring]; | 2534 | struct radeon_ring *ring = &rdev->ring[fence->ring]; |
| 2535 | u64 addr = rdev->fence_drv[fence->ring].gpu_addr; | 2535 | u64 addr = rdev->fence_drv[fence->ring].gpu_addr; |
| 2536 | |||
| 2536 | /* write the fence */ | 2537 | /* write the fence */ |
| 2537 | radeon_ring_write(ring, DMA_PACKET(DMA_PACKET_FENCE, 0, 0, 0)); | 2538 | radeon_ring_write(ring, DMA_PACKET(DMA_PACKET_FENCE, 0, 0, 0)); |
| 2538 | radeon_ring_write(ring, addr & 0xfffffffc); | 2539 | radeon_ring_write(ring, addr & 0xfffffffc); |
| 2539 | radeon_ring_write(ring, (upper_32_bits(addr) & 0xff)); | 2540 | radeon_ring_write(ring, (upper_32_bits(addr) & 0xff)); |
| 2540 | radeon_ring_write(ring, fence->seq); | 2541 | radeon_ring_write(ring, lower_32_bits(fence->seq)); |
| 2541 | /* generate an interrupt */ | 2542 | /* generate an interrupt */ |
| 2542 | radeon_ring_write(ring, DMA_PACKET(DMA_PACKET_TRAP, 0, 0, 0)); | 2543 | radeon_ring_write(ring, DMA_PACKET(DMA_PACKET_TRAP, 0, 0, 0)); |
| 2543 | } | 2544 | } |
diff --git a/drivers/gpu/drm/radeon/radeon_fence.c b/drivers/gpu/drm/radeon/radeon_fence.c index 22bd6c2c274..410a975a8ee 100644 --- a/drivers/gpu/drm/radeon/radeon_fence.c +++ b/drivers/gpu/drm/radeon/radeon_fence.c | |||
| @@ -772,7 +772,7 @@ int radeon_fence_driver_start_ring(struct radeon_device *rdev, int ring) | |||
| 772 | int r; | 772 | int r; |
| 773 | 773 | ||
| 774 | radeon_scratch_free(rdev, rdev->fence_drv[ring].scratch_reg); | 774 | radeon_scratch_free(rdev, rdev->fence_drv[ring].scratch_reg); |
| 775 | if (rdev->wb.use_event) { | 775 | if (rdev->wb.use_event || !radeon_ring_supports_scratch_reg(rdev, &rdev->ring[ring])) { |
| 776 | rdev->fence_drv[ring].scratch_reg = 0; | 776 | rdev->fence_drv[ring].scratch_reg = 0; |
| 777 | index = R600_WB_EVENT_OFFSET + ring * 4; | 777 | index = R600_WB_EVENT_OFFSET + ring * 4; |
| 778 | } else { | 778 | } else { |
