diff options
author | neha <njoshi@nvidia.com> | 2016-04-11 08:12:39 -0400 |
---|---|---|
committer | Nirav Patel <nipatel@nvidia.com> | 2016-07-22 18:10:22 -0400 |
commit | f3d89a2997800a185c2b645593fffe342dc332df (patch) | |
tree | 7196e71579579b35a1341cf950de3afa2acebdda /drivers/gpu/nvgpu/gk20a/gr_ctx_gk20a.c | |
parent | 51a32d8f2c97ae42fd714078c97af83c7136878f (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.c | 33 |
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 | } |