diff options
Diffstat (limited to 'drivers/gpu/drm/radeon/r600.c')
-rw-r--r-- | drivers/gpu/drm/radeon/r600.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/gpu/drm/radeon/r600.c b/drivers/gpu/drm/radeon/r600.c index c75881223d18..c66952d4b00c 100644 --- a/drivers/gpu/drm/radeon/r600.c +++ b/drivers/gpu/drm/radeon/r600.c | |||
@@ -1958,6 +1958,9 @@ static void r600_gpu_init(struct radeon_device *rdev) | |||
1958 | if (tmp < rdev->config.r600.max_simds) { | 1958 | if (tmp < rdev->config.r600.max_simds) { |
1959 | rdev->config.r600.max_simds = tmp; | 1959 | rdev->config.r600.max_simds = tmp; |
1960 | } | 1960 | } |
1961 | tmp = rdev->config.r600.max_simds - | ||
1962 | r600_count_pipe_bits((cc_gc_shader_pipe_config >> 16) & R6XX_MAX_SIMDS_MASK); | ||
1963 | rdev->config.r600.active_simds = tmp; | ||
1961 | 1964 | ||
1962 | disabled_rb_mask = (RREG32(CC_RB_BACKEND_DISABLE) >> 16) & R6XX_MAX_BACKENDS_MASK; | 1965 | disabled_rb_mask = (RREG32(CC_RB_BACKEND_DISABLE) >> 16) & R6XX_MAX_BACKENDS_MASK; |
1963 | tmp = (tiling_config & PIPE_TILING__MASK) >> PIPE_TILING__SHIFT; | 1966 | tmp = (tiling_config & PIPE_TILING__MASK) >> PIPE_TILING__SHIFT; |
@@ -2724,7 +2727,7 @@ void r600_fence_ring_emit(struct radeon_device *rdev, | |||
2724 | /* EVENT_WRITE_EOP - flush caches, send int */ | 2727 | /* EVENT_WRITE_EOP - flush caches, send int */ |
2725 | radeon_ring_write(ring, PACKET3(PACKET3_EVENT_WRITE_EOP, 4)); | 2728 | radeon_ring_write(ring, PACKET3(PACKET3_EVENT_WRITE_EOP, 4)); |
2726 | radeon_ring_write(ring, EVENT_TYPE(CACHE_FLUSH_AND_INV_EVENT_TS) | EVENT_INDEX(5)); | 2729 | radeon_ring_write(ring, EVENT_TYPE(CACHE_FLUSH_AND_INV_EVENT_TS) | EVENT_INDEX(5)); |
2727 | radeon_ring_write(ring, addr & 0xffffffff); | 2730 | radeon_ring_write(ring, lower_32_bits(addr)); |
2728 | radeon_ring_write(ring, (upper_32_bits(addr) & 0xff) | DATA_SEL(1) | INT_SEL(2)); | 2731 | radeon_ring_write(ring, (upper_32_bits(addr) & 0xff) | DATA_SEL(1) | INT_SEL(2)); |
2729 | radeon_ring_write(ring, fence->seq); | 2732 | radeon_ring_write(ring, fence->seq); |
2730 | radeon_ring_write(ring, 0); | 2733 | radeon_ring_write(ring, 0); |
@@ -2763,7 +2766,7 @@ bool r600_semaphore_ring_emit(struct radeon_device *rdev, | |||
2763 | sel |= PACKET3_SEM_WAIT_ON_SIGNAL; | 2766 | sel |= PACKET3_SEM_WAIT_ON_SIGNAL; |
2764 | 2767 | ||
2765 | radeon_ring_write(ring, PACKET3(PACKET3_MEM_SEMAPHORE, 1)); | 2768 | radeon_ring_write(ring, PACKET3(PACKET3_MEM_SEMAPHORE, 1)); |
2766 | radeon_ring_write(ring, addr & 0xffffffff); | 2769 | radeon_ring_write(ring, lower_32_bits(addr)); |
2767 | radeon_ring_write(ring, (upper_32_bits(addr) & 0xff) | sel); | 2770 | radeon_ring_write(ring, (upper_32_bits(addr) & 0xff) | sel); |
2768 | 2771 | ||
2769 | return true; | 2772 | return true; |
@@ -2824,9 +2827,9 @@ int r600_copy_cpdma(struct radeon_device *rdev, | |||
2824 | if (size_in_bytes == 0) | 2827 | if (size_in_bytes == 0) |
2825 | tmp |= PACKET3_CP_DMA_CP_SYNC; | 2828 | tmp |= PACKET3_CP_DMA_CP_SYNC; |
2826 | radeon_ring_write(ring, PACKET3(PACKET3_CP_DMA, 4)); | 2829 | radeon_ring_write(ring, PACKET3(PACKET3_CP_DMA, 4)); |
2827 | radeon_ring_write(ring, src_offset & 0xffffffff); | 2830 | radeon_ring_write(ring, lower_32_bits(src_offset)); |
2828 | radeon_ring_write(ring, tmp); | 2831 | radeon_ring_write(ring, tmp); |
2829 | radeon_ring_write(ring, dst_offset & 0xffffffff); | 2832 | radeon_ring_write(ring, lower_32_bits(dst_offset)); |
2830 | radeon_ring_write(ring, upper_32_bits(dst_offset) & 0xff); | 2833 | radeon_ring_write(ring, upper_32_bits(dst_offset) & 0xff); |
2831 | radeon_ring_write(ring, cur_size_in_bytes); | 2834 | radeon_ring_write(ring, cur_size_in_bytes); |
2832 | src_offset += cur_size_in_bytes; | 2835 | src_offset += cur_size_in_bytes; |