summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/gk20a.h
diff options
context:
space:
mode:
authorTerje Bergstrom <tbergstrom@nvidia.com>2017-03-23 14:03:15 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2017-03-29 12:15:59 -0400
commit4022b989aa2e91fe77ed52df49d45838f6d8b9bb (patch)
tree4c8240ac83887c21db902a255306c67041c4525c /drivers/gpu/nvgpu/gk20a/gk20a.h
parentf04031e5e8837abb2be3feb0ee30e1af54de7845 (diff)
gpu: nvgpu: Remove direct HW access from ctrl_gk20a.c
ctrl_gk20a.c had some direct accesses to hardware. These violate the HAL rules, because we don't have per-GPU ctrl, and thus the code cannot be made GPU independent. Move all GR accesses to new GR HALs and use existing bus HAL for accessing timer. Remove #includes of all hardware headers. JIRA NVGPU-28 Change-Id: I57e67519f62e9bd6c3e725e1bef6e366190f5834 Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: http://git-master/r/1327001 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.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.h b/drivers/gpu/nvgpu/gk20a/gk20a.h
index 4f50ae36..951c8267 100644
--- a/drivers/gpu/nvgpu/gk20a/gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/gk20a.h
@@ -346,6 +346,12 @@ struct gpu_ops {
346 struct mem_desc *mem, u64 gpu_va); 346 struct mem_desc *mem, u64 gpu_va);
347 void (*init_elcg_mode)(struct gk20a *g, u32 mode, u32 engine); 347 void (*init_elcg_mode)(struct gk20a *g, u32 mode, u32 engine);
348 void (*load_tpc_mask)(struct gk20a *g); 348 void (*load_tpc_mask)(struct gk20a *g);
349 int (*inval_icache)(struct gk20a *g, struct channel_gk20a *ch);
350 int (*trigger_suspend)(struct gk20a *g);
351 int (*wait_for_pause)(struct gk20a *g, struct warpstate *w_state);
352 int (*resume_from_pause)(struct gk20a *g);
353 int (*clear_sm_errors)(struct gk20a *g);
354 u32 (*tpc_enabled_exceptions)(struct gk20a *g);
349 } gr; 355 } gr;
350 struct { 356 struct {
351 void (*init_hw)(struct gk20a *g); 357 void (*init_hw)(struct gk20a *g);