summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gm20b/fifo_gm20b.c
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/gm20b/fifo_gm20b.c
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/gm20b/fifo_gm20b.c')
-rw-r--r--drivers/gpu/nvgpu/gm20b/fifo_gm20b.c22
1 files changed, 12 insertions, 10 deletions
diff --git a/drivers/gpu/nvgpu/gm20b/fifo_gm20b.c b/drivers/gpu/nvgpu/gm20b/fifo_gm20b.c
index f09da825..fc653357 100644
--- a/drivers/gpu/nvgpu/gm20b/fifo_gm20b.c
+++ b/drivers/gpu/nvgpu/gm20b/fifo_gm20b.c
@@ -188,16 +188,18 @@ void gm20b_init_fifo(struct gpu_ops *gops)
188{ 188{
189 gops->fifo.init_fifo_setup_hw = gk20a_init_fifo_setup_hw; 189 gops->fifo.init_fifo_setup_hw = gk20a_init_fifo_setup_hw;
190 gops->fifo.bind_channel = channel_gm20b_bind; 190 gops->fifo.bind_channel = channel_gm20b_bind;
191 gops->fifo.unbind_channel = channel_gk20a_unbind; 191 gops->fifo.unbind_channel = gk20a_fifo_channel_unbind;
192 gops->fifo.disable_channel = channel_gk20a_disable; 192 gops->fifo.disable_channel = gk20a_fifo_disable_channel;
193 gops->fifo.enable_channel = channel_gk20a_enable; 193 gops->fifo.enable_channel = gk20a_fifo_enable_channel;
194 gops->fifo.alloc_inst = channel_gk20a_alloc_inst; 194 gops->fifo.alloc_inst = gk20a_fifo_alloc_inst;
195 gops->fifo.free_inst = channel_gk20a_free_inst; 195 gops->fifo.free_inst = gk20a_fifo_free_inst;
196 gops->fifo.setup_ramfc = channel_gk20a_setup_ramfc; 196 gops->fifo.setup_ramfc = gk20a_fifo_setup_ramfc;
197 gops->fifo.channel_set_priority = gk20a_channel_set_priority; 197 gops->fifo.channel_set_priority = gk20a_fifo_set_priority;
198 gops->fifo.channel_set_timeslice = gk20a_channel_set_timeslice; 198 gops->fifo.channel_set_timeslice = gk20a_fifo_set_timeslice;
199 gops->fifo.userd_gp_get = gk20a_userd_gp_get; 199 gops->fifo.setup_userd = gk20a_fifo_setup_userd;
200 gops->fifo.userd_gp_put = gk20a_userd_gp_put; 200 gops->fifo.userd_gp_get = gk20a_fifo_userd_gp_get;
201 gops->fifo.userd_gp_put = gk20a_fifo_userd_gp_put;
202 gops->fifo.pbdma_acquire_val = gk20a_fifo_pbdma_acquire_val;
201 203
202 gops->fifo.preempt_channel = gk20a_fifo_preempt_channel; 204 gops->fifo.preempt_channel = gk20a_fifo_preempt_channel;
203 gops->fifo.preempt_tsg = gk20a_fifo_preempt_tsg; 205 gops->fifo.preempt_tsg = gk20a_fifo_preempt_tsg;