diff options
author | Deepak Nibade <dnibade@nvidia.com> | 2017-10-26 11:29:56 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2017-11-02 08:09:59 -0400 |
commit | 23c7903eff6ee1ab184dfcc62c054de1557e5b1d (patch) | |
tree | a5122028e181e5c6009f9f8b66bfbf00f69a9290 /drivers/gpu/nvgpu/gk20a/ce2_gk20a.h | |
parent | 5f8cfaa250f08499f587da0097f6accaa5eedf15 (diff) |
gpu: nvgpu: move submit path to linux
Nvgpu submit path has a lot of dependency on Linux framework
e.g. use of copy_from_user, use of structures defined in uapi/nvgpu headers,
dma_buf_* calls for trace support etc
Hence to keep common code independent of Linux code, move submit path to
Linux directory
Move below APIs to common/linux/channel.c
trace_write_pushbuffer()
trace_write_pushbuffer_range()
gk20a_submit_prepare_syncs()
gk20a_submit_append_priv_cmdbuf()
gk20a_submit_append_gpfifo()
gk20a_submit_channel_gpfifo()
Move below APIs to common/linux/ce2.c
gk20a_ce_execute_ops()
Define gk20a_ce_execute_ops() in common/linux/ce2.c, and declare it in
gk20a/ce2_gk20a.h since it is needed in common/mm code too
Each OS needs to implement this API separately
gk20a_channel_alloc_gpfifo() use sizeof(nvgpu_gpfifo) to get size of one gpfifo
entry, but structure nvgpu_gpfifo is linux specific
Define new nvgpu_get_gpfifo_entry_size() in linux specific code and use it
in gk20a_channel_alloc_gpfifo() to get gpfifo entry size
Each OS needs to implement this API separately
Export some APIs from gk20a/ce2_gk20a.h and gk20a/channel_gk20a.h that are
needed in linux code
Jira NVGPU-259
Jira NVGPU-313
Change-Id: I360c6cb8ce4494b1e50c66af334a2a379f0d2dc4
Signed-off-by: Deepak Nibade <dnibade@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1586277
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/ce2_gk20a.h')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/ce2_gk20a.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/ce2_gk20a.h b/drivers/gpu/nvgpu/gk20a/ce2_gk20a.h index 1dad8952..8d3a4ca3 100644 --- a/drivers/gpu/nvgpu/gk20a/ce2_gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/ce2_gk20a.h | |||
@@ -161,5 +161,15 @@ void gk20a_ce_delete_context_priv(struct gk20a *g, | |||
161 | u32 ce_ctx_id); | 161 | u32 ce_ctx_id); |
162 | void gk20a_ce_delete_context(struct gk20a *g, | 162 | void gk20a_ce_delete_context(struct gk20a *g, |
163 | u32 ce_ctx_id); | 163 | u32 ce_ctx_id); |
164 | int gk20a_ce_prepare_submit(u64 src_buf, | ||
165 | u64 dst_buf, | ||
166 | u64 size, | ||
167 | u32 *cmd_buf_cpu_va, | ||
168 | u32 max_cmd_buf_size, | ||
169 | unsigned int payload, | ||
170 | int launch_flags, | ||
171 | int request_operation, | ||
172 | u32 dma_copy_class, | ||
173 | struct gk20a_fence *gk20a_fence_in); | ||
164 | 174 | ||
165 | #endif /*__CE2_GK20A_H__*/ | 175 | #endif /*__CE2_GK20A_H__*/ |