diff options
author | Terje Bergstrom <tbergstrom@nvidia.com> | 2017-03-23 14:03:15 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2017-03-29 12:15:59 -0400 |
commit | 4022b989aa2e91fe77ed52df49d45838f6d8b9bb (patch) | |
tree | 4c8240ac83887c21db902a255306c67041c4525c /drivers/gpu/nvgpu/gk20a/gk20a.h | |
parent | f04031e5e8837abb2be3feb0ee30e1af54de7845 (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.h | 6 |
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); |