]> Pileus Git - ~andy/linux/blobdiff - drivers/gpu/drm/radeon/radeon_prime.c
drm/radeon/hdmi: make sure we have an afmt block assigned
[~andy/linux] / drivers / gpu / drm / radeon / radeon_prime.c
index 4940af7e75e6dd180de3ebd6d80e70897ea325d5..65b9eabd5a2f08b28e864c18e05ce060802dffb6 100644 (file)
@@ -88,11 +88,19 @@ int radeon_gem_prime_pin(struct drm_gem_object *obj)
 
        /* pin buffer into GTT */
        ret = radeon_bo_pin(bo, RADEON_GEM_DOMAIN_GTT, NULL);
-       if (ret) {
-               radeon_bo_unreserve(bo);
-               return ret;
-       }
        radeon_bo_unreserve(bo);
+       return ret;
+}
+
+void radeon_gem_prime_unpin(struct drm_gem_object *obj)
+{
+       struct radeon_bo *bo = gem_to_radeon_bo(obj);
+       int ret = 0;
 
-       return 0;
+       ret = radeon_bo_reserve(bo, false);
+       if (unlikely(ret != 0))
+               return;
+
+       radeon_bo_unpin(bo);
+       radeon_bo_unreserve(bo);
 }