summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/as_gk20a.c
diff options
context:
space:
mode:
authorAingara Paramakuru <aparamakuru@nvidia.com>2014-05-05 21:14:22 -0400
committerDan Willemsen <dwillemsen@nvidia.com>2015-03-18 15:11:01 -0400
commit1fd722f592c2e0523c5e399a2406a4e387057188 (patch)
tree3425fb1a08ec2ccc6397e39c73a5579117e00a05 /drivers/gpu/nvgpu/gk20a/as_gk20a.c
parent69e0cd3dfd8f39bc8d3529325001dcacd774f669 (diff)
gpu: nvgpu: support gk20a virtualization
The nvgpu driver now supports using the Tegra graphics virtualization interfaces to support gk20a in a virtualized environment. Bug 1509608 Change-Id: I6ede15ee7bf0b0ad8a13e8eb5f557c3516ead676 Signed-off-by: Aingara Paramakuru <aparamakuru@nvidia.com> Reviewed-on: http://git-master/r/440122 Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Tested-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/as_gk20a.c')
-rw-r--r--drivers/gpu/nvgpu/gk20a/as_gk20a.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/as_gk20a.c b/drivers/gpu/nvgpu/gk20a/as_gk20a.c
index 4849dbd5..1a1ca8ff 100644
--- a/drivers/gpu/nvgpu/gk20a/as_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/as_gk20a.c
@@ -40,6 +40,7 @@ static void release_as_share_id(struct gk20a_as *as, int id)
40static int gk20a_as_alloc_share(struct gk20a_as *as, 40static int gk20a_as_alloc_share(struct gk20a_as *as,
41 struct gk20a_as_share **out) 41 struct gk20a_as_share **out)
42{ 42{
43 struct gk20a *g = gk20a_from_as(as);
43 struct gk20a_as_share *as_share; 44 struct gk20a_as_share *as_share;
44 int err = 0; 45 int err = 0;
45 46
@@ -55,7 +56,7 @@ static int gk20a_as_alloc_share(struct gk20a_as *as,
55 as_share->ref_cnt.counter = 1; 56 as_share->ref_cnt.counter = 1;
56 57
57 /* this will set as_share->vm. */ 58 /* this will set as_share->vm. */
58 err = gk20a_vm_alloc_share(as_share); 59 err = g->ops.mm.vm_alloc_share(as_share);
59 if (err) 60 if (err)
60 goto failed; 61 goto failed;
61 62
@@ -106,7 +107,7 @@ static int gk20a_as_ioctl_bind_channel(
106 atomic_inc(&as_share->ref_cnt); 107 atomic_inc(&as_share->ref_cnt);
107 108
108 /* this will set channel_gk20a->vm */ 109 /* this will set channel_gk20a->vm */
109 err = gk20a_vm_bind_channel(as_share, ch); 110 err = ch->g->ops.mm.vm_bind_channel(as_share, ch);
110 if (err) { 111 if (err) {
111 atomic_dec(&as_share->ref_cnt); 112 atomic_dec(&as_share->ref_cnt);
112 return err; 113 return err;