aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2013-07-08 20:48:41 -0400
committerDave Airlie <airlied@redhat.com>2013-07-08 20:48:41 -0400
commitfd0932d7f80146f115671a165461c6f877620abb (patch)
tree29203180ce28a2409b52b44655b2b04908de0ce6 /drivers/gpu
parent30f83b371645e310c12087ece4eb255781036260 (diff)
parentd2989b534ef6834ebf2425aecc040b894b567c91 (diff)
Merge branch 'drm-nouveau-next' of git://anongit.freedesktop.org/git/nouveau/linux-2.6 into drm-next
Two minor fixes for regressions. * 'drm-nouveau-next' of git://anongit.freedesktop.org/git/nouveau/linux-2.6: drm/nvc0/gr: fix gpc firmware regression drm/nouveau: fix minor thinko causing bo moves to not be async on kepler
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpc.fuc3
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnvc0.fuc.h40
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_bo.c3
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_drm.h1
4 files changed, 26 insertions, 21 deletions
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpc.fuc b/drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpc.fuc
index b52f4a8b8699..5547c1b3f4f2 100644
--- a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpc.fuc
+++ b/drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpc.fuc
@@ -352,6 +352,9 @@ ctx_xfer:
352 352
353 // per-TPC mmio context 353 // per-TPC mmio context
354 xbit $r10 $flags $p1 // direction 354 xbit $r10 $flags $p1 // direction
355#if !NV_PGRAPH_GPCX_UNK__SIZE
356 or $r10 4 // last
357#endif
355 mov $r11 0x4000 358 mov $r11 0x4000
356 sethi $r11 0x500000 // base = NV_PGRAPH_GPC0_TPC0 359 sethi $r11 0x500000 // base = NV_PGRAPH_GPC0_TPC0
357 ld b32 $r12 D[$r0 + #gpc_id] 360 ld b32 $r12 D[$r0 + #gpc_id]
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnvc0.fuc.h b/drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnvc0.fuc.h
index 2afe75ce89e9..f2b0dea80116 100644
--- a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnvc0.fuc.h
+++ b/drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnvc0.fuc.h
@@ -400,26 +400,26 @@ uint32_t nvc0_grgpc_code[] = {
400 0x0d98000c, 400 0x0d98000c,
401 0x00e7f001, 401 0x00e7f001,
402 0x016621f5, 402 0x016621f5,
403 0xf101acf0, 403 0xf001acf0,
404 0xf04000b7, 404 0xb7f104a5,
405 0x0c9850b3, 405 0xb3f04000,
406 0x0fc4b604, 406 0x040c9850,
407 0x9800bcbb, 407 0xbb0fc4b6,
408 0x0d98010c, 408 0x0c9800bc,
409 0x060f9802, 409 0x020d9801,
410 0x0800e7f1, 410 0xf1060f98,
411 0x016621f5, 411 0xf50800e7,
412 0x021521f5, 412 0xf5016621,
413 0xf40601f4, 413 0xf4021521,
414/* 0x0532: ctx_xfer_post */ 414 0x12f40601,
415 0x17f11412, 415/* 0x0535: ctx_xfer_post */
416 0x13f04afc, 416 0xfc17f114,
417 0x0d27f002, 417 0x0213f04a,
418 0xf50012d0, 418 0xd00d27f0,
419/* 0x0543: ctx_xfer_done */ 419 0x21f50012,
420 0xf5021521, 420/* 0x0546: ctx_xfer_done */
421 0xf8047921, 421 0x21f50215,
422 0x00000000, 422 0x00f80479,
423 0x00000000, 423 0x00000000,
424 0x00000000, 424 0x00000000,
425 0x00000000, 425 0x00000000,
diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c
index a1cf8255db50..4b1afb131380 100644
--- a/drivers/gpu/drm/nouveau/nouveau_bo.c
+++ b/drivers/gpu/drm/nouveau/nouveau_bo.c
@@ -968,7 +968,7 @@ nouveau_bo_move_m2mf(struct ttm_buffer_object *bo, int evict, bool intr,
968 bool no_wait_gpu, struct ttm_mem_reg *new_mem) 968 bool no_wait_gpu, struct ttm_mem_reg *new_mem)
969{ 969{
970 struct nouveau_drm *drm = nouveau_bdev(bo->bdev); 970 struct nouveau_drm *drm = nouveau_bdev(bo->bdev);
971 struct nouveau_channel *chan = chan = drm->channel; 971 struct nouveau_channel *chan = chan = drm->ttm.chan;
972 struct nouveau_bo *nvbo = nouveau_bo(bo); 972 struct nouveau_bo *nvbo = nouveau_bo(bo);
973 struct ttm_mem_reg *old_mem = &bo->mem; 973 struct ttm_mem_reg *old_mem = &bo->mem;
974 int ret; 974 int ret;
@@ -1052,6 +1052,7 @@ nouveau_bo_move_init(struct nouveau_drm *drm)
1052 } 1052 }
1053 1053
1054 drm->ttm.move = mthd->exec; 1054 drm->ttm.move = mthd->exec;
1055 drm->ttm.chan = chan;
1055 name = mthd->name; 1056 name = mthd->name;
1056 break; 1057 break;
1057 } 1058 }
diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.h b/drivers/gpu/drm/nouveau/nouveau_drm.h
index f2b30f89dee0..41ff7e0d403a 100644
--- a/drivers/gpu/drm/nouveau/nouveau_drm.h
+++ b/drivers/gpu/drm/nouveau/nouveau_drm.h
@@ -96,6 +96,7 @@ struct nouveau_drm {
96 int (*move)(struct nouveau_channel *, 96 int (*move)(struct nouveau_channel *,
97 struct ttm_buffer_object *, 97 struct ttm_buffer_object *,
98 struct ttm_mem_reg *, struct ttm_mem_reg *); 98 struct ttm_mem_reg *, struct ttm_mem_reg *);
99 struct nouveau_channel *chan;
99 int mtrr; 100 int mtrr;
100 } ttm; 101 } ttm;
101 102