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>
This commit is contained in:
Родитель
280cf21186
Коммит
1af7c7dd21
|
@ -702,6 +702,7 @@ driver = {
|
||||||
.gem_prime_export = drm_gem_prime_export,
|
.gem_prime_export = drm_gem_prime_export,
|
||||||
.gem_prime_import = drm_gem_prime_import,
|
.gem_prime_import = drm_gem_prime_import,
|
||||||
.gem_prime_pin = nouveau_gem_prime_pin,
|
.gem_prime_pin = nouveau_gem_prime_pin,
|
||||||
|
.gem_prime_unpin = nouveau_gem_prime_unpin,
|
||||||
.gem_prime_get_sg_table = nouveau_gem_prime_get_sg_table,
|
.gem_prime_get_sg_table = nouveau_gem_prime_get_sg_table,
|
||||||
.gem_prime_import_sg_table = nouveau_gem_prime_import_sg_table,
|
.gem_prime_import_sg_table = nouveau_gem_prime_import_sg_table,
|
||||||
.gem_prime_vmap = nouveau_gem_prime_vmap,
|
.gem_prime_vmap = nouveau_gem_prime_vmap,
|
||||||
|
|
|
@ -36,6 +36,7 @@ extern int nouveau_gem_ioctl_info(struct drm_device *, void *,
|
||||||
struct drm_file *);
|
struct drm_file *);
|
||||||
|
|
||||||
extern int nouveau_gem_prime_pin(struct drm_gem_object *);
|
extern int nouveau_gem_prime_pin(struct drm_gem_object *);
|
||||||
|
extern void nouveau_gem_prime_unpin(struct drm_gem_object *);
|
||||||
extern struct sg_table *nouveau_gem_prime_get_sg_table(struct drm_gem_object *);
|
extern struct sg_table *nouveau_gem_prime_get_sg_table(struct drm_gem_object *);
|
||||||
extern struct drm_gem_object *nouveau_gem_prime_import_sg_table(
|
extern struct drm_gem_object *nouveau_gem_prime_import_sg_table(
|
||||||
struct drm_device *, size_t size, struct sg_table *);
|
struct drm_device *, size_t size, struct sg_table *);
|
||||||
|
|
|
@ -84,7 +84,7 @@ struct drm_gem_object *nouveau_gem_prime_import_sg_table(struct drm_device *dev,
|
||||||
int nouveau_gem_prime_pin(struct drm_gem_object *obj)
|
int nouveau_gem_prime_pin(struct drm_gem_object *obj)
|
||||||
{
|
{
|
||||||
struct nouveau_bo *nvbo = nouveau_gem_object(obj);
|
struct nouveau_bo *nvbo = nouveau_gem_object(obj);
|
||||||
int ret = 0;
|
int ret;
|
||||||
|
|
||||||
/* pin buffer into GTT */
|
/* pin buffer into GTT */
|
||||||
ret = nouveau_bo_pin(nvbo, TTM_PL_FLAG_TT);
|
ret = nouveau_bo_pin(nvbo, TTM_PL_FLAG_TT);
|
||||||
|
@ -93,3 +93,10 @@ int nouveau_gem_prime_pin(struct drm_gem_object *obj)
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void nouveau_gem_prime_unpin(struct drm_gem_object *obj)
|
||||||
|
{
|
||||||
|
struct nouveau_bo *nvbo = nouveau_gem_object(obj);
|
||||||
|
|
||||||
|
nouveau_bo_unpin(nvbo);
|
||||||
|
}
|
||||||
|
|
Загрузка…
Ссылка в новой задаче