diff options
author | Terje Bergstrom <tbergstrom@nvidia.com> | 2017-03-14 16:39:59 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2017-03-28 18:55:48 -0400 |
commit | f04031e5e8837abb2be3feb0ee30e1af54de7845 (patch) | |
tree | 02a61de9f9a283a2c0fb02d7a204d2dd2176f5ff /drivers/gpu/nvgpu/gk20a/gk20a.h | |
parent | 3e39798997f0726472e18a17462216094c084074 (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.h | 6 |
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*/ |