diff options
author | Lakshmanan M <lm@nvidia.com> | 2016-06-09 01:00:16 -0400 |
---|---|---|
committer | Terje Bergstrom <tbergstrom@nvidia.com> | 2016-06-13 10:45:19 -0400 |
commit | a295d90cac87949256b629e29f97fa5e28a1feb3 (patch) | |
tree | 7c1a104c0a0594869955074fe8abe86097cacae8 /drivers/gpu/nvgpu/gk20a/channel_gk20a.h | |
parent | 987de665838f6b4aceadf52f076b91da4cc633ca (diff) |
gpu: nvgpu: Add uapi support for non-graphics engines
Extend the existing NVGPU_GPU_IOCTL_OPEN_CHANNEL interface to allow
opening channels for other than the primary (i.e., the graphics)
runlists. This is required to push work to dGPU engines that have
their own runlists, such as the asynchronous copy engines and the
multimedia engines.
Minor change - Added active_engines_list allocation
and assignment for fifo_vgpu back end.
JIRA DNVGPU-25
Change-Id: I3ed377e2c9a2b4dd72e8256463510a62c64e7a8f
Signed-off-by: Lakshmanan M <lm@nvidia.com>
Reviewed-on: http://git-master/r/1161541
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Tested-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/channel_gk20a.h')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/channel_gk20a.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/channel_gk20a.h b/drivers/gpu/nvgpu/gk20a/channel_gk20a.h index 4e0db3cf..d8528984 100644 --- a/drivers/gpu/nvgpu/gk20a/channel_gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/channel_gk20a.h | |||
@@ -198,6 +198,8 @@ struct channel_gk20a { | |||
198 | struct work_struct update_fn_work; | 198 | struct work_struct update_fn_work; |
199 | 199 | ||
200 | u32 interleave_level; | 200 | u32 interleave_level; |
201 | |||
202 | u32 runlist_id; | ||
201 | }; | 203 | }; |
202 | 204 | ||
203 | static inline bool gk20a_channel_as_bound(struct channel_gk20a *ch) | 205 | static inline bool gk20a_channel_as_bound(struct channel_gk20a *ch) |
@@ -250,7 +252,9 @@ void _gk20a_channel_put(struct channel_gk20a *ch, const char *caller); | |||
250 | #define gk20a_channel_put(ch) _gk20a_channel_put(ch, __func__) | 252 | #define gk20a_channel_put(ch) _gk20a_channel_put(ch, __func__) |
251 | 253 | ||
252 | int gk20a_wait_channel_idle(struct channel_gk20a *ch); | 254 | int gk20a_wait_channel_idle(struct channel_gk20a *ch); |
253 | struct channel_gk20a *gk20a_open_new_channel(struct gk20a *g); | 255 | |
256 | /* runlist_id -1 is synonym for ENGINE_GR_GK20A runlist id */ | ||
257 | struct channel_gk20a *gk20a_open_new_channel(struct gk20a *g, s32 runlist_id); | ||
254 | struct channel_gk20a *gk20a_open_new_channel_with_cb(struct gk20a *g, | 258 | struct channel_gk20a *gk20a_open_new_channel_with_cb(struct gk20a *g, |
255 | void (*update_fn)(struct channel_gk20a *, void *), | 259 | void (*update_fn)(struct channel_gk20a *, void *), |
256 | void *update_fn_data); | 260 | void *update_fn_data); |