summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/channel_gk20a.c
diff options
context:
space:
mode:
authorLakshmanan M <lm@nvidia.com>2016-06-29 06:36:39 -0400
committerVijayakumar Subbu <vsubbu@nvidia.com>2016-07-20 06:09:28 -0400
commit89aecd1202b49727e940069f2a6feb5c3cf4c927 (patch)
tree8a0d3a493b389167ce1d93e55f23e114ec2cbd38 /drivers/gpu/nvgpu/gk20a/channel_gk20a.c
parentf6ebdc5f2916706f7a61983567420e0985faeeb1 (diff)
gpu: nvgpu: Add nvgpu infra to allow kernel to create privileged CE channels
Added interface to allow kernel to create privileged CE channels for page migration and clearing support between sysmem and videmem. JIRA DNVGPU-53 Change-Id: I3e18d18403809c9e64fa45d40b6c4e3844992506 Signed-off-by: Lakshmanan M <lm@nvidia.com> Reviewed-on: http://git-master/r/1173085 GVS: Gerrit_Virtual_Submit Reviewed-by: Vijayakumar Subbu <vsubbu@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/channel_gk20a.c')
-rw-r--r--drivers/gpu/nvgpu/gk20a/channel_gk20a.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c
index d5457d10..447fe86a 100644
--- a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c
@@ -702,7 +702,7 @@ static int gk20a_channel_set_wdt_status(struct channel_gk20a *ch,
702 return 0; 702 return 0;
703} 703}
704 704
705static int gk20a_channel_set_runlist_interleave(struct channel_gk20a *ch, 705int gk20a_channel_set_runlist_interleave(struct channel_gk20a *ch,
706 u32 level) 706 u32 level)
707{ 707{
708 struct gk20a *g = ch->g; 708 struct gk20a *g = ch->g;
@@ -1113,9 +1113,11 @@ static void gk20a_channel_update_runcb_fn(struct work_struct *work)
1113 1113
1114struct channel_gk20a *gk20a_open_new_channel_with_cb(struct gk20a *g, 1114struct channel_gk20a *gk20a_open_new_channel_with_cb(struct gk20a *g,
1115 void (*update_fn)(struct channel_gk20a *, void *), 1115 void (*update_fn)(struct channel_gk20a *, void *),
1116 void *update_fn_data) 1116 void *update_fn_data,
1117 int runlist_id,
1118 bool is_privileged_channel)
1117{ 1119{
1118 struct channel_gk20a *ch = gk20a_open_new_channel(g, -1, false); 1120 struct channel_gk20a *ch = gk20a_open_new_channel(g, runlist_id, is_privileged_channel);
1119 1121
1120 if (ch) { 1122 if (ch) {
1121 spin_lock(&ch->update_fn_lock); 1123 spin_lock(&ch->update_fn_lock);