diff options
author | Alex Deucher <alexdeucher@gmail.com> | 2011-02-02 12:37:40 -0500 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2011-02-03 18:40:51 -0500 |
commit | 129205910f882e25c728e0e415743f8451a4c470 (patch) | |
tree | a8613b1fc625b70bf31284e9498289c9db6a56c6 /drivers/gpu/drm/radeon/evergreen.c | |
parent | 63a507800c8aca5a1891d598ae13f829346e8e39 (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.c | 13 |
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 | */ |
1188 | void 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 | ||
1189 | static int evergreen_cp_load_microcode(struct radeon_device *rdev) | 1201 | static 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); |