summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/gk20a.h
diff options
context:
space:
mode:
authorTerje Bergstrom <tbergstrom@nvidia.com>2017-03-14 16:39:59 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2017-03-28 18:55:48 -0400
commitf04031e5e8837abb2be3feb0ee30e1af54de7845 (patch)
tree02a61de9f9a283a2c0fb02d7a204d2dd2176f5ff /drivers/gpu/nvgpu/gk20a/gk20a.h
parent3e39798997f0726472e18a17462216094c084074 (diff)
gpu: nvgpu: Move programming of host registers to fifo
Move code that touches host registers and instance block to fifo HAL. This involves adding HAL ops for the fifo HAL functions that get called from outside fifo. This clears responsibility of channel by leaving it only managing channels in software and push buffers. channel had member ramfc defined, but it was not used, to remove it. pbdma_acquire_val consisted both of channel logic and hardware programming. The channel logic was moved to the caller and only hardware programming was moved. Change-Id: Id005787f6cc91276b767e8e86325caf966913de9 Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: http://git-master/r/1322423 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, 5 insertions, 1 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.h b/drivers/gpu/nvgpu/gk20a/gk20a.h
index c8932d63..4f50ae36 100644
--- a/drivers/gpu/nvgpu/gk20a/gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/gk20a.h
@@ -398,7 +398,9 @@ struct gpu_ops {
398 int (*alloc_inst)(struct gk20a *g, struct channel_gk20a *ch); 398 int (*alloc_inst)(struct gk20a *g, struct channel_gk20a *ch);
399 void (*free_inst)(struct gk20a *g, struct channel_gk20a *ch); 399 void (*free_inst)(struct gk20a *g, struct channel_gk20a *ch);
400 int (*setup_ramfc)(struct channel_gk20a *c, u64 gpfifo_base, 400 int (*setup_ramfc)(struct channel_gk20a *c, u64 gpfifo_base,
401 u32 gpfifo_entries, u32 flags); 401 u32 gpfifo_entries,
402 unsigned long acquire_timeout,
403 u32 flags);
402 int (*resetup_ramfc)(struct channel_gk20a *c); 404 int (*resetup_ramfc)(struct channel_gk20a *c);
403 int (*preempt_channel)(struct gk20a *g, u32 hw_chid); 405 int (*preempt_channel)(struct gk20a *g, u32 hw_chid);
404 int (*preempt_tsg)(struct gk20a *g, u32 tsgid); 406 int (*preempt_tsg)(struct gk20a *g, u32 tsgid);
@@ -456,6 +458,8 @@ struct gpu_ops {
456 unsigned int id_type, unsigned int timeout_rc_type); 458 unsigned int id_type, unsigned int timeout_rc_type);
457 void (*init_pbdma_intr_descs)(struct fifo_gk20a *f); 459 void (*init_pbdma_intr_descs)(struct fifo_gk20a *f);
458 int (*reset_enable_hw)(struct gk20a *g); 460 int (*reset_enable_hw)(struct gk20a *g);
461 int (*setup_userd)(struct channel_gk20a *c);
462 u32 (*pbdma_acquire_val)(u64 timeout);
459 } fifo; 463 } fifo;
460 struct pmu_v { 464 struct pmu_v {
461 /*used for change of enum zbc update cmd id from ver 0 to ver1*/ 465 /*used for change of enum zbc update cmd id from ver 0 to ver1*/