summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/channel_gk20a.c
diff options
context:
space:
mode:
authorTerje Bergstrom <tbergstrom@nvidia.com>2017-12-27 16:04:17 -0500
committermobile promotions <svcmobile_promotions@nvidia.com>2018-01-02 16:53:09 -0500
commit86691b59c6fae2b091855c0f4d44079cad8529b1 (patch)
treec9fd2914ed052771980298f5e77bd43d7c430ec9 /drivers/gpu/nvgpu/gk20a/channel_gk20a.c
parent14fa8207e2f7feb36f8fa284b94859e05136eb0f (diff)
gpu: nvgpu: Remove bare channel scheduling
Remove scheduling IOCTL implementations for bare channels. Also removes code that constructs bare channels in runlist. Bug 1842197 Change-Id: I6e833b38e24a2f2c45c7993edf939d365eaf41f0 Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1627326 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Seshendra Gadagottu <sgadagottu@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/channel_gk20a.c')
-rw-r--r--drivers/gpu/nvgpu/gk20a/channel_gk20a.c40
1 files changed, 0 insertions, 40 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c
index f4a49a4b..aeac490a 100644
--- a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c
@@ -129,16 +129,6 @@ int channel_gk20a_commit_va(struct channel_gk20a *c)
129 return 0; 129 return 0;
130} 130}
131 131
132u32 gk20a_channel_get_timeslice(struct channel_gk20a *ch)
133{
134 struct gk20a *g = ch->g;
135
136 if (!ch->timeslice_us)
137 return g->ops.fifo.default_timeslice_us(g);
138
139 return ch->timeslice_us;
140}
141
142int gk20a_channel_get_timescale_from_timeslice(struct gk20a *g, 132int gk20a_channel_get_timescale_from_timeslice(struct gk20a *g,
143 int timeslice_period, 133 int timeslice_period,
144 int *__timeslice_timeout, int *__timeslice_scale) 134 int *__timeslice_timeout, int *__timeslice_scale)
@@ -312,34 +302,6 @@ void gk20a_disable_channel(struct channel_gk20a *ch)
312 channel_gk20a_update_runlist(ch, false); 302 channel_gk20a_update_runlist(ch, false);
313} 303}
314 304
315int gk20a_channel_set_runlist_interleave(struct channel_gk20a *ch,
316 u32 level)
317{
318 struct gk20a *g = ch->g;
319 int ret;
320
321 if (gk20a_is_channel_marked_as_tsg(ch)) {
322 nvgpu_err(g, "invalid operation for TSG!");
323 return -EINVAL;
324 }
325
326 switch (level) {
327 case NVGPU_FIFO_RUNLIST_INTERLEAVE_LEVEL_LOW:
328 case NVGPU_FIFO_RUNLIST_INTERLEAVE_LEVEL_MEDIUM:
329 case NVGPU_FIFO_RUNLIST_INTERLEAVE_LEVEL_HIGH:
330 ret = g->ops.fifo.set_runlist_interleave(g, ch->chid,
331 false, 0, level);
332 break;
333 default:
334 ret = -EINVAL;
335 break;
336 }
337
338 gk20a_dbg(gpu_dbg_sched, "chid=%u interleave=%u", ch->chid, level);
339
340 return ret ? ret : g->ops.fifo.update_runlist(g, ch->runlist_id, ~0, true, true);
341}
342
343static void gk20a_wait_until_counter_is_N( 305static void gk20a_wait_until_counter_is_N(
344 struct channel_gk20a *ch, nvgpu_atomic_t *counter, int wait_value, 306 struct channel_gk20a *ch, nvgpu_atomic_t *counter, int wait_value,
345 struct nvgpu_cond *c, const char *caller, const char *counter_name) 307 struct nvgpu_cond *c, const char *caller, const char *counter_name)
@@ -742,8 +704,6 @@ struct channel_gk20a *gk20a_open_new_channel(struct gk20a *g,
742 ch->has_timedout = false; 704 ch->has_timedout = false;
743 ch->wdt_enabled = true; 705 ch->wdt_enabled = true;
744 ch->obj_class = 0; 706 ch->obj_class = 0;
745 ch->interleave_level = NVGPU_FIFO_RUNLIST_INTERLEAVE_LEVEL_LOW;
746 ch->timeslice_us = g->timeslice_low_priority_us;
747#ifdef CONFIG_TEGRA_19x_GPU 707#ifdef CONFIG_TEGRA_19x_GPU
748 memset(&ch->t19x, 0, sizeof(struct channel_t19x)); 708 memset(&ch->t19x, 0, sizeof(struct channel_t19x));
749#endif 709#endif