diff options
author | Lakshmanan M <lm@nvidia.com> | 2016-06-29 06:36:39 -0400 |
---|---|---|
committer | Vijayakumar Subbu <vsubbu@nvidia.com> | 2016-07-20 06:09:28 -0400 |
commit | 89aecd1202b49727e940069f2a6feb5c3cf4c927 (patch) | |
tree | 8a0d3a493b389167ce1d93e55f23e114ec2cbd38 /drivers/gpu/nvgpu/gk20a/channel_gk20a.c | |
parent | f6ebdc5f2916706f7a61983567420e0985faeeb1 (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.c | 8 |
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 | ||
705 | static int gk20a_channel_set_runlist_interleave(struct channel_gk20a *ch, | 705 | int 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 | ||
1114 | struct channel_gk20a *gk20a_open_new_channel_with_cb(struct gk20a *g, | 1114 | struct 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); |