Lines Matching refs:gr
1007 struct nvkm_device *device = info->gr->base.engine.subdev.device; in gf100_grctx_mmio_item()
1030 const struct gf100_grctx_func *grctx = info->gr->func->grctx; in gf100_grctx_generate_bundle()
1043 const struct gf100_grctx_func *grctx = info->gr->func->grctx; in gf100_grctx_generate_pagepool()
1056 struct gf100_gr *gr = info->gr; in gf100_grctx_generate_attrib() local
1057 const struct gf100_grctx_func *grctx = gr->func->grctx; in gf100_grctx_generate_attrib()
1062 const int b = mmio_vram(info, size * gr->tpc_total, (1 << s), access); in gf100_grctx_generate_attrib()
1070 for (gpc = 0; gpc < gr->gpc_nr; gpc++) { in gf100_grctx_generate_attrib()
1071 for (tpc = 0; tpc < gr->tpc_nr[gpc]; tpc++) { in gf100_grctx_generate_attrib()
1081 gf100_grctx_generate_unkn(struct gf100_gr *gr) in gf100_grctx_generate_unkn() argument
1086 gf100_grctx_generate_tpcid(struct gf100_gr *gr) in gf100_grctx_generate_tpcid() argument
1088 struct nvkm_device *device = gr->base.engine.subdev.device; in gf100_grctx_generate_tpcid()
1092 for (gpc = 0; gpc < gr->gpc_nr; gpc++) { in gf100_grctx_generate_tpcid()
1093 if (tpc < gr->tpc_nr[gpc]) { in gf100_grctx_generate_tpcid()
1101 nvkm_wr32(device, GPC_UNIT(gpc, 0x0c08), gr->tpc_nr[gpc]); in gf100_grctx_generate_tpcid()
1102 nvkm_wr32(device, GPC_UNIT(gpc, 0x0c8c), gr->tpc_nr[gpc]); in gf100_grctx_generate_tpcid()
1108 gf100_grctx_generate_r406028(struct gf100_gr *gr) in gf100_grctx_generate_r406028() argument
1110 struct nvkm_device *device = gr->base.engine.subdev.device; in gf100_grctx_generate_r406028()
1112 for (i = 0; i < gr->gpc_nr; i++) in gf100_grctx_generate_r406028()
1113 tmp[i / 8] |= gr->tpc_nr[i] << ((i % 8) * 4); in gf100_grctx_generate_r406028()
1121 gf100_grctx_generate_r4060a8(struct gf100_gr *gr) in gf100_grctx_generate_r4060a8() argument
1123 struct nvkm_device *device = gr->base.engine.subdev.device; in gf100_grctx_generate_r4060a8()
1127 memcpy(tpcnr, gr->tpc_nr, sizeof(gr->tpc_nr)); in gf100_grctx_generate_r4060a8()
1131 for (tpc = 0; tpc < gr->tpc_total; tpc++) { in gf100_grctx_generate_r4060a8()
1133 gpc = (gpc + 1) % gr->gpc_nr; in gf100_grctx_generate_r4060a8()
1144 gf100_grctx_generate_r418bb8(struct gf100_gr *gr) in gf100_grctx_generate_r418bb8() argument
1146 struct nvkm_device *device = gr->base.engine.subdev.device; in gf100_grctx_generate_r418bb8()
1153 memcpy(tpcnr, gr->tpc_nr, sizeof(gr->tpc_nr)); in gf100_grctx_generate_r418bb8()
1156 for (tpc = 0; tpc < gr->tpc_total; tpc++) { in gf100_grctx_generate_r418bb8()
1158 gpc = (gpc + 1) % gr->gpc_nr; in gf100_grctx_generate_r418bb8()
1170 ntpcv = gr->tpc_total; in gf100_grctx_generate_r418bb8()
1183 nvkm_wr32(device, 0x418bb8, (gr->tpc_total << 8) | in gf100_grctx_generate_r418bb8()
1184 gr->magic_not_rop_nr); in gf100_grctx_generate_r418bb8()
1189 nvkm_wr32(device, 0x419bd0, (gr->tpc_total << 8) | in gf100_grctx_generate_r418bb8()
1190 gr->magic_not_rop_nr | data2[0]); in gf100_grctx_generate_r418bb8()
1196 nvkm_wr32(device, 0x4078bc, (gr->tpc_total << 8) | in gf100_grctx_generate_r418bb8()
1197 gr->magic_not_rop_nr); in gf100_grctx_generate_r418bb8()
1203 gf100_grctx_generate_r406800(struct gf100_gr *gr) in gf100_grctx_generate_r406800() argument
1205 struct nvkm_device *device = gr->base.engine.subdev.device; in gf100_grctx_generate_r406800()
1211 memcpy(tpcnr, gr->tpc_nr, sizeof(gr->tpc_nr)); in gf100_grctx_generate_r406800()
1212 for (gpc = 0; gpc < gr->gpc_nr; gpc++) in gf100_grctx_generate_r406800()
1213 tpc_mask |= ((1ULL << gr->tpc_nr[gpc]) - 1) << (gpc * 8); in gf100_grctx_generate_r406800()
1216 a = (i * (gr->tpc_total - 1)) / 32; in gf100_grctx_generate_r406800()
1220 gpc = (gpc + 1) % gr->gpc_nr; in gf100_grctx_generate_r406800()
1222 tpc = gr->tpc_nr[gpc] - tpcnr[gpc]--; in gf100_grctx_generate_r406800()
1229 if (gr->gpc_nr > 4) { in gf100_grctx_generate_r406800()
1237 gf100_grctx_generate_main(struct gf100_gr *gr, struct gf100_grctx *info) in gf100_grctx_generate_main() argument
1239 struct nvkm_device *device = gr->base.engine.subdev.device; in gf100_grctx_generate_main()
1240 const struct gf100_grctx_func *grctx = gr->func->grctx; in gf100_grctx_generate_main()
1244 gf100_gr_mmio(gr, grctx->hub); in gf100_grctx_generate_main()
1245 gf100_gr_mmio(gr, grctx->gpc); in gf100_grctx_generate_main()
1246 gf100_gr_mmio(gr, grctx->zcull); in gf100_grctx_generate_main()
1247 gf100_gr_mmio(gr, grctx->tpc); in gf100_grctx_generate_main()
1248 gf100_gr_mmio(gr, grctx->ppc); in gf100_grctx_generate_main()
1255 grctx->unkn(gr); in gf100_grctx_generate_main()
1257 gf100_grctx_generate_tpcid(gr); in gf100_grctx_generate_main()
1258 gf100_grctx_generate_r406028(gr); in gf100_grctx_generate_main()
1259 gf100_grctx_generate_r4060a8(gr); in gf100_grctx_generate_main()
1260 gf100_grctx_generate_r418bb8(gr); in gf100_grctx_generate_main()
1261 gf100_grctx_generate_r406800(gr); in gf100_grctx_generate_main()
1263 gf100_gr_icmd(gr, grctx->icmd); in gf100_grctx_generate_main()
1265 gf100_gr_mthd(gr, grctx->mthd); in gf100_grctx_generate_main()
1270 gf100_grctx_generate(struct gf100_gr *gr) in gf100_grctx_generate() argument
1272 const struct gf100_grctx_func *grctx = gr->func->grctx; in gf100_grctx_generate()
1273 struct nvkm_subdev *subdev = &gr->base.engine.subdev; in gf100_grctx_generate()
1283 ret = nvkm_memory_new(device, NVKM_MEM_TARGET_INST, 0x80000 + gr->size, in gf100_grctx_generate()
1323 info.gr = gr; in gf100_grctx_generate()
1324 info.data = gr->mmio_data; in gf100_grctx_generate()
1325 info.mmio = gr->mmio_list; in gf100_grctx_generate()
1330 if (gr->firmware) { in gf100_grctx_generate()
1355 grctx->main(gr, &info); in gf100_grctx_generate()
1370 gr->data = kmalloc(gr->size, GFP_KERNEL); in gf100_grctx_generate()
1371 if (gr->data) { in gf100_grctx_generate()
1373 for (i = 0; i < gr->size; i += 4) in gf100_grctx_generate()
1374 gr->data[i / 4] = nvkm_ro32(chan, 0x80000 + i); in gf100_grctx_generate()