summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau/nvkm/engine/gr/gm200.c
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2016-04-19 11:10:38 +1000
committerBen Skeggs <bskeggs@redhat.com>2016-05-20 14:43:04 +1000
commit87ac331e3f9aca9bdc3697bb936b3b2b43cbf5a0 (patch)
treec0c099ee68c276c698a77010472f39fd72eee11b /drivers/gpu/drm/nouveau/nvkm/engine/gr/gm200.c
parent4d3df19a8e6c9e60eed7f3c6e2025362b3ca2da5 (diff)
downloadlinux-87ac331e3f9aca9bdc3697bb936b3b2b43cbf5a0.tar.bz2
drm/nouveau/gr/gk104-: move rop_active_fbps init to nonctx
Matches newer RM. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/nvkm/engine/gr/gm200.c')
-rw-r--r--drivers/gpu/drm/nouveau/nvkm/engine/gr/gm200.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/gr/gm200.c b/drivers/gpu/drm/nouveau/nvkm/engine/gr/gm200.c
index 28002a606ac8..d9f320fa7dce 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/gr/gm200.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/gr/gm200.c
@@ -52,6 +52,15 @@ gm200_gr_init_gpc_mmu(struct gf100_gr *gr)
nvkm_wr32(device, 0x4188b0, nvkm_rd32(device, 0x100cc4));
}
+static void
+gm200_gr_init_rop_active_fbps(struct gf100_gr *gr)
+{
+ struct nvkm_device *device = gr->base.engine.subdev.device;
+ const u32 fbp_count = nvkm_rd32(device, 0x12006c);
+ nvkm_mask(device, 0x408850, 0x0000000f, fbp_count); /* zrop */
+ nvkm_mask(device, 0x408958, 0x0000000f, fbp_count); /* crop */
+}
+
int
gm200_gr_init(struct gf100_gr *gr)
{
@@ -98,6 +107,8 @@ gm200_gr_init(struct gf100_gr *gr)
nvkm_wr32(device, GPC_BCAST(0x08ac), nvkm_rd32(device, 0x100800));
nvkm_wr32(device, GPC_BCAST(0x033c), nvkm_rd32(device, 0x100804));
+ gr->func->init_rop_active_fbps(gr);
+
nvkm_wr32(device, 0x400500, 0x00010001);
nvkm_wr32(device, 0x400100, 0xffffffff);
nvkm_wr32(device, 0x40013c, 0xffffffff);
@@ -199,6 +210,7 @@ static const struct gf100_gr_func
gm200_gr = {
.init = gm200_gr_init,
.init_gpc_mmu = gm200_gr_init_gpc_mmu,
+ .init_rop_active_fbps = gm200_gr_init_rop_active_fbps,
.rops = gm200_gr_rops,
.ppc_nr = 2,
.grctx = &gm200_grctx,