summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2009-12-03 21:14:00 +1000
committerBen Skeggs <bskeggs@redhat.com>2009-12-03 21:14:00 +1000
commit60a394222b410da8bb832935fc525132218b4d94 (patch)
tree5fee0d9546e0e9fe86171c1b2a6195b7a9118d27
parent95fc663d5fb653fc0a50aa4d589bbf3b9c79e928 (diff)
nv50: avoid touching 0x16b0 on 0x8597, it causes a DATA_ERROR from the GPU
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
-rw-r--r--src/nv50_accel.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/nv50_accel.c b/src/nv50_accel.c
index 165995f..b3b1584 100644
--- a/src/nv50_accel.c
+++ b/src/nv50_accel.c
@@ -149,9 +149,14 @@ NVAccelInitNV50TCL(ScrnInfoPtr pScrn)
OUT_RING (chan, 0x00000033);
BEGIN_RING(chan, tesla, NV50TCL_VP_REG_ALLOC_RESULT, 1);
OUT_RING (chan, 6);
- BEGIN_RING(chan, tesla, NV50TCL_VP_RESULT_MAP_SIZE, 2);
- OUT_RING (chan, 8);
- OUT_RING (chan, 0); /* NV50TCL_VP_REG_ALLOC_TEMP */
+ if (tesla->grclass != 0x8597) {
+ BEGIN_RING(chan, tesla, NV50TCL_VP_RESULT_MAP_SIZE, 2);
+ OUT_RING (chan, 8);
+ OUT_RING (chan, 0); /* NV50TCL_VP_REG_ALLOC_TEMP */
+ } else {
+ BEGIN_RING(chan, tesla, NV50TCL_VP_RESULT_MAP_SIZE, 1);
+ OUT_RING (chan, 8);
+ }
BEGIN_RING(chan, tesla, NV50TCL_VP_START_ID, 1);
OUT_RING (chan, 0);