diff options
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 | } |