diff options
| author | Alex Deucher <alexdeucher@gmail.com> | 2009-11-09 16:41:21 -0500 |
|---|---|---|
| committer | Dave Airlie <airlied@redhat.com> | 2009-11-09 22:41:07 -0500 |
| commit | a39533b4ddad388b64a20bcabd17ac125fd4ba65 (patch) | |
| tree | 20eb55eb5caa047eff34a93e40bb00669b98458f | |
| parent | 7433874e31f7f2e6e942b12012790565731d0f4a (diff) | |
drm/radeon/r600: CS parser updates
Add some additional regs that require relocs.
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
| -rw-r--r-- | drivers/gpu/drm/radeon/r600_cs.c | 18 | ||||
| -rw-r--r-- | drivers/gpu/drm/radeon/r600d.h | 10 |
2 files changed, 28 insertions, 0 deletions
diff --git a/drivers/gpu/drm/radeon/r600_cs.c b/drivers/gpu/drm/radeon/r600_cs.c index 17e42195c632..0d820764f340 100644 --- a/drivers/gpu/drm/radeon/r600_cs.c +++ b/drivers/gpu/drm/radeon/r600_cs.c | |||
| @@ -466,6 +466,23 @@ static int r600_packet3_check(struct radeon_cs_parser *p, | |||
| 466 | for (i = 0; i < pkt->count; i++) { | 466 | for (i = 0; i < pkt->count; i++) { |
| 467 | reg = start_reg + (4 * i); | 467 | reg = start_reg + (4 * i); |
| 468 | switch (reg) { | 468 | switch (reg) { |
| 469 | case SQ_ESGS_RING_BASE: | ||
| 470 | case SQ_GSVS_RING_BASE: | ||
| 471 | case SQ_ESTMP_RING_BASE: | ||
| 472 | case SQ_GSTMP_RING_BASE: | ||
| 473 | case SQ_VSTMP_RING_BASE: | ||
| 474 | case SQ_PSTMP_RING_BASE: | ||
| 475 | case SQ_FBUF_RING_BASE: | ||
| 476 | case SQ_REDUC_RING_BASE: | ||
| 477 | case SX_MEMORY_EXPORT_BASE: | ||
| 478 | r = r600_cs_packet_next_reloc(p, &reloc); | ||
| 479 | if (r) { | ||
| 480 | DRM_ERROR("bad SET_CONFIG_REG " | ||
| 481 | "0x%04X\n", reg); | ||
| 482 | return -EINVAL; | ||
| 483 | } | ||
| 484 | ib[idx+1+i] += (u32)((reloc->lobj.gpu_offset >> 8) & 0xffffffff); | ||
| 485 | break; | ||
| 469 | case CP_COHER_BASE: | 486 | case CP_COHER_BASE: |
| 470 | /* use PACKET3_SURFACE_SYNC */ | 487 | /* use PACKET3_SURFACE_SYNC */ |
| 471 | return -EINVAL; | 488 | return -EINVAL; |
| @@ -487,6 +504,7 @@ static int r600_packet3_check(struct radeon_cs_parser *p, | |||
| 487 | reg = start_reg + (4 * i); | 504 | reg = start_reg + (4 * i); |
| 488 | switch (reg) { | 505 | switch (reg) { |
| 489 | case DB_DEPTH_BASE: | 506 | case DB_DEPTH_BASE: |
| 507 | case DB_HTILE_DATA_BASE: | ||
| 490 | case CB_COLOR0_BASE: | 508 | case CB_COLOR0_BASE: |
| 491 | case CB_COLOR1_BASE: | 509 | case CB_COLOR1_BASE: |
| 492 | case CB_COLOR2_BASE: | 510 | case CB_COLOR2_BASE: |
diff --git a/drivers/gpu/drm/radeon/r600d.h b/drivers/gpu/drm/radeon/r600d.h index cf238bf5700f..b99f45d85d88 100644 --- a/drivers/gpu/drm/radeon/r600d.h +++ b/drivers/gpu/drm/radeon/r600d.h | |||
| @@ -118,6 +118,7 @@ | |||
| 118 | #define DB_DEBUG 0x9830 | 118 | #define DB_DEBUG 0x9830 |
| 119 | #define PREZ_MUST_WAIT_FOR_POSTZ_DONE (1 << 31) | 119 | #define PREZ_MUST_WAIT_FOR_POSTZ_DONE (1 << 31) |
| 120 | #define DB_DEPTH_BASE 0x2800C | 120 | #define DB_DEPTH_BASE 0x2800C |
| 121 | #define DB_HTILE_DATA_BASE 0x28014 | ||
| 121 | #define DB_WATERMARKS 0x9838 | 122 | #define DB_WATERMARKS 0x9838 |
| 122 | #define DEPTH_FREE(x) ((x) << 0) | 123 | #define DEPTH_FREE(x) ((x) << 0) |
| 123 | #define DEPTH_FLUSH(x) ((x) << 5) | 124 | #define DEPTH_FLUSH(x) ((x) << 5) |
| @@ -170,6 +171,14 @@ | |||
| 170 | #define SQ_STACK_RESOURCE_MGMT_2 0x8c14 | 171 | #define SQ_STACK_RESOURCE_MGMT_2 0x8c14 |
| 171 | # define NUM_GS_STACK_ENTRIES(x) ((x) << 0) | 172 | # define NUM_GS_STACK_ENTRIES(x) ((x) << 0) |
| 172 | # define NUM_ES_STACK_ENTRIES(x) ((x) << 16) | 173 | # define NUM_ES_STACK_ENTRIES(x) ((x) << 16) |
| 174 | #define SQ_ESGS_RING_BASE 0x8c40 | ||
| 175 | #define SQ_GSVS_RING_BASE 0x8c48 | ||
| 176 | #define SQ_ESTMP_RING_BASE 0x8c50 | ||
| 177 | #define SQ_GSTMP_RING_BASE 0x8c58 | ||
| 178 | #define SQ_VSTMP_RING_BASE 0x8c60 | ||
| 179 | #define SQ_PSTMP_RING_BASE 0x8c68 | ||
| 180 | #define SQ_FBUF_RING_BASE 0x8c70 | ||
| 181 | #define SQ_REDUC_RING_BASE 0x8c78 | ||
| 173 | 182 | ||
| 174 | #define GRBM_CNTL 0x8000 | 183 | #define GRBM_CNTL 0x8000 |
| 175 | # define GRBM_READ_TIMEOUT(x) ((x) << 0) | 184 | # define GRBM_READ_TIMEOUT(x) ((x) << 0) |
| @@ -355,6 +364,7 @@ | |||
| 355 | 364 | ||
| 356 | 365 | ||
| 357 | #define SX_MISC 0x28350 | 366 | #define SX_MISC 0x28350 |
| 367 | #define SX_MEMORY_EXPORT_BASE 0x9010 | ||
| 358 | #define SX_DEBUG_1 0x9054 | 368 | #define SX_DEBUG_1 0x9054 |
| 359 | #define SMX_EVENT_RELEASE (1 << 0) | 369 | #define SMX_EVENT_RELEASE (1 << 0) |
| 360 | #define ENABLE_NEW_SMX_ADDRESS (1 << 16) | 370 | #define ENABLE_NEW_SMX_ADDRESS (1 << 16) |
