aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/radeon/evergreen.c
diff options
context:
space:
mode:
authorAlex Deucher <alexdeucher@gmail.com>2011-02-02 12:37:40 -0500
committerDave Airlie <airlied@redhat.com>2011-02-03 18:40:51 -0500
commit129205910f882e25c728e0e415743f8451a4c470 (patch)
treea8613b1fc625b70bf31284e9498289c9db6a56c6 /drivers/gpu/drm/radeon/evergreen.c
parent63a507800c8aca5a1891d598ae13f829346e8e39 (diff)
drm/radeon/kms: add updated ib_execute function for evergreen
Adds new packet to disable DX9 constant emulation. Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Cc: stable@kernel.org Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/radeon/evergreen.c')
-rw-r--r--drivers/gpu/drm/radeon/evergreen.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/gpu/drm/radeon/evergreen.c b/drivers/gpu/drm/radeon/evergreen.c
index 5a11fec98fb2..0f9775178c24 100644
--- a/drivers/gpu/drm/radeon/evergreen.c
+++ b/drivers/gpu/drm/radeon/evergreen.c
@@ -1185,6 +1185,18 @@ static void evergreen_mc_program(struct radeon_device *rdev)
1185/* 1185/*
1186 * CP. 1186 * CP.
1187 */ 1187 */
1188void evergreen_ring_ib_execute(struct radeon_device *rdev, struct radeon_ib *ib)
1189{
1190 /* set to DX10/11 mode */
1191 radeon_ring_write(rdev, PACKET3(PACKET3_MODE_CONTROL, 0));
1192 radeon_ring_write(rdev, 1);
1193 /* FIXME: implement */
1194 radeon_ring_write(rdev, PACKET3(PACKET3_INDIRECT_BUFFER, 2));
1195 radeon_ring_write(rdev, ib->gpu_addr & 0xFFFFFFFC);
1196 radeon_ring_write(rdev, upper_32_bits(ib->gpu_addr) & 0xFF);
1197 radeon_ring_write(rdev, ib->length_dw);
1198}
1199
1188 1200
1189static int evergreen_cp_load_microcode(struct radeon_device *rdev) 1201static int evergreen_cp_load_microcode(struct radeon_device *rdev)
1190{ 1202{
@@ -2075,6 +2087,7 @@ static void evergreen_gpu_init(struct radeon_device *rdev)
2075 WREG32(VGT_CACHE_INVALIDATION, vgt_cache_invalidation); 2087 WREG32(VGT_CACHE_INVALIDATION, vgt_cache_invalidation);
2076 2088
2077 WREG32(VGT_GS_VERTEX_REUSE, 16); 2089 WREG32(VGT_GS_VERTEX_REUSE, 16);
2090 WREG32(PA_SU_LINE_STIPPLE_VALUE, 0);
2078 WREG32(PA_SC_LINE_STIPPLE_STATE, 0); 2091 WREG32(PA_SC_LINE_STIPPLE_STATE, 0);
2079 2092
2080 WREG32(VGT_VERTEX_REUSE_BLOCK_CNTL, 14); 2093 WREG32(VGT_VERTEX_REUSE_BLOCK_CNTL, 14);