summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/common/linux/ioctl_channel.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/common/linux/ioctl_channel.c')
-rw-r--r--drivers/gpu/nvgpu/common/linux/ioctl_channel.c22
1 files changed, 21 insertions, 1 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 }