diff options
author | Maarten Lankhorst <m.b.lankhorst@gmail.com> | 2013-06-27 07:38:19 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2013-06-27 21:55:34 -0400 |
commit | 1af7c7dd2142b04f5e70746f8b65f5988e226e77 (patch) | |
tree | c06cc0c0c6d788d4f8e2aa96c0770eca036bcf4f | |
parent | 280cf211867539a7b6912d3a3573ef692ae66b61 (diff) |
drm/nouveau: implement prime helper unpin function
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Acked-by: Ben Skeggs <bskeggs@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
-rw-r--r-- | drivers/gpu/drm/nouveau/nouveau_drm.c | 1 | ||||
-rw-r--r-- | drivers/gpu/drm/nouveau/nouveau_gem.h | 1 | ||||
-rw-r--r-- | drivers/gpu/drm/nouveau/nouveau_prime.c | 9 |
3 files changed, 10 insertions, 1 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c b/drivers/gpu/drm/nouveau/nouveau_drm.c index 383f4e6ea9d1..218a4b522fe5 100644 --- a/drivers/gpu/drm/nouveau/nouveau_drm.c +++ b/drivers/gpu/drm/nouveau/nouveau_drm.c | |||
@@ -702,6 +702,7 @@ driver = { | |||
702 | .gem_prime_export = drm_gem_prime_export, | 702 | .gem_prime_export = drm_gem_prime_export, |
703 | .gem_prime_import = drm_gem_prime_import, | 703 | .gem_prime_import = drm_gem_prime_import, |
704 | .gem_prime_pin = nouveau_gem_prime_pin, | 704 | .gem_prime_pin = nouveau_gem_prime_pin, |
705 | .gem_prime_unpin = nouveau_gem_prime_unpin, | ||
705 | .gem_prime_get_sg_table = nouveau_gem_prime_get_sg_table, | 706 | .gem_prime_get_sg_table = nouveau_gem_prime_get_sg_table, |
706 | .gem_prime_import_sg_table = nouveau_gem_prime_import_sg_table, | 707 | .gem_prime_import_sg_table = nouveau_gem_prime_import_sg_table, |
707 | .gem_prime_vmap = nouveau_gem_prime_vmap, | 708 | .gem_prime_vmap = nouveau_gem_prime_vmap, |
diff --git a/drivers/gpu/drm/nouveau/nouveau_gem.h b/drivers/gpu/drm/nouveau/nouveau_gem.h index 8d7a3f0aeb86..502e4290aa8f 100644 --- a/drivers/gpu/drm/nouveau/nouveau_gem.h +++ b/drivers/gpu/drm/nouveau/nouveau_gem.h | |||
@@ -36,6 +36,7 @@ extern int nouveau_gem_ioctl_info(struct drm_device *, void *, | |||
36 | struct drm_file *); | 36 | struct drm_file *); |
37 | 37 | ||
38 | extern int nouveau_gem_prime_pin(struct drm_gem_object *); | 38 | extern int nouveau_gem_prime_pin(struct drm_gem_object *); |
39 | extern void nouveau_gem_prime_unpin(struct drm_gem_object *); | ||
39 | extern struct sg_table *nouveau_gem_prime_get_sg_table(struct drm_gem_object *); | 40 | extern struct sg_table *nouveau_gem_prime_get_sg_table(struct drm_gem_object *); |
40 | extern struct drm_gem_object *nouveau_gem_prime_import_sg_table( | 41 | extern struct drm_gem_object *nouveau_gem_prime_import_sg_table( |
41 | struct drm_device *, size_t size, struct sg_table *); | 42 | struct drm_device *, size_t size, struct sg_table *); |
diff --git a/drivers/gpu/drm/nouveau/nouveau_prime.c b/drivers/gpu/drm/nouveau/nouveau_prime.c index f53e10874cae..e90468d5e5c0 100644 --- a/drivers/gpu/drm/nouveau/nouveau_prime.c +++ b/drivers/gpu/drm/nouveau/nouveau_prime.c | |||
@@ -84,7 +84,7 @@ struct drm_gem_object *nouveau_gem_prime_import_sg_table(struct drm_device *dev, | |||
84 | int nouveau_gem_prime_pin(struct drm_gem_object *obj) | 84 | int nouveau_gem_prime_pin(struct drm_gem_object *obj) |
85 | { | 85 | { |
86 | struct nouveau_bo *nvbo = nouveau_gem_object(obj); | 86 | struct nouveau_bo *nvbo = nouveau_gem_object(obj); |
87 | int ret = 0; | 87 | int ret; |
88 | 88 | ||
89 | /* pin buffer into GTT */ | 89 | /* pin buffer into GTT */ |
90 | ret = nouveau_bo_pin(nvbo, TTM_PL_FLAG_TT); | 90 | ret = nouveau_bo_pin(nvbo, TTM_PL_FLAG_TT); |
@@ -93,3 +93,10 @@ int nouveau_gem_prime_pin(struct drm_gem_object *obj) | |||
93 | 93 | ||
94 | return 0; | 94 | return 0; |
95 | } | 95 | } |
96 | |||
97 | void nouveau_gem_prime_unpin(struct drm_gem_object *obj) | ||
98 | { | ||
99 | struct nouveau_bo *nvbo = nouveau_gem_object(obj); | ||
100 | |||
101 | nouveau_bo_unpin(nvbo); | ||
102 | } | ||