summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/gk20a.h
diff options
context:
space:
mode:
authorTerje Bergstrom <tbergstrom@nvidia.com>2017-03-15 17:08:32 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2017-03-17 11:44:03 -0400
commitca762e42205febba72ce063417e1ac598610941d (patch)
treecaff32adafb4c09ed335756da3e8beb7b87fe47b /drivers/gpu/nvgpu/gk20a/gk20a.h
parent0742f4e7032aabf44a31792330fcd4f55f4540f7 (diff)
gpu: nvgpu: Move all FB programming to FB HAL
Move all programming of FB to fb_*.c files, and remove the inclusion of FB hardware headers from other files. TLB invalidate function took previously a pointer to VM, but the new API takes only a PDB mem_desc, because FB does not need to know about higher level VM. GPC MMU is programmed from the same function as FB MMU, so added dependency to GR hardware header to FB. GP106 ACR was also triggering a VPR fetch, but that's not applicable to dGPU, so removed that call. Change-Id: I4eb69377ac3745da205907626cf60948b7c5392a Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: http://git-master/r/1321516 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.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.h b/drivers/gpu/nvgpu/gk20a/gk20a.h
index 695d2d1a..73123fa9 100644
--- a/drivers/gpu/nvgpu/gk20a/gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/gk20a.h
@@ -349,6 +349,7 @@ struct gpu_ops {
349 } gr; 349 } gr;
350 const char *name; 350 const char *name;
351 struct { 351 struct {
352 void (*init_hw)(struct gk20a *g);
352 void (*init_fs_state)(struct gk20a *g); 353 void (*init_fs_state)(struct gk20a *g);
353 void (*reset)(struct gk20a *g); 354 void (*reset)(struct gk20a *g);
354 void (*init_uncompressed_kind_map)(struct gk20a *g); 355 void (*init_uncompressed_kind_map)(struct gk20a *g);
@@ -358,6 +359,10 @@ struct gpu_ops {
358 unsigned int (*compression_page_size)(struct gk20a *g); 359 unsigned int (*compression_page_size)(struct gk20a *g);
359 unsigned int (*compressible_page_size)(struct gk20a *g); 360 unsigned int (*compressible_page_size)(struct gk20a *g);
360 void (*dump_vpr_wpr_info)(struct gk20a *g); 361 void (*dump_vpr_wpr_info)(struct gk20a *g);
362 int (*vpr_info_fetch)(struct gk20a *g);
363 bool (*is_debug_mode_enabled)(struct gk20a *g);
364 void (*set_debug_mode)(struct gk20a *g, bool enable);
365 void (*tlb_invalidate)(struct gk20a *g, struct mem_desc *pdb);
361 } fb; 366 } fb;
362 struct { 367 struct {
363 void (*slcg_bus_load_gating_prod)(struct gk20a *g, bool prod); 368 void (*slcg_bus_load_gating_prod)(struct gk20a *g, bool prod);
@@ -573,8 +578,6 @@ struct gpu_ops {
573 } fecs_trace; 578 } fecs_trace;
574 struct { 579 struct {
575 bool (*support_sparse)(struct gk20a *g); 580 bool (*support_sparse)(struct gk20a *g);
576 bool (*is_debug_mode_enabled)(struct gk20a *g);
577 void (*set_debug_mode)(struct gk20a *g, bool enable);
578 u64 (*gmmu_map)(struct vm_gk20a *vm, 581 u64 (*gmmu_map)(struct vm_gk20a *vm,
579 u64 map_offset, 582 u64 map_offset,
580 struct sg_table *sgt, 583 struct sg_table *sgt,
@@ -607,7 +610,6 @@ struct gpu_ops {
607 void (*l2_invalidate)(struct gk20a *g); 610 void (*l2_invalidate)(struct gk20a *g);
608 void (*l2_flush)(struct gk20a *g, bool invalidate); 611 void (*l2_flush)(struct gk20a *g, bool invalidate);
609 void (*cbc_clean)(struct gk20a *g); 612 void (*cbc_clean)(struct gk20a *g);
610 void (*tlb_invalidate)(struct vm_gk20a *vm);
611 void (*set_big_page_size)(struct gk20a *g, 613 void (*set_big_page_size)(struct gk20a *g,
612 struct mem_desc *mem, int size); 614 struct mem_desc *mem, int size);
613 u32 (*get_big_page_sizes)(void); 615 u32 (*get_big_page_sizes)(void);