summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/channel_gk20a.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/channel_gk20a.h')
-rw-r--r--drivers/gpu/nvgpu/gk20a/channel_gk20a.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/channel_gk20a.h b/drivers/gpu/nvgpu/gk20a/channel_gk20a.h
index eaa5f81b..cd5bf7d7 100644
--- a/drivers/gpu/nvgpu/gk20a/channel_gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/channel_gk20a.h
@@ -45,10 +45,14 @@ struct fifo_profile_gk20a;
45#define NVGPU_GPFIFO_FLAGS_SUPPORT_VPR (1 << 0) 45#define NVGPU_GPFIFO_FLAGS_SUPPORT_VPR (1 << 0)
46#define NVGPU_GPFIFO_FLAGS_SUPPORT_DETERMINISTIC (1 << 1) 46#define NVGPU_GPFIFO_FLAGS_SUPPORT_DETERMINISTIC (1 << 1)
47#define NVGPU_GPFIFO_FLAGS_REPLAYABLE_FAULTS_ENABLE (1 << 2) 47#define NVGPU_GPFIFO_FLAGS_REPLAYABLE_FAULTS_ENABLE (1 << 2)
48#define NVGPU_GPFIFO_FLAGS_USERMODE_SUPPORT (1 << 3)
48 49
49struct nvgpu_gpfifo_args { 50struct nvgpu_gpfifo_args {
50 u32 num_entries; 51 u32 num_entries;
51 u32 num_inflight_jobs; 52 u32 num_inflight_jobs;
53 u32 userd_dmabuf_fd;
54 u32 gpfifo_dmabuf_fd;
55 u32 work_submit_token;
52 u32 flags; 56 u32 flags;
53}; 57};
54 58
@@ -184,6 +188,7 @@ struct channel_gk20a {
184 /* deterministic, but explicitly idle and submits disallowed */ 188 /* deterministic, but explicitly idle and submits disallowed */
185 bool deterministic_railgate_allowed; 189 bool deterministic_railgate_allowed;
186 bool cde; 190 bool cde;
191 bool usermode_submit_enabled;
187 pid_t pid; 192 pid_t pid;
188 pid_t tgid; 193 pid_t tgid;
189 struct nvgpu_mutex ioctl_lock; 194 struct nvgpu_mutex ioctl_lock;
@@ -198,6 +203,7 @@ struct channel_gk20a {
198 203
199 struct gpfifo_desc gpfifo; 204 struct gpfifo_desc gpfifo;
200 205
206 struct nvgpu_mem usermode_userd; /* Used for Usermode Submission */
201 struct nvgpu_mem inst_block; 207 struct nvgpu_mem inst_block;
202 208
203 u64 userd_iova; 209 u64 userd_iova;
@@ -361,6 +367,7 @@ void free_priv_cmdbuf(struct channel_gk20a *c,
361void gk20a_channel_clean_up_jobs(struct channel_gk20a *c, 367void gk20a_channel_clean_up_jobs(struct channel_gk20a *c,
362 bool clean_all); 368 bool clean_all);
363 369
370void gk20a_channel_free_usermode_buffers(struct channel_gk20a *c);
364u32 nvgpu_get_gpfifo_entry_size(void); 371u32 nvgpu_get_gpfifo_entry_size(void);
365 372
366#endif /* CHANNEL_GK20A_H */ 373#endif /* CHANNEL_GK20A_H */