drm/i915: Move i915_gem_object_phys_attach()
authorChris Wilson <chris@chris-wilson.co.uk>
Wed, 26 Jul 2017 18:16:01 +0000 (19:16 +0100)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 27 Jul 2017 07:56:11 +0000 (09:56 +0200)
Prevent a forward declaration in the next patch.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20170726181602.23527-1-chris@chris-wilson.co.uk
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/i915_gem.c

index 12dddba7bf6f0c4706956c62875053d65ec18471..85231d1c39c3c9a016be846d74bbe3426895afc0 100644 (file)
@@ -561,66 +561,6 @@ static struct intel_rps_client *to_rps_client(struct drm_file *file)
        return &fpriv->rps;
 }
 
-int
-i915_gem_object_attach_phys(struct drm_i915_gem_object *obj,
-                           int align)
-{
-       struct sg_table *pages;
-       int err;
-
-       if (align > obj->base.size)
-               return -EINVAL;
-
-       if (obj->ops == &i915_gem_phys_ops)
-               return 0;
-
-       if (obj->ops != &i915_gem_object_ops)
-               return -EINVAL;
-
-       err = i915_gem_object_unbind(obj);
-       if (err)
-               return err;
-
-       mutex_lock(&obj->mm.lock);
-
-       if (obj->mm.madv != I915_MADV_WILLNEED) {
-               err = -EFAULT;
-               goto err_unlock;
-       }
-
-       if (obj->mm.quirked) {
-               err = -EFAULT;
-               goto err_unlock;
-       }
-
-       if (obj->mm.mapping) {
-               err = -EBUSY;
-               goto err_unlock;
-       }
-
-       pages = obj->mm.pages;
-       obj->ops = &i915_gem_phys_ops;
-
-       err = __i915_gem_object_get_pages(obj);
-       if (err)
-               goto err_xfer;
-
-       /* Perma-pin (until release) the physical set of pages */
-       __i915_gem_object_pin_pages(obj);
-
-       if (!IS_ERR_OR_NULL(pages))
-               i915_gem_object_ops.put_pages(obj, pages);
-       mutex_unlock(&obj->mm.lock);
-       return 0;
-
-err_xfer:
-       obj->ops = &i915_gem_object_ops;
-       obj->mm.pages = pages;
-err_unlock:
-       mutex_unlock(&obj->mm.lock);
-       return err;
-}
-
 static int
 i915_gem_phys_pwrite(struct drm_i915_gem_object *obj,
                     struct drm_i915_gem_pwrite *args,
@@ -5346,6 +5286,64 @@ i915_gem_object_get_dma_address(struct drm_i915_gem_object *obj,
        return sg_dma_address(sg) + (offset << PAGE_SHIFT);
 }
 
+int i915_gem_object_attach_phys(struct drm_i915_gem_object *obj, int align)
+{
+       struct sg_table *pages;
+       int err;
+
+       if (align > obj->base.size)
+               return -EINVAL;
+
+       if (obj->ops == &i915_gem_phys_ops)
+               return 0;
+
+       if (obj->ops != &i915_gem_object_ops)
+               return -EINVAL;
+
+       err = i915_gem_object_unbind(obj);
+       if (err)
+               return err;
+
+       mutex_lock(&obj->mm.lock);
+
+       if (obj->mm.madv != I915_MADV_WILLNEED) {
+               err = -EFAULT;
+               goto err_unlock;
+       }
+
+       if (obj->mm.quirked) {
+               err = -EFAULT;
+               goto err_unlock;
+       }
+
+       if (obj->mm.mapping) {
+               err = -EBUSY;
+               goto err_unlock;
+       }
+
+       pages = obj->mm.pages;
+       obj->ops = &i915_gem_phys_ops;
+
+       err = __i915_gem_object_get_pages(obj);
+       if (err)
+               goto err_xfer;
+
+       /* Perma-pin (until release) the physical set of pages */
+       __i915_gem_object_pin_pages(obj);
+
+       if (!IS_ERR_OR_NULL(pages))
+               i915_gem_object_ops.put_pages(obj, pages);
+       mutex_unlock(&obj->mm.lock);
+       return 0;
+
+err_xfer:
+       obj->ops = &i915_gem_object_ops;
+       obj->mm.pages = pages;
+err_unlock:
+       mutex_unlock(&obj->mm.lock);
+       return err;
+}
+
 #if IS_ENABLED(CONFIG_DRM_I915_SELFTEST)
 #include "selftests/scatterlist.c"
 #include "selftests/mock_gem_device.c"