diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2016-04-14 14:41:52 +1000 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2016-05-20 14:42:26 +1000 |
commit | 6441c9068e62f31e038a09e89bba53480efb02e0 (patch) | |
tree | e050f64c350f83ba90ba179dc30c1f3cdb02e358 | |
parent | 88328d4a29727b7cc81e1d375192050983660e85 (diff) | |
download | nouveau-6441c9068e62f31e038a09e89bba53480efb02e0.tar.gz |
gr/gm200: modify the mask when copying mmu settings from fb
Appears to more closely match what RM does.
For GM20B, now also copying bit 12 from NV_PFB_MMU_CTRL as upcoming
changes will require it.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
-rw-r--r-- | drm/nouveau/nvkm/engine/gr/gm200.c | 4 | ||||
-rw-r--r-- | drm/nouveau/nvkm/engine/gr/gm20b.c | 2 |
2 files changed, 2 insertions, 4 deletions
diff --git a/drm/nouveau/nvkm/engine/gr/gm200.c b/drm/nouveau/nvkm/engine/gr/gm200.c index 962366fc3..e2384c4b8 100644 --- a/drm/nouveau/nvkm/engine/gr/gm200.c +++ b/drm/nouveau/nvkm/engine/gr/gm200.c @@ -36,10 +36,8 @@ static void gm200_gr_init_gpc_mmu(struct gf100_gr *gr) { struct nvkm_device *device = gr->base.engine.subdev.device; - u32 tmp; - tmp = nvkm_rd32(device, 0x100c80); /*XXX: mask? */ - nvkm_wr32(device, 0x418880, 0x00001000 | (tmp & 0x00000fff)); + nvkm_wr32(device, 0x418880, nvkm_rd32(device, 0x100c80) & 0xf0001fff); nvkm_wr32(device, 0x418890, 0x00000000); nvkm_wr32(device, 0x418894, 0x00000000); diff --git a/drm/nouveau/nvkm/engine/gr/gm20b.c b/drm/nouveau/nvkm/engine/gr/gm20b.c index 1281a9cff..f1ea0ba58 100644 --- a/drm/nouveau/nvkm/engine/gr/gm20b.c +++ b/drm/nouveau/nvkm/engine/gr/gm20b.c @@ -42,7 +42,7 @@ gm20b_gr_init_gpc_mmu(struct gf100_gr *gr) } val = nvkm_rd32(device, 0x100c80); - val &= 0xf000087f; + val &= 0xf000187f; nvkm_wr32(device, 0x418880, val); nvkm_wr32(device, 0x418890, 0); nvkm_wr32(device, 0x418894, 0); |