summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a
diff options
context:
space:
mode:
authorDeepak Nibade <dnibade@nvidia.com>2017-11-08 04:57:14 -0500
committermobile promotions <svcmobile_promotions@nvidia.com>2017-11-08 12:09:54 -0500
commit3cb65f57d532d596bfb931f3e4b995004e36a129 (patch)
tree5583ef2ed72a9fdface37011b22f72ae12e78079 /drivers/gpu/nvgpu/gk20a
parentc22a5af9137394524f76e1f54b4e48fe92714fec (diff)
gpu: nvgpu: define runlist level in common code
All the runlist levels NVGPU_RUNLIST_INTERLEAVE_LEVEL_* are declared in linux specific uapi header and used in common code But since common code should be linux-independent, move these uses out of common code Define new runlist levels NVGPU_FIFO_RUNLIST_INTERLEAVE_LEVEL_* in common code and use them wherever required Add new API nvgpu_get_common_runlist_level() to get common runlist level of the form NVGPU_FIFO_RUNLIST_INTERLEAVE_LEVEL_* from linux specific runlist level of the form NVGPU_RUNLIST_INTERLEAVE_LEVEL_* Jira NVGPU-259 Change-Id: Ic19239f0f8275683d5d1b981df530acd90e6dfbb Signed-off-by: Deepak Nibade <dnibade@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1594327 Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom <tbergstrom@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')
-rw-r--r--drivers/gpu/nvgpu/gk20a/channel_gk20a.c8
-rw-r--r--drivers/gpu/nvgpu/gk20a/fifo_gk20a.c8
-rw-r--r--drivers/gpu/nvgpu/gk20a/fifo_gk20a.h7
-rw-r--r--drivers/gpu/nvgpu/gk20a/tsg_gk20a.c8
4 files changed, 19 insertions, 12 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c
index 6c607ae2..229e3782 100644
--- a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c
@@ -322,9 +322,9 @@ int gk20a_channel_set_runlist_interleave(struct channel_gk20a *ch,
322 } 322 }
323 323
324 switch (level) { 324 switch (level) {
325 case NVGPU_RUNLIST_INTERLEAVE_LEVEL_LOW: 325 case NVGPU_FIFO_RUNLIST_INTERLEAVE_LEVEL_LOW:
326 case NVGPU_RUNLIST_INTERLEAVE_LEVEL_MEDIUM: 326 case NVGPU_FIFO_RUNLIST_INTERLEAVE_LEVEL_MEDIUM:
327 case NVGPU_RUNLIST_INTERLEAVE_LEVEL_HIGH: 327 case NVGPU_FIFO_RUNLIST_INTERLEAVE_LEVEL_HIGH:
328 ret = g->ops.fifo.set_runlist_interleave(g, ch->chid, 328 ret = g->ops.fifo.set_runlist_interleave(g, ch->chid,
329 false, 0, level); 329 false, 0, level);
330 break; 330 break;
@@ -858,7 +858,7 @@ struct channel_gk20a *gk20a_open_new_channel(struct gk20a *g,
858 ch->has_timedout = false; 858 ch->has_timedout = false;
859 ch->wdt_enabled = true; 859 ch->wdt_enabled = true;
860 ch->obj_class = 0; 860 ch->obj_class = 0;
861 ch->interleave_level = NVGPU_RUNLIST_INTERLEAVE_LEVEL_LOW; 861 ch->interleave_level = NVGPU_FIFO_RUNLIST_INTERLEAVE_LEVEL_LOW;
862 ch->timeslice_us = g->timeslice_low_priority_us; 862 ch->timeslice_us = g->timeslice_low_priority_us;
863#ifdef CONFIG_TEGRA_19x_GPU 863#ifdef CONFIG_TEGRA_19x_GPU
864 memset(&ch->t19x, 0, sizeof(struct channel_t19x)); 864 memset(&ch->t19x, 0, sizeof(struct channel_t19x));
diff --git a/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c b/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c
index 76995406..061ceba1 100644
--- a/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c
@@ -3048,7 +3048,7 @@ static u32 *gk20a_runlist_construct_locked(struct fifo_gk20a *f,
3048 bool prev_empty, 3048 bool prev_empty,
3049 u32 *entries_left) 3049 u32 *entries_left)
3050{ 3050{
3051 bool last_level = cur_level == NVGPU_RUNLIST_INTERLEAVE_LEVEL_HIGH; 3051 bool last_level = cur_level == NVGPU_FIFO_RUNLIST_INTERLEAVE_LEVEL_HIGH;
3052 struct channel_gk20a *ch; 3052 struct channel_gk20a *ch;
3053 bool skip_next = false; 3053 bool skip_next = false;
3054 u32 chid, tsgid, count = 0; 3054 u32 chid, tsgid, count = 0;
@@ -4081,13 +4081,13 @@ u32 gk20a_fifo_pbdma_acquire_val(u64 timeout)
4081const char *gk20a_fifo_interleave_level_name(u32 interleave_level) 4081const char *gk20a_fifo_interleave_level_name(u32 interleave_level)
4082{ 4082{
4083 switch (interleave_level) { 4083 switch (interleave_level) {
4084 case NVGPU_RUNLIST_INTERLEAVE_LEVEL_LOW: 4084 case NVGPU_FIFO_RUNLIST_INTERLEAVE_LEVEL_LOW:
4085 return "LOW"; 4085 return "LOW";
4086 4086
4087 case NVGPU_RUNLIST_INTERLEAVE_LEVEL_MEDIUM: 4087 case NVGPU_FIFO_RUNLIST_INTERLEAVE_LEVEL_MEDIUM:
4088 return "MEDIUM"; 4088 return "MEDIUM";
4089 4089
4090 case NVGPU_RUNLIST_INTERLEAVE_LEVEL_HIGH: 4090 case NVGPU_FIFO_RUNLIST_INTERLEAVE_LEVEL_HIGH:
4091 return "HIGH"; 4091 return "HIGH";
4092 4092
4093 default: 4093 default:
diff --git a/drivers/gpu/nvgpu/gk20a/fifo_gk20a.h b/drivers/gpu/nvgpu/gk20a/fifo_gk20a.h
index ea5d55a4..4c967e80 100644
--- a/drivers/gpu/nvgpu/gk20a/fifo_gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/fifo_gk20a.h
@@ -38,6 +38,13 @@
38struct gk20a_debug_output; 38struct gk20a_debug_output;
39struct mmu_fault_info; 39struct mmu_fault_info;
40 40
41enum {
42 NVGPU_FIFO_RUNLIST_INTERLEAVE_LEVEL_LOW = 0,
43 NVGPU_FIFO_RUNLIST_INTERLEAVE_LEVEL_MEDIUM,
44 NVGPU_FIFO_RUNLIST_INTERLEAVE_LEVEL_HIGH,
45 NVGPU_FIFO_RUNLIST_INTERLEAVE_NUM_LEVELS,
46};
47
41#define MAX_RUNLIST_BUFFERS 2 48#define MAX_RUNLIST_BUFFERS 2
42 49
43#define FIFO_INVAL_ENGINE_ID ((u32)~0) 50#define FIFO_INVAL_ENGINE_ID ((u32)~0)
diff --git a/drivers/gpu/nvgpu/gk20a/tsg_gk20a.c b/drivers/gpu/nvgpu/gk20a/tsg_gk20a.c
index badc7ef9..640174a6 100644
--- a/drivers/gpu/nvgpu/gk20a/tsg_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/tsg_gk20a.c
@@ -229,9 +229,9 @@ int gk20a_tsg_set_runlist_interleave(struct tsg_gk20a *tsg, u32 level)
229 gk20a_dbg(gpu_dbg_sched, "tsgid=%u interleave=%u", tsg->tsgid, level); 229 gk20a_dbg(gpu_dbg_sched, "tsgid=%u interleave=%u", tsg->tsgid, level);
230 230
231 switch (level) { 231 switch (level) {
232 case NVGPU_RUNLIST_INTERLEAVE_LEVEL_LOW: 232 case NVGPU_FIFO_RUNLIST_INTERLEAVE_LEVEL_LOW:
233 case NVGPU_RUNLIST_INTERLEAVE_LEVEL_MEDIUM: 233 case NVGPU_FIFO_RUNLIST_INTERLEAVE_LEVEL_MEDIUM:
234 case NVGPU_RUNLIST_INTERLEAVE_LEVEL_HIGH: 234 case NVGPU_FIFO_RUNLIST_INTERLEAVE_LEVEL_HIGH:
235 ret = g->ops.fifo.set_runlist_interleave(g, tsg->tsgid, 235 ret = g->ops.fifo.set_runlist_interleave(g, tsg->tsgid,
236 true, 0, level); 236 true, 0, level);
237 if (!ret) 237 if (!ret)
@@ -304,7 +304,7 @@ struct tsg_gk20a *gk20a_tsg_open(struct gk20a *g)
304 304
305 tsg->tsg_gr_ctx = NULL; 305 tsg->tsg_gr_ctx = NULL;
306 tsg->vm = NULL; 306 tsg->vm = NULL;
307 tsg->interleave_level = NVGPU_RUNLIST_INTERLEAVE_LEVEL_LOW; 307 tsg->interleave_level = NVGPU_FIFO_RUNLIST_INTERLEAVE_LEVEL_LOW;
308 tsg->timeslice_us = 0; 308 tsg->timeslice_us = 0;
309 tsg->timeslice_timeout = 0; 309 tsg->timeslice_timeout = 0;
310 tsg->timeslice_scale = 0; 310 tsg->timeslice_scale = 0;