diff options
author | Vaibhav Kachore <vkachore@nvidia.com> | 2018-07-06 05:40:03 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2018-07-10 21:13:43 -0400 |
commit | e14fdcd8f1f4125da697433b1744b1e4e4f15b09 (patch) | |
tree | f48ff794ef77e977ccba397f5abf14f5ae7b185b /drivers/gpu/nvgpu/gk20a/gk20a.h | |
parent | 4cd59404a2d4ab1c31605d96cff848dd4e93c3b4 (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.h | 3 |
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, |