diff options
author | Dave Airlie <airlied@redhat.com> | 2013-07-08 20:48:41 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2013-07-08 20:48:41 -0400 |
commit | fd0932d7f80146f115671a165461c6f877620abb (patch) | |
tree | 29203180ce28a2409b52b44655b2b04908de0ce6 /drivers/gpu | |
parent | 30f83b371645e310c12087ece4eb255781036260 (diff) | |
parent | d2989b534ef6834ebf2425aecc040b894b567c91 (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.fuc | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnvc0.fuc.h | 40 | ||||
-rw-r--r-- | drivers/gpu/drm/nouveau/nouveau_bo.c | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/nouveau/nouveau_drm.h | 1 |
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 | ||