diff options
author | Deepak Nibade <dnibade@nvidia.com> | 2017-11-08 04:57:14 -0500 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2017-11-08 12:09:54 -0500 |
commit | 3cb65f57d532d596bfb931f3e4b995004e36a129 (patch) | |
tree | 5583ef2ed72a9fdface37011b22f72ae12e78079 /drivers/gpu/nvgpu/gk20a | |
parent | c22a5af9137394524f76e1f54b4e48fe92714fec (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.c | 8 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/fifo_gk20a.c | 8 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/fifo_gk20a.h | 7 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/tsg_gk20a.c | 8 |
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) | |||
4081 | const char *gk20a_fifo_interleave_level_name(u32 interleave_level) | 4081 | const 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 @@ | |||
38 | struct gk20a_debug_output; | 38 | struct gk20a_debug_output; |
39 | struct mmu_fault_info; | 39 | struct mmu_fault_info; |
40 | 40 | ||
41 | enum { | ||
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; |