mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-25 11:04:51 +03:00
gpu: nvgpu: add gr/ctx API to init zcull in context
gr_gk20a_init_golden_ctx_image() right now directly initializes zcull state in context image by calling g->ops.gr.ctxsw_prog HAL Add new API nvgpu_gr_ctx_init_zcull() in gr/ctx unit to do this initialization and use it in gr_gk20a_init_golden_ctx_image() Jira NVGPU-1527 Change-Id: I8cf58168cbc9c01fdd663e1ade50b7804118ef01 Signed-off-by: Deepak Nibade <dnibade@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/2011091 Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com> Reviewed-by: svc-mobile-misra <svc-mobile-misra@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
committed by
mobile promotions
parent
bac95b36d8
commit
2af1558d42
@@ -613,6 +613,22 @@ u32 nvgpu_gr_ctx_get_ctx_id(struct gk20a *g, struct nvgpu_gr_ctx *gr_ctx)
|
||||
return gr_ctx->ctx_id;
|
||||
}
|
||||
|
||||
int nvgpu_gr_ctx_init_zcull(struct gk20a *g, struct nvgpu_gr_ctx *gr_ctx)
|
||||
{
|
||||
int err;
|
||||
|
||||
err = g->ops.mm.l2_flush(g, true);
|
||||
if (err != 0) {
|
||||
nvgpu_err(g, "l2_flush failed");
|
||||
return err;
|
||||
}
|
||||
|
||||
g->ops.gr.ctxsw_prog.set_zcull_mode_no_ctxsw(g, &gr_ctx->mem);
|
||||
g->ops.gr.ctxsw_prog.set_zcull_ptr(g, &gr_ctx->mem, 0);
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
int nvgpu_gr_ctx_zcull_setup(struct gk20a *g, struct nvgpu_gr_ctx *gr_ctx,
|
||||
bool set_zcull_ptr)
|
||||
{
|
||||
|
||||
@@ -1355,14 +1355,10 @@ restore_fe_go_idle:
|
||||
goto clean_up;
|
||||
}
|
||||
|
||||
err = g->ops.mm.l2_flush(g, true);
|
||||
err = nvgpu_gr_ctx_init_zcull(g, gr_ctx);
|
||||
if (err != 0) {
|
||||
nvgpu_err(g, "l2_flush failed");
|
||||
goto clean_up;
|
||||
}
|
||||
g->ops.gr.ctxsw_prog.set_zcull_mode_no_ctxsw(g, gr_mem);
|
||||
|
||||
g->ops.gr.ctxsw_prog.set_zcull_ptr(g, gr_mem, 0);
|
||||
|
||||
gr_gk20a_fecs_ctx_image_save(c, gr_fecs_method_push_adr_wfi_golden_save_v());
|
||||
|
||||
|
||||
@@ -179,6 +179,7 @@ void nvgpu_gr_ctx_patch_write(struct gk20a *g,
|
||||
|
||||
u32 nvgpu_gr_ctx_get_ctx_id(struct gk20a *g, struct nvgpu_gr_ctx *gr_ctx);
|
||||
|
||||
int nvgpu_gr_ctx_init_zcull(struct gk20a *g, struct nvgpu_gr_ctx *gr_ctx);
|
||||
int nvgpu_gr_ctx_zcull_setup(struct gk20a *g, struct nvgpu_gr_ctx *gr_ctx,
|
||||
bool set_zcull_ptr);
|
||||
#endif /* NVGPU_INCLUDE_GR_CTX_H */
|
||||
|
||||
Reference in New Issue
Block a user