summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDeepak Nibade <dnibade@nvidia.com>2017-11-08 10:37:24 -0500
committermobile promotions <svcmobile_promotions@nvidia.com>2017-11-10 13:30:19 -0500
commit83bdf33b56b231784987028c9c3c461097a962aa (patch)
tree80744d6cf20aaa20ab1c7640d38a8432f9081c14
parenta17a938a48af462ccf89195196a13b9623af2e21 (diff)
gpu: nvgpu: remove NVGPU_ALLOC_OBJ_FLAGS_* from common code
In gr_gp10b_alloc_gr_ctx(), we use linux specific flags NVGPU_ALLOC_OBJ_FLAGS_* Since common code should be independent of linux specific code, define new flags NVGPU_OBJ_CTX_FLAGS_SUPPORT_* in common code and use them wherever needed Linux code will parse the user flags and send appropriate flags to g->ops.gr.alloc_obj_ctx() Also remove use of NVGPU_ALLOC_OBJ_FLAGS_LOCKBOOST_ZERO since this seems to be deadcode anyways Jira NVGPU-382 Change-Id: Id82efe0d46ddc3e2c063610025ea57f283bc3510 Signed-off-by: Deepak Nibade <dnibade@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1594452 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
-rw-r--r--drivers/gpu/nvgpu/common/linux/ioctl_channel.c22
-rw-r--r--drivers/gpu/nvgpu/gk20a/channel_gk20a.h4
-rw-r--r--drivers/gpu/nvgpu/gk20a/gr_gk20a.c2
-rw-r--r--drivers/gpu/nvgpu/gp10b/gr_gp10b.c4
-rw-r--r--drivers/gpu/nvgpu/vgpu/gp10b/vgpu_gr_gp10b.c4
5 files changed, 29 insertions, 7 deletions
diff --git a/drivers/gpu/nvgpu/common/linux/ioctl_channel.c b/drivers/gpu/nvgpu/common/linux/ioctl_channel.c
index 0c8bff43..f5947828 100644
--- a/drivers/gpu/nvgpu/common/linux/ioctl_channel.c
+++ b/drivers/gpu/nvgpu/common/linux/ioctl_channel.c
@@ -971,6 +971,26 @@ fail:
971 return err; 971 return err;
972} 972}
973 973
974static u32 nvgpu_obj_ctx_user_flags_to_common_flags(u32 user_flags)
975{
976 u32 flags = 0;
977
978 if (user_flags & NVGPU_ALLOC_OBJ_FLAGS_GFXP)
979 flags |= NVGPU_OBJ_CTX_FLAGS_SUPPORT_GFXP;
980
981 if (user_flags & NVGPU_ALLOC_OBJ_FLAGS_CILP)
982 flags |= NVGPU_OBJ_CTX_FLAGS_SUPPORT_CILP;
983
984 return flags;
985}
986
987static int nvgpu_ioctl_channel_alloc_obj_ctx(struct channel_gk20a *ch,
988 u32 class_num, u32 user_flags)
989{
990 return ch->g->ops.gr.alloc_obj_ctx(ch, class_num,
991 nvgpu_obj_ctx_user_flags_to_common_flags(user_flags));
992}
993
974long gk20a_channel_ioctl(struct file *filp, 994long gk20a_channel_ioctl(struct file *filp,
975 unsigned int cmd, unsigned long arg) 995 unsigned int cmd, unsigned long arg)
976{ 996{
@@ -1024,7 +1044,7 @@ long gk20a_channel_ioctl(struct file *filp,
1024 __func__, cmd); 1044 __func__, cmd);
1025 break; 1045 break;
1026 } 1046 }
1027 err = ch->g->ops.gr.alloc_obj_ctx(ch, args->class_num, args->flags); 1047 err = nvgpu_ioctl_channel_alloc_obj_ctx(ch, args->class_num, args->flags);
1028 gk20a_idle(ch->g); 1048 gk20a_idle(ch->g);
1029 break; 1049 break;
1030 } 1050 }
diff --git a/drivers/gpu/nvgpu/gk20a/channel_gk20a.h b/drivers/gpu/nvgpu/gk20a/channel_gk20a.h
index 58a8aa97..d865849b 100644
--- a/drivers/gpu/nvgpu/gk20a/channel_gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/channel_gk20a.h
@@ -52,6 +52,10 @@ struct fifo_profile_gk20a;
52#define NVGPU_GPFIFO_FLAGS_SUPPORT_VPR (1 << 0) 52#define NVGPU_GPFIFO_FLAGS_SUPPORT_VPR (1 << 0)
53#define NVGPU_GPFIFO_FLAGS_SUPPORT_DETERMINISTIC (1 << 1) 53#define NVGPU_GPFIFO_FLAGS_SUPPORT_DETERMINISTIC (1 << 1)
54 54
55/* Flags to be passed to g->ops.gr.alloc_obj_ctx() */
56#define NVGPU_OBJ_CTX_FLAGS_SUPPORT_GFXP (1 << 1)
57#define NVGPU_OBJ_CTX_FLAGS_SUPPORT_CILP (1 << 2)
58
55struct notification { 59struct notification {
56 struct { 60 struct {
57 u32 nanoseconds[2]; 61 u32 nanoseconds[2];
diff --git a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
index b77db87f..ddce0716 100644
--- a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
@@ -3046,8 +3046,6 @@ int gk20a_alloc_obj_ctx(struct channel_gk20a *c, u32 class_num, u32 flags)
3046 "failed to set texlock for compute class"); 3046 "failed to set texlock for compute class");
3047 } 3047 }
3048 3048
3049 flags |= NVGPU_ALLOC_OBJ_FLAGS_LOCKBOOST_ZERO;
3050
3051 if (g->support_pmu && g->can_elpg) 3049 if (g->support_pmu && g->can_elpg)
3052 nvgpu_pmu_enable_elpg(g); 3050 nvgpu_pmu_enable_elpg(g);
3053 } 3051 }
diff --git a/drivers/gpu/nvgpu/gp10b/gr_gp10b.c b/drivers/gpu/nvgpu/gp10b/gr_gp10b.c
index 2fd393bd..24b22a7d 100644
--- a/drivers/gpu/nvgpu/gp10b/gr_gp10b.c
+++ b/drivers/gpu/nvgpu/gp10b/gr_gp10b.c
@@ -1071,9 +1071,9 @@ int gr_gp10b_alloc_gr_ctx(struct gk20a *g,
1071 1071
1072 (*gr_ctx)->t18x.ctx_id_valid = false; 1072 (*gr_ctx)->t18x.ctx_id_valid = false;
1073 1073
1074 if (flags & NVGPU_ALLOC_OBJ_FLAGS_GFXP) 1074 if (flags & NVGPU_OBJ_CTX_FLAGS_SUPPORT_GFXP)
1075 graphics_preempt_mode = NVGPU_GRAPHICS_PREEMPTION_MODE_GFXP; 1075 graphics_preempt_mode = NVGPU_GRAPHICS_PREEMPTION_MODE_GFXP;
1076 if (flags & NVGPU_ALLOC_OBJ_FLAGS_CILP) 1076 if (flags & NVGPU_OBJ_CTX_FLAGS_SUPPORT_CILP)
1077 compute_preempt_mode = NVGPU_COMPUTE_PREEMPTION_MODE_CILP; 1077 compute_preempt_mode = NVGPU_COMPUTE_PREEMPTION_MODE_CILP;
1078 1078
1079 if (graphics_preempt_mode || compute_preempt_mode) { 1079 if (graphics_preempt_mode || compute_preempt_mode) {
diff --git a/drivers/gpu/nvgpu/vgpu/gp10b/vgpu_gr_gp10b.c b/drivers/gpu/nvgpu/vgpu/gp10b/vgpu_gr_gp10b.c
index fa6109ad..fc8b16cb 100644
--- a/drivers/gpu/nvgpu/vgpu/gp10b/vgpu_gr_gp10b.c
+++ b/drivers/gpu/nvgpu/vgpu/gp10b/vgpu_gr_gp10b.c
@@ -79,9 +79,9 @@ int vgpu_gr_gp10b_alloc_gr_ctx(struct gk20a *g,
79 79
80 gr_ctx = *__gr_ctx; 80 gr_ctx = *__gr_ctx;
81 81
82 if (flags & NVGPU_ALLOC_OBJ_FLAGS_GFXP) 82 if (flags & NVGPU_OBJ_CTX_FLAGS_SUPPORT_GFXP)
83 graphics_preempt_mode = NVGPU_GRAPHICS_PREEMPTION_MODE_GFXP; 83 graphics_preempt_mode = NVGPU_GRAPHICS_PREEMPTION_MODE_GFXP;
84 if (flags & NVGPU_ALLOC_OBJ_FLAGS_CILP) 84 if (flags & NVGPU_OBJ_CTX_FLAGS_SUPPORT_CILP)
85 compute_preempt_mode = NVGPU_COMPUTE_PREEMPTION_MODE_CILP; 85 compute_preempt_mode = NVGPU_COMPUTE_PREEMPTION_MODE_CILP;
86 86
87 if (priv->constants.force_preempt_mode && !graphics_preempt_mode && 87 if (priv->constants.force_preempt_mode && !graphics_preempt_mode &&