summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/gk20a.h
diff options
context:
space:
mode:
authorVaibhav Kachore <vkachore@nvidia.com>2018-07-06 05:40:03 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2018-07-10 21:13:43 -0400
commite14fdcd8f1f4125da697433b1744b1e4e4f15b09 (patch)
treef48ff794ef77e977ccba397f5abf14f5ae7b185b /drivers/gpu/nvgpu/gk20a/gk20a.h
parent4cd59404a2d4ab1c31605d96cff848dd4e93c3b4 (diff)
gpu: nvgpu: enable HWPM Mode-E context switch
- Write new pm mode to context buffer header. Ucode use this mode to enable mode-e context switch. This is Mode-B context switch of PMs with Mode-E streamout on one context. If this mode is set, Ucode makes sure that Mode-E pipe (perfmons, routers, pma) is idle before it context switches PMs. - This allows us to collect counters in a secure way (i.e. on context basis) with stream out. Bug 2106999 Change-Id: I5a7435f09d1bf053ca428e538b0a57f3a175ac37 Signed-off-by: Vaibhav Kachore <vkachore@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1760366 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/gk20a.h')
-rw-r--r--drivers/gpu/nvgpu/gk20a/gk20a.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.h b/drivers/gpu/nvgpu/gk20a/gk20a.h
index 23ed2f15..ce0a6563 100644
--- a/drivers/gpu/nvgpu/gk20a/gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/gk20a.h
@@ -307,10 +307,11 @@ struct gpu_ops {
307 int (*update_smpc_ctxsw_mode)(struct gk20a *g, 307 int (*update_smpc_ctxsw_mode)(struct gk20a *g,
308 struct channel_gk20a *c, 308 struct channel_gk20a *c,
309 bool enable); 309 bool enable);
310 u32 (*get_hw_accessor_stream_out_mode)(void);
310 int (*update_hwpm_ctxsw_mode)(struct gk20a *g, 311 int (*update_hwpm_ctxsw_mode)(struct gk20a *g,
311 struct channel_gk20a *c, 312 struct channel_gk20a *c,
312 u64 gpu_va, 313 u64 gpu_va,
313 bool enable); 314 u32 mode);
314 int (*dump_gr_regs)(struct gk20a *g, 315 int (*dump_gr_regs)(struct gk20a *g,
315 struct gk20a_debug_output *o); 316 struct gk20a_debug_output *o);
316 int (*update_pc_sampling)(struct channel_gk20a *ch, 317 int (*update_pc_sampling)(struct channel_gk20a *ch,