summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/gr_ctx_gk20a.c
diff options
context:
space:
mode:
authorneha <njoshi@nvidia.com>2016-04-11 08:12:39 -0400
committerNirav Patel <nipatel@nvidia.com>2016-07-22 18:10:22 -0400
commitf3d89a2997800a185c2b645593fffe342dc332df (patch)
tree7196e71579579b35a1341cf950de3afa2acebdda /drivers/gpu/nvgpu/gk20a/gr_ctx_gk20a.c
parent51a32d8f2c97ae42fd714078c97af83c7136878f (diff)
gpu: nvgpu: Full chip support for ctxsw
nvgpu changes needed to handle the newly added ctxsw lists Fix regops support for ppc registers Squashed from: Change-Id: I08e6dec3bb2f7aa51de912c9d1c84a350ce07f72 Signed-off-by: neha <njoshi@nvidia.com> Reviewed-on: http://git-master/r/1151010 (cherry picked from commit fd03ad9f09e66f78db88fb7ece448e26e0515821) and: Change-Id: I75a7f810ee0b613c22ac2cef2d936563d8067f97 Signed-off-by: Peter Daifuku <pdaifuku@nvidia.com> Reviewed-on: http://git-master/r/1158888 (cherry picked from commit f00a7fcc57fb937b800e46760087ff6f7637520c) Bug 200180000 Bug 1771830 Reviewed-on: http://git-master/r/1164397 (cherry picked from commit 7028f051e4f37edeff90a9923f022cec6c645a8f) Signed-off-by: Peter Daifuku <pdaifuku@nvidia.com> Change-Id: I796ddf93ef37170843a4a6b44190cd6780d25852 Reviewed-on: http://git-master/r/1183588 Reviewed-by: Vladislav Buzov <vbuzov@nvidia.com> GVS: Gerrit_Virtual_Submit
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/gr_ctx_gk20a.c')
-rw-r--r--drivers/gpu/nvgpu/gk20a/gr_ctx_gk20a.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gr_ctx_gk20a.c b/drivers/gpu/nvgpu/gk20a/gr_ctx_gk20a.c
index 5029db8d..81ac341f 100644
--- a/drivers/gpu/nvgpu/gk20a/gr_ctx_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/gr_ctx_gk20a.c
@@ -336,6 +336,34 @@ static int gr_gk20a_init_ctx_vars_fw(struct gk20a *g, struct gr_gk20a *gr)
336 if (err) 336 if (err)
337 goto clean_up; 337 goto clean_up;
338 break; 338 break;
339 case NETLIST_REGIONID_NVPERF_SYS_ROUTER:
340 gk20a_dbg_info("NETLIST_REGIONID_NVPERF_SYS_ROUTER");
341 err = gr_gk20a_alloc_load_netlist_aiv(
342 src, size, &g->gr.ctx_vars.ctxsw_regs.perf_sys_router);
343 if (err)
344 goto clean_up;
345 break;
346 case NETLIST_REGIONID_NVPERF_PMA:
347 gk20a_dbg_info("NETLIST_REGIONID_NVPERF_PMA");
348 err = gr_gk20a_alloc_load_netlist_aiv(
349 src, size, &g->gr.ctx_vars.ctxsw_regs.perf_pma);
350 if (err)
351 goto clean_up;
352 break;
353 case NETLIST_REGIONID_CTXREG_PMROP:
354 gk20a_dbg_info("NETLIST_REGIONID_CTXREG_PMROP");
355 err = gr_gk20a_alloc_load_netlist_aiv(
356 src, size, &g->gr.ctx_vars.ctxsw_regs.pm_rop);
357 if (err)
358 goto clean_up;
359 break;
360 case NETLIST_REGIONID_CTXREG_PMUCGPC:
361 gk20a_dbg_info("NETLIST_REGIONID_CTXREG_PMUCGPC");
362 err = gr_gk20a_alloc_load_netlist_aiv(
363 src, size, &g->gr.ctx_vars.ctxsw_regs.pm_ucgpc);
364 if (err)
365 goto clean_up;
366 break;
339 default: 367 default:
340 gk20a_dbg_info("unrecognized region %d skipped", i); 368 gk20a_dbg_info("unrecognized region %d skipped", i);
341 break; 369 break;
@@ -381,6 +409,11 @@ clean_up:
381 kfree(g->gr.ctx_vars.ctxsw_regs.gpc_router.l); 409 kfree(g->gr.ctx_vars.ctxsw_regs.gpc_router.l);
382 kfree(g->gr.ctx_vars.ctxsw_regs.pm_ltc.l); 410 kfree(g->gr.ctx_vars.ctxsw_regs.pm_ltc.l);
383 kfree(g->gr.ctx_vars.ctxsw_regs.pm_fbpa.l); 411 kfree(g->gr.ctx_vars.ctxsw_regs.pm_fbpa.l);
412 kfree(g->gr.ctx_vars.ctxsw_regs.pm_fbpa.l);
413 kfree(g->gr.ctx_vars.ctxsw_regs.perf_sys_router.l);
414 kfree(g->gr.ctx_vars.ctxsw_regs.perf_pma.l);
415 kfree(g->gr.ctx_vars.ctxsw_regs.pm_rop.l);
416 kfree(g->gr.ctx_vars.ctxsw_regs.pm_ucgpc.l);
384 release_firmware(netlist_fw); 417 release_firmware(netlist_fw);
385 err = -ENOENT; 418 err = -ENOENT;
386 } 419 }