aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/radeon/r300.c
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2009-08-15 06:54:13 -0400
committerDave Airlie <airlied@redhat.com>2009-08-15 18:33:17 -0400
commit3f8befec95d5c1bbc6e247e1a5dafa82519530f9 (patch)
tree289112b8c8b0dcea9d12d2c0d53b922b367c3778 /drivers/gpu/drm/radeon/r300.c
parentebb177d2afb8532a8a316489aed545ed0c170802 (diff)
drm/radeon/kms: add rv530 R300_SU_REG_DEST + reloc for ZPASS_ADDR
These are needed for Occulsion Query support. Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/radeon/r300.c')
-rw-r--r--drivers/gpu/drm/radeon/r300.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/gpu/drm/radeon/r300.c b/drivers/gpu/drm/radeon/r300.c
index 9c8d41534a5d..8594486e1625 100644
--- a/drivers/gpu/drm/radeon/r300.c
+++ b/drivers/gpu/drm/radeon/r300.c
@@ -1403,6 +1403,21 @@ static int r300_packet0_check(struct radeon_cs_parser *p,
1403 tmp = (ib_chunk->kdata[idx] >> 22) & 0xF; 1403 tmp = (ib_chunk->kdata[idx] >> 22) & 0xF;
1404 track->textures[i].txdepth = tmp; 1404 track->textures[i].txdepth = tmp;
1405 break; 1405 break;
1406 case R300_ZB_ZPASS_ADDR:
1407 r = r100_cs_packet_next_reloc(p, &reloc);
1408 if (r) {
1409 DRM_ERROR("No reloc for ib[%d]=0x%04X\n",
1410 idx, reg);
1411 r100_cs_dump_packet(p, pkt);
1412 return r;
1413 }
1414 ib[idx] = ib_chunk->kdata[idx] + ((u32)reloc->lobj.gpu_offset);
1415 break;
1416 case 0x4be8:
1417 /* valid register only on RV530 */
1418 if (p->rdev->family == CHIP_RV530)
1419 break;
1420 /* fallthrough do not move */
1406 default: 1421 default:
1407 printk(KERN_ERR "Forbidden register 0x%04X in cs at %d\n", 1422 printk(KERN_ERR "Forbidden register 0x%04X in cs at %d\n",
1408 reg, idx); 1423 reg, idx);