diff options
author | Daniel Vetter <daniel.vetter@ffwll.ch> | 2019-06-14 16:35:25 -0400 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2019-06-21 11:30:49 -0400 |
commit | e4fa8457b2197118538a1400b75c898f9faaf164 (patch) | |
tree | 925aad65749c52c0b2832d914bf9865159ff5ea0 | |
parent | 8b3026a74fa764d6ae42eb80fda5670876c6339a (diff) |
drm/prime: Align gem_prime_export with obj_funcs.export
The idea is that gem_prime_export is deprecated in favor of
obj_funcs.export. That's much easier to do if both have matching
function signatures.
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Acked-by: Christian König <christian.koenig@amd.com>
Acked-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Cc: Russell King <linux@armlinux.org.uk>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <maxime.ripard@bootlin.com>
Cc: Sean Paul <sean@poorly.run>
Cc: David Airlie <airlied@linux.ie>
Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: Zhenyu Wang <zhenyuw@linux.intel.com>
Cc: Zhi Wang <zhi.a.wang@intel.com>
Cc: Jani Nikula <jani.nikula@linux.intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: "Christian König" <christian.koenig@amd.com>
Cc: "David (ChunMing) Zhou" <David1.Zhou@amd.com>
Cc: Thierry Reding <thierry.reding@gmail.com>
Cc: Jonathan Hunter <jonathanh@nvidia.com>
Cc: Dave Airlie <airlied@redhat.com>
Cc: Eric Anholt <eric@anholt.net>
Cc: "Michel Dänzer" <michel.daenzer@amd.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Huang Rui <ray.huang@amd.com>
Cc: Felix Kuehling <Felix.Kuehling@amd.com>
Cc: Hawking Zhang <Hawking.Zhang@amd.com>
Cc: Feifei Xu <Feifei.Xu@amd.com>
Cc: Jim Qu <Jim.Qu@amd.com>
Cc: Evan Quan <evan.quan@amd.com>
Cc: Matthew Auld <matthew.auld@intel.com>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Cc: Thomas Zimmermann <tdz@users.sourceforge.net>
Cc: Kate Stewart <kstewart@linuxfoundation.org>
Cc: Sumit Semwal <sumit.semwal@linaro.org>
Cc: Jilayne Lovejoy <opensource@jilayne.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Mikulas Patocka <mpatocka@redhat.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Junwei Zhang <Jerry.Zhang@amd.com>
Cc: intel-gvt-dev@lists.freedesktop.org
Cc: intel-gfx@lists.freedesktop.org
Cc: amd-gfx@lists.freedesktop.org
Cc: linux-tegra@vger.kernel.org
Link: https://patchwork.freedesktop.org/patch/msgid/20190614203615.12639-10-daniel.vetter@ffwll.ch
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c | 7 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.h | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/armada/armada_gem.c | 5 | ||||
-rw-r--r-- | drivers/gpu/drm/armada/armada_gem.h | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/drm_prime.c | 9 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/gvt/dmabuf.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/i915_drv.h | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/i915_gem_dmabuf.c | 5 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/selftests/i915_gem_dmabuf.c | 8 | ||||
-rw-r--r-- | drivers/gpu/drm/omapdrm/omap_gem.h | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/omapdrm/omap_gem_dmabuf.c | 5 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_drv.c | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_prime.c | 5 | ||||
-rw-r--r-- | drivers/gpu/drm/tegra/gem.c | 7 | ||||
-rw-r--r-- | drivers/gpu/drm/tegra/gem.h | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/udl/udl_dmabuf.c | 5 | ||||
-rw-r--r-- | drivers/gpu/drm/udl/udl_drv.h | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/vc4/vc4_bo.c | 5 | ||||
-rw-r--r-- | drivers/gpu/drm/vc4/vc4_drv.h | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/vgem/vgem_fence.c | 2 | ||||
-rw-r--r-- | include/drm/drm_drv.h | 4 | ||||
-rw-r--r-- | include/drm/drm_prime.h | 3 |
22 files changed, 39 insertions, 57 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c index 489041df1f45..4809d4a5d72a 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c | |||
@@ -345,8 +345,7 @@ const struct dma_buf_ops amdgpu_dmabuf_ops = { | |||
345 | * Returns: | 345 | * Returns: |
346 | * Shared DMA buffer representing the GEM BO from the given device. | 346 | * Shared DMA buffer representing the GEM BO from the given device. |
347 | */ | 347 | */ |
348 | struct dma_buf *amdgpu_gem_prime_export(struct drm_device *dev, | 348 | struct dma_buf *amdgpu_gem_prime_export(struct drm_gem_object *gobj, |
349 | struct drm_gem_object *gobj, | ||
350 | int flags) | 349 | int flags) |
351 | { | 350 | { |
352 | struct amdgpu_bo *bo = gem_to_amdgpu_bo(gobj); | 351 | struct amdgpu_bo *bo = gem_to_amdgpu_bo(gobj); |
@@ -356,9 +355,9 @@ struct dma_buf *amdgpu_gem_prime_export(struct drm_device *dev, | |||
356 | bo->flags & AMDGPU_GEM_CREATE_VM_ALWAYS_VALID) | 355 | bo->flags & AMDGPU_GEM_CREATE_VM_ALWAYS_VALID) |
357 | return ERR_PTR(-EPERM); | 356 | return ERR_PTR(-EPERM); |
358 | 357 | ||
359 | buf = drm_gem_prime_export(dev, gobj, flags); | 358 | buf = drm_gem_prime_export(gobj, flags); |
360 | if (!IS_ERR(buf)) { | 359 | if (!IS_ERR(buf)) { |
361 | buf->file->f_mapping = dev->anon_inode->i_mapping; | 360 | buf->file->f_mapping = gobj->dev->anon_inode->i_mapping; |
362 | buf->ops = &amdgpu_dmabuf_ops; | 361 | buf->ops = &amdgpu_dmabuf_ops; |
363 | } | 362 | } |
364 | 363 | ||
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.h index c7056cbe8685..7f73a4f94204 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.h | |||
@@ -30,8 +30,7 @@ struct drm_gem_object * | |||
30 | amdgpu_gem_prime_import_sg_table(struct drm_device *dev, | 30 | amdgpu_gem_prime_import_sg_table(struct drm_device *dev, |
31 | struct dma_buf_attachment *attach, | 31 | struct dma_buf_attachment *attach, |
32 | struct sg_table *sg); | 32 | struct sg_table *sg); |
33 | struct dma_buf *amdgpu_gem_prime_export(struct drm_device *dev, | 33 | struct dma_buf *amdgpu_gem_prime_export(struct drm_gem_object *gobj, |
34 | struct drm_gem_object *gobj, | ||
35 | int flags); | 34 | int flags); |
36 | struct drm_gem_object *amdgpu_gem_prime_import(struct drm_device *dev, | 35 | struct drm_gem_object *amdgpu_gem_prime_import(struct drm_device *dev, |
37 | struct dma_buf *dma_buf); | 36 | struct dma_buf *dma_buf); |
diff --git a/drivers/gpu/drm/armada/armada_gem.c b/drivers/gpu/drm/armada/armada_gem.c index 642d0e70d0f8..7e7fcc3f1f7f 100644 --- a/drivers/gpu/drm/armada/armada_gem.c +++ b/drivers/gpu/drm/armada/armada_gem.c | |||
@@ -485,8 +485,7 @@ static const struct dma_buf_ops armada_gem_prime_dmabuf_ops = { | |||
485 | }; | 485 | }; |
486 | 486 | ||
487 | struct dma_buf * | 487 | struct dma_buf * |
488 | armada_gem_prime_export(struct drm_device *dev, struct drm_gem_object *obj, | 488 | armada_gem_prime_export(struct drm_gem_object *obj, int flags) |
489 | int flags) | ||
490 | { | 489 | { |
491 | DEFINE_DMA_BUF_EXPORT_INFO(exp_info); | 490 | DEFINE_DMA_BUF_EXPORT_INFO(exp_info); |
492 | 491 | ||
@@ -495,7 +494,7 @@ armada_gem_prime_export(struct drm_device *dev, struct drm_gem_object *obj, | |||
495 | exp_info.flags = O_RDWR; | 494 | exp_info.flags = O_RDWR; |
496 | exp_info.priv = obj; | 495 | exp_info.priv = obj; |
497 | 496 | ||
498 | return drm_gem_dmabuf_export(dev, &exp_info); | 497 | return drm_gem_dmabuf_export(obj->dev, &exp_info); |
499 | } | 498 | } |
500 | 499 | ||
501 | struct drm_gem_object * | 500 | struct drm_gem_object * |
diff --git a/drivers/gpu/drm/armada/armada_gem.h b/drivers/gpu/drm/armada/armada_gem.h index 1ac90792b166..c619381eeeff 100644 --- a/drivers/gpu/drm/armada/armada_gem.h +++ b/drivers/gpu/drm/armada/armada_gem.h | |||
@@ -35,8 +35,7 @@ struct armada_gem_object *armada_gem_alloc_private_object(struct drm_device *, | |||
35 | size_t); | 35 | size_t); |
36 | int armada_gem_dumb_create(struct drm_file *, struct drm_device *, | 36 | int armada_gem_dumb_create(struct drm_file *, struct drm_device *, |
37 | struct drm_mode_create_dumb *); | 37 | struct drm_mode_create_dumb *); |
38 | struct dma_buf *armada_gem_prime_export(struct drm_device *dev, | 38 | struct dma_buf *armada_gem_prime_export(struct drm_gem_object *obj, int flags); |
39 | struct drm_gem_object *obj, int flags); | ||
40 | struct drm_gem_object *armada_gem_prime_import(struct drm_device *, | 39 | struct drm_gem_object *armada_gem_prime_import(struct drm_device *, |
41 | struct dma_buf *); | 40 | struct dma_buf *); |
42 | int armada_gem_map_import(struct armada_gem_object *); | 41 | int armada_gem_map_import(struct armada_gem_object *); |
diff --git a/drivers/gpu/drm/drm_prime.c b/drivers/gpu/drm/drm_prime.c index 1f100d5a323f..30377b53f5fa 100644 --- a/drivers/gpu/drm/drm_prime.c +++ b/drivers/gpu/drm/drm_prime.c | |||
@@ -384,9 +384,9 @@ static struct dma_buf *export_and_register_object(struct drm_device *dev, | |||
384 | if (obj->funcs && obj->funcs->export) | 384 | if (obj->funcs && obj->funcs->export) |
385 | dmabuf = obj->funcs->export(obj, flags); | 385 | dmabuf = obj->funcs->export(obj, flags); |
386 | else if (dev->driver->gem_prime_export) | 386 | else if (dev->driver->gem_prime_export) |
387 | dmabuf = dev->driver->gem_prime_export(dev, obj, flags); | 387 | dmabuf = dev->driver->gem_prime_export(obj, flags); |
388 | else | 388 | else |
389 | dmabuf = drm_gem_prime_export(dev, obj, flags); | 389 | dmabuf = drm_gem_prime_export(obj, flags); |
390 | if (IS_ERR(dmabuf)) { | 390 | if (IS_ERR(dmabuf)) { |
391 | /* normally the created dma-buf takes ownership of the ref, | 391 | /* normally the created dma-buf takes ownership of the ref, |
392 | * but if that fails then drop the ref | 392 | * but if that fails then drop the ref |
@@ -814,7 +814,6 @@ EXPORT_SYMBOL(drm_prime_pages_to_sg); | |||
814 | 814 | ||
815 | /** | 815 | /** |
816 | * drm_gem_prime_export - helper library implementation of the export callback | 816 | * drm_gem_prime_export - helper library implementation of the export callback |
817 | * @dev: drm_device to export from | ||
818 | * @obj: GEM object to export | 817 | * @obj: GEM object to export |
819 | * @flags: flags like DRM_CLOEXEC and DRM_RDWR | 818 | * @flags: flags like DRM_CLOEXEC and DRM_RDWR |
820 | * | 819 | * |
@@ -822,10 +821,10 @@ EXPORT_SYMBOL(drm_prime_pages_to_sg); | |||
822 | * using the PRIME helpers. It is used as the default in | 821 | * using the PRIME helpers. It is used as the default in |
823 | * drm_gem_prime_handle_to_fd(). | 822 | * drm_gem_prime_handle_to_fd(). |
824 | */ | 823 | */ |
825 | struct dma_buf *drm_gem_prime_export(struct drm_device *dev, | 824 | struct dma_buf *drm_gem_prime_export(struct drm_gem_object *obj, |
826 | struct drm_gem_object *obj, | ||
827 | int flags) | 825 | int flags) |
828 | { | 826 | { |
827 | struct drm_device *dev = obj->dev; | ||
829 | struct dma_buf_export_info exp_info = { | 828 | struct dma_buf_export_info exp_info = { |
830 | .exp_name = KBUILD_MODNAME, /* white lie for debug */ | 829 | .exp_name = KBUILD_MODNAME, /* white lie for debug */ |
831 | .owner = dev->driver->fops->owner, | 830 | .owner = dev->driver->fops->owner, |
diff --git a/drivers/gpu/drm/i915/gvt/dmabuf.c b/drivers/gpu/drm/i915/gvt/dmabuf.c index 41c8ebc60c63..13044c027f27 100644 --- a/drivers/gpu/drm/i915/gvt/dmabuf.c +++ b/drivers/gpu/drm/i915/gvt/dmabuf.c | |||
@@ -491,7 +491,7 @@ int intel_vgpu_get_dmabuf(struct intel_vgpu *vgpu, unsigned int dmabuf_id) | |||
491 | 491 | ||
492 | obj->gvt_info = dmabuf_obj->info; | 492 | obj->gvt_info = dmabuf_obj->info; |
493 | 493 | ||
494 | dmabuf = i915_gem_prime_export(dev, &obj->base, DRM_CLOEXEC | DRM_RDWR); | 494 | dmabuf = i915_gem_prime_export(&obj->base, DRM_CLOEXEC | DRM_RDWR); |
495 | if (IS_ERR(dmabuf)) { | 495 | if (IS_ERR(dmabuf)) { |
496 | gvt_vgpu_err("export dma-buf failed\n"); | 496 | gvt_vgpu_err("export dma-buf failed\n"); |
497 | ret = PTR_ERR(dmabuf); | 497 | ret = PTR_ERR(dmabuf); |
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index a2664ea1395b..ab0412b09f1c 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h | |||
@@ -3085,8 +3085,7 @@ int i915_gem_object_set_cache_level(struct drm_i915_gem_object *obj, | |||
3085 | struct drm_gem_object *i915_gem_prime_import(struct drm_device *dev, | 3085 | struct drm_gem_object *i915_gem_prime_import(struct drm_device *dev, |
3086 | struct dma_buf *dma_buf); | 3086 | struct dma_buf *dma_buf); |
3087 | 3087 | ||
3088 | struct dma_buf *i915_gem_prime_export(struct drm_device *dev, | 3088 | struct dma_buf *i915_gem_prime_export(struct drm_gem_object *gem_obj, int flags); |
3089 | struct drm_gem_object *gem_obj, int flags); | ||
3090 | 3089 | ||
3091 | static inline struct i915_hw_ppgtt * | 3090 | static inline struct i915_hw_ppgtt * |
3092 | i915_vm_to_ppgtt(struct i915_address_space *vm) | 3091 | i915_vm_to_ppgtt(struct i915_address_space *vm) |
diff --git a/drivers/gpu/drm/i915/i915_gem_dmabuf.c b/drivers/gpu/drm/i915/i915_gem_dmabuf.c index 5a101a9462d8..54ecab91b3a9 100644 --- a/drivers/gpu/drm/i915/i915_gem_dmabuf.c +++ b/drivers/gpu/drm/i915/i915_gem_dmabuf.c | |||
@@ -224,8 +224,7 @@ static const struct dma_buf_ops i915_dmabuf_ops = { | |||
224 | .end_cpu_access = i915_gem_end_cpu_access, | 224 | .end_cpu_access = i915_gem_end_cpu_access, |
225 | }; | 225 | }; |
226 | 226 | ||
227 | struct dma_buf *i915_gem_prime_export(struct drm_device *dev, | 227 | struct dma_buf *i915_gem_prime_export(struct drm_gem_object *gem_obj, int flags) |
228 | struct drm_gem_object *gem_obj, int flags) | ||
229 | { | 228 | { |
230 | struct drm_i915_gem_object *obj = to_intel_bo(gem_obj); | 229 | struct drm_i915_gem_object *obj = to_intel_bo(gem_obj); |
231 | DEFINE_DMA_BUF_EXPORT_INFO(exp_info); | 230 | DEFINE_DMA_BUF_EXPORT_INFO(exp_info); |
@@ -242,7 +241,7 @@ struct dma_buf *i915_gem_prime_export(struct drm_device *dev, | |||
242 | return ERR_PTR(ret); | 241 | return ERR_PTR(ret); |
243 | } | 242 | } |
244 | 243 | ||
245 | return drm_gem_dmabuf_export(dev, &exp_info); | 244 | return drm_gem_dmabuf_export(gem_obj->dev, &exp_info); |
246 | } | 245 | } |
247 | 246 | ||
248 | static int i915_gem_object_get_pages_dmabuf(struct drm_i915_gem_object *obj) | 247 | static int i915_gem_object_get_pages_dmabuf(struct drm_i915_gem_object *obj) |
diff --git a/drivers/gpu/drm/i915/selftests/i915_gem_dmabuf.c b/drivers/gpu/drm/i915/selftests/i915_gem_dmabuf.c index 2b943ee246c9..84eb978fe39f 100644 --- a/drivers/gpu/drm/i915/selftests/i915_gem_dmabuf.c +++ b/drivers/gpu/drm/i915/selftests/i915_gem_dmabuf.c | |||
@@ -37,7 +37,7 @@ static int igt_dmabuf_export(void *arg) | |||
37 | if (IS_ERR(obj)) | 37 | if (IS_ERR(obj)) |
38 | return PTR_ERR(obj); | 38 | return PTR_ERR(obj); |
39 | 39 | ||
40 | dmabuf = i915_gem_prime_export(&i915->drm, &obj->base, 0); | 40 | dmabuf = i915_gem_prime_export(&obj->base, 0); |
41 | i915_gem_object_put(obj); | 41 | i915_gem_object_put(obj); |
42 | if (IS_ERR(dmabuf)) { | 42 | if (IS_ERR(dmabuf)) { |
43 | pr_err("i915_gem_prime_export failed with err=%d\n", | 43 | pr_err("i915_gem_prime_export failed with err=%d\n", |
@@ -61,7 +61,7 @@ static int igt_dmabuf_import_self(void *arg) | |||
61 | if (IS_ERR(obj)) | 61 | if (IS_ERR(obj)) |
62 | return PTR_ERR(obj); | 62 | return PTR_ERR(obj); |
63 | 63 | ||
64 | dmabuf = i915_gem_prime_export(&i915->drm, &obj->base, 0); | 64 | dmabuf = i915_gem_prime_export(&obj->base, 0); |
65 | if (IS_ERR(dmabuf)) { | 65 | if (IS_ERR(dmabuf)) { |
66 | pr_err("i915_gem_prime_export failed with err=%d\n", | 66 | pr_err("i915_gem_prime_export failed with err=%d\n", |
67 | (int)PTR_ERR(dmabuf)); | 67 | (int)PTR_ERR(dmabuf)); |
@@ -236,7 +236,7 @@ static int igt_dmabuf_export_vmap(void *arg) | |||
236 | if (IS_ERR(obj)) | 236 | if (IS_ERR(obj)) |
237 | return PTR_ERR(obj); | 237 | return PTR_ERR(obj); |
238 | 238 | ||
239 | dmabuf = i915_gem_prime_export(&i915->drm, &obj->base, 0); | 239 | dmabuf = i915_gem_prime_export(&obj->base, 0); |
240 | if (IS_ERR(dmabuf)) { | 240 | if (IS_ERR(dmabuf)) { |
241 | pr_err("i915_gem_prime_export failed with err=%d\n", | 241 | pr_err("i915_gem_prime_export failed with err=%d\n", |
242 | (int)PTR_ERR(dmabuf)); | 242 | (int)PTR_ERR(dmabuf)); |
@@ -283,7 +283,7 @@ static int igt_dmabuf_export_kmap(void *arg) | |||
283 | if (IS_ERR(obj)) | 283 | if (IS_ERR(obj)) |
284 | return PTR_ERR(obj); | 284 | return PTR_ERR(obj); |
285 | 285 | ||
286 | dmabuf = i915_gem_prime_export(&i915->drm, &obj->base, 0); | 286 | dmabuf = i915_gem_prime_export(&obj->base, 0); |
287 | i915_gem_object_put(obj); | 287 | i915_gem_object_put(obj); |
288 | if (IS_ERR(dmabuf)) { | 288 | if (IS_ERR(dmabuf)) { |
289 | err = PTR_ERR(dmabuf); | 289 | err = PTR_ERR(dmabuf); |
diff --git a/drivers/gpu/drm/omapdrm/omap_gem.h b/drivers/gpu/drm/omapdrm/omap_gem.h index c1c45fbde155..ee0f217cf59d 100644 --- a/drivers/gpu/drm/omapdrm/omap_gem.h +++ b/drivers/gpu/drm/omapdrm/omap_gem.h | |||
@@ -76,8 +76,7 @@ u64 omap_gem_mmap_offset(struct drm_gem_object *obj); | |||
76 | size_t omap_gem_mmap_size(struct drm_gem_object *obj); | 76 | size_t omap_gem_mmap_size(struct drm_gem_object *obj); |
77 | 77 | ||
78 | /* PRIME Interface */ | 78 | /* PRIME Interface */ |
79 | struct dma_buf *omap_gem_prime_export(struct drm_device *dev, | 79 | struct dma_buf *omap_gem_prime_export(struct drm_gem_object *obj, int flags); |
80 | struct drm_gem_object *obj, int flags); | ||
81 | struct drm_gem_object *omap_gem_prime_import(struct drm_device *dev, | 80 | struct drm_gem_object *omap_gem_prime_import(struct drm_device *dev, |
82 | struct dma_buf *buffer); | 81 | struct dma_buf *buffer); |
83 | 82 | ||
diff --git a/drivers/gpu/drm/omapdrm/omap_gem_dmabuf.c b/drivers/gpu/drm/omapdrm/omap_gem_dmabuf.c index 0f8b597ccd10..7e7ad275e3cf 100644 --- a/drivers/gpu/drm/omapdrm/omap_gem_dmabuf.c +++ b/drivers/gpu/drm/omapdrm/omap_gem_dmabuf.c | |||
@@ -136,8 +136,7 @@ static const struct dma_buf_ops omap_dmabuf_ops = { | |||
136 | .mmap = omap_gem_dmabuf_mmap, | 136 | .mmap = omap_gem_dmabuf_mmap, |
137 | }; | 137 | }; |
138 | 138 | ||
139 | struct dma_buf *omap_gem_prime_export(struct drm_device *dev, | 139 | struct dma_buf *omap_gem_prime_export(struct drm_gem_object *obj, int flags) |
140 | struct drm_gem_object *obj, int flags) | ||
141 | { | 140 | { |
142 | DEFINE_DMA_BUF_EXPORT_INFO(exp_info); | 141 | DEFINE_DMA_BUF_EXPORT_INFO(exp_info); |
143 | 142 | ||
@@ -146,7 +145,7 @@ struct dma_buf *omap_gem_prime_export(struct drm_device *dev, | |||
146 | exp_info.flags = flags; | 145 | exp_info.flags = flags; |
147 | exp_info.priv = obj; | 146 | exp_info.priv = obj; |
148 | 147 | ||
149 | return drm_gem_dmabuf_export(dev, &exp_info); | 148 | return drm_gem_dmabuf_export(obj->dev, &exp_info); |
150 | } | 149 | } |
151 | 150 | ||
152 | /* ----------------------------------------------------------------------------- | 151 | /* ----------------------------------------------------------------------------- |
diff --git a/drivers/gpu/drm/radeon/radeon_drv.c b/drivers/gpu/drm/radeon/radeon_drv.c index 3b07aa6e551d..4a6acaa3f843 100644 --- a/drivers/gpu/drm/radeon/radeon_drv.c +++ b/drivers/gpu/drm/radeon/radeon_drv.c | |||
@@ -130,8 +130,7 @@ int radeon_gem_object_open(struct drm_gem_object *obj, | |||
130 | struct drm_file *file_priv); | 130 | struct drm_file *file_priv); |
131 | void radeon_gem_object_close(struct drm_gem_object *obj, | 131 | void radeon_gem_object_close(struct drm_gem_object *obj, |
132 | struct drm_file *file_priv); | 132 | struct drm_file *file_priv); |
133 | struct dma_buf *radeon_gem_prime_export(struct drm_device *dev, | 133 | struct dma_buf *radeon_gem_prime_export(struct drm_gem_object *gobj, |
134 | struct drm_gem_object *gobj, | ||
135 | int flags); | 134 | int flags); |
136 | extern int radeon_get_crtc_scanoutpos(struct drm_device *dev, unsigned int crtc, | 135 | extern int radeon_get_crtc_scanoutpos(struct drm_device *dev, unsigned int crtc, |
137 | unsigned int flags, int *vpos, int *hpos, | 136 | unsigned int flags, int *vpos, int *hpos, |
diff --git a/drivers/gpu/drm/radeon/radeon_prime.c b/drivers/gpu/drm/radeon/radeon_prime.c index d3a5bea9a2c5..deaffce50a2e 100644 --- a/drivers/gpu/drm/radeon/radeon_prime.c +++ b/drivers/gpu/drm/radeon/radeon_prime.c | |||
@@ -124,12 +124,11 @@ struct reservation_object *radeon_gem_prime_res_obj(struct drm_gem_object *obj) | |||
124 | return bo->tbo.resv; | 124 | return bo->tbo.resv; |
125 | } | 125 | } |
126 | 126 | ||
127 | struct dma_buf *radeon_gem_prime_export(struct drm_device *dev, | 127 | struct dma_buf *radeon_gem_prime_export(struct drm_gem_object *gobj, |
128 | struct drm_gem_object *gobj, | ||
129 | int flags) | 128 | int flags) |
130 | { | 129 | { |
131 | struct radeon_bo *bo = gem_to_radeon_bo(gobj); | 130 | struct radeon_bo *bo = gem_to_radeon_bo(gobj); |
132 | if (radeon_ttm_tt_has_userptr(bo->tbo.ttm)) | 131 | if (radeon_ttm_tt_has_userptr(bo->tbo.ttm)) |
133 | return ERR_PTR(-EPERM); | 132 | return ERR_PTR(-EPERM); |
134 | return drm_gem_prime_export(dev, gobj, flags); | 133 | return drm_gem_prime_export(gobj, flags); |
135 | } | 134 | } |
diff --git a/drivers/gpu/drm/tegra/gem.c b/drivers/gpu/drm/tegra/gem.c index 4cce11fd8836..fd5e9c3a2789 100644 --- a/drivers/gpu/drm/tegra/gem.c +++ b/drivers/gpu/drm/tegra/gem.c | |||
@@ -629,20 +629,19 @@ static const struct dma_buf_ops tegra_gem_prime_dmabuf_ops = { | |||
629 | .vunmap = tegra_gem_prime_vunmap, | 629 | .vunmap = tegra_gem_prime_vunmap, |
630 | }; | 630 | }; |
631 | 631 | ||
632 | struct dma_buf *tegra_gem_prime_export(struct drm_device *drm, | 632 | struct dma_buf *tegra_gem_prime_export(struct drm_gem_object *gem, |
633 | struct drm_gem_object *gem, | ||
634 | int flags) | 633 | int flags) |
635 | { | 634 | { |
636 | DEFINE_DMA_BUF_EXPORT_INFO(exp_info); | 635 | DEFINE_DMA_BUF_EXPORT_INFO(exp_info); |
637 | 636 | ||
638 | exp_info.exp_name = KBUILD_MODNAME; | 637 | exp_info.exp_name = KBUILD_MODNAME; |
639 | exp_info.owner = drm->driver->fops->owner; | 638 | exp_info.owner = gem->dev->driver->fops->owner; |
640 | exp_info.ops = &tegra_gem_prime_dmabuf_ops; | 639 | exp_info.ops = &tegra_gem_prime_dmabuf_ops; |
641 | exp_info.size = gem->size; | 640 | exp_info.size = gem->size; |
642 | exp_info.flags = flags; | 641 | exp_info.flags = flags; |
643 | exp_info.priv = gem; | 642 | exp_info.priv = gem; |
644 | 643 | ||
645 | return drm_gem_dmabuf_export(drm, &exp_info); | 644 | return drm_gem_dmabuf_export(gem->dev, &exp_info); |
646 | } | 645 | } |
647 | 646 | ||
648 | struct drm_gem_object *tegra_gem_prime_import(struct drm_device *drm, | 647 | struct drm_gem_object *tegra_gem_prime_import(struct drm_device *drm, |
diff --git a/drivers/gpu/drm/tegra/gem.h b/drivers/gpu/drm/tegra/gem.h index 6bd7dd7e55b4..85ebf83c7e43 100644 --- a/drivers/gpu/drm/tegra/gem.h +++ b/drivers/gpu/drm/tegra/gem.h | |||
@@ -73,8 +73,7 @@ extern const struct vm_operations_struct tegra_bo_vm_ops; | |||
73 | int __tegra_gem_mmap(struct drm_gem_object *gem, struct vm_area_struct *vma); | 73 | int __tegra_gem_mmap(struct drm_gem_object *gem, struct vm_area_struct *vma); |
74 | int tegra_drm_mmap(struct file *file, struct vm_area_struct *vma); | 74 | int tegra_drm_mmap(struct file *file, struct vm_area_struct *vma); |
75 | 75 | ||
76 | struct dma_buf *tegra_gem_prime_export(struct drm_device *drm, | 76 | struct dma_buf *tegra_gem_prime_export(struct drm_gem_object *gem, |
77 | struct drm_gem_object *gem, | ||
78 | int flags); | 77 | int flags); |
79 | struct drm_gem_object *tegra_gem_prime_import(struct drm_device *drm, | 78 | struct drm_gem_object *tegra_gem_prime_import(struct drm_device *drm, |
80 | struct dma_buf *buf); | 79 | struct dma_buf *buf); |
diff --git a/drivers/gpu/drm/udl/udl_dmabuf.c b/drivers/gpu/drm/udl/udl_dmabuf.c index a28892146f7c..10a60e7e93d6 100644 --- a/drivers/gpu/drm/udl/udl_dmabuf.c +++ b/drivers/gpu/drm/udl/udl_dmabuf.c | |||
@@ -170,8 +170,7 @@ static const struct dma_buf_ops udl_dmabuf_ops = { | |||
170 | .release = drm_gem_dmabuf_release, | 170 | .release = drm_gem_dmabuf_release, |
171 | }; | 171 | }; |
172 | 172 | ||
173 | struct dma_buf *udl_gem_prime_export(struct drm_device *dev, | 173 | struct dma_buf *udl_gem_prime_export(struct drm_gem_object *obj, int flags) |
174 | struct drm_gem_object *obj, int flags) | ||
175 | { | 174 | { |
176 | DEFINE_DMA_BUF_EXPORT_INFO(exp_info); | 175 | DEFINE_DMA_BUF_EXPORT_INFO(exp_info); |
177 | 176 | ||
@@ -180,7 +179,7 @@ struct dma_buf *udl_gem_prime_export(struct drm_device *dev, | |||
180 | exp_info.flags = flags; | 179 | exp_info.flags = flags; |
181 | exp_info.priv = obj; | 180 | exp_info.priv = obj; |
182 | 181 | ||
183 | return drm_gem_dmabuf_export(dev, &exp_info); | 182 | return drm_gem_dmabuf_export(obj->dev, &exp_info); |
184 | } | 183 | } |
185 | 184 | ||
186 | static int udl_prime_create(struct drm_device *dev, | 185 | static int udl_prime_create(struct drm_device *dev, |
diff --git a/drivers/gpu/drm/udl/udl_drv.h b/drivers/gpu/drm/udl/udl_drv.h index a928801026c1..9d0790be544f 100644 --- a/drivers/gpu/drm/udl/udl_drv.h +++ b/drivers/gpu/drm/udl/udl_drv.h | |||
@@ -126,8 +126,7 @@ int udl_gem_mmap(struct drm_file *file_priv, struct drm_device *dev, | |||
126 | void udl_gem_free_object(struct drm_gem_object *gem_obj); | 126 | void udl_gem_free_object(struct drm_gem_object *gem_obj); |
127 | struct udl_gem_object *udl_gem_alloc_object(struct drm_device *dev, | 127 | struct udl_gem_object *udl_gem_alloc_object(struct drm_device *dev, |
128 | size_t size); | 128 | size_t size); |
129 | struct dma_buf *udl_gem_prime_export(struct drm_device *dev, | 129 | struct dma_buf *udl_gem_prime_export(struct drm_gem_object *obj, int flags); |
130 | struct drm_gem_object *obj, int flags); | ||
131 | struct drm_gem_object *udl_gem_prime_import(struct drm_device *dev, | 130 | struct drm_gem_object *udl_gem_prime_import(struct drm_device *dev, |
132 | struct dma_buf *dma_buf); | 131 | struct dma_buf *dma_buf); |
133 | 132 | ||
diff --git a/drivers/gpu/drm/vc4/vc4_bo.c b/drivers/gpu/drm/vc4/vc4_bo.c index 1434bb829267..b0f9eb6632a2 100644 --- a/drivers/gpu/drm/vc4/vc4_bo.c +++ b/drivers/gpu/drm/vc4/vc4_bo.c | |||
@@ -658,8 +658,7 @@ static void vc4_bo_cache_time_timer(struct timer_list *t) | |||
658 | schedule_work(&vc4->bo_cache.time_work); | 658 | schedule_work(&vc4->bo_cache.time_work); |
659 | } | 659 | } |
660 | 660 | ||
661 | struct dma_buf * | 661 | struct dma_buf * vc4_prime_export(struct drm_gem_object *obj, int flags) |
662 | vc4_prime_export(struct drm_device *dev, struct drm_gem_object *obj, int flags) | ||
663 | { | 662 | { |
664 | struct vc4_bo *bo = to_vc4_bo(obj); | 663 | struct vc4_bo *bo = to_vc4_bo(obj); |
665 | struct dma_buf *dmabuf; | 664 | struct dma_buf *dmabuf; |
@@ -681,7 +680,7 @@ vc4_prime_export(struct drm_device *dev, struct drm_gem_object *obj, int flags) | |||
681 | return ERR_PTR(ret); | 680 | return ERR_PTR(ret); |
682 | } | 681 | } |
683 | 682 | ||
684 | dmabuf = drm_gem_prime_export(dev, obj, flags); | 683 | dmabuf = drm_gem_prime_export(obj, flags); |
685 | if (IS_ERR(dmabuf)) | 684 | if (IS_ERR(dmabuf)) |
686 | vc4_bo_dec_usecnt(bo); | 685 | vc4_bo_dec_usecnt(bo); |
687 | 686 | ||
diff --git a/drivers/gpu/drm/vc4/vc4_drv.h b/drivers/gpu/drm/vc4/vc4_drv.h index 9170a24ec5f5..efd1ec3430f5 100644 --- a/drivers/gpu/drm/vc4/vc4_drv.h +++ b/drivers/gpu/drm/vc4/vc4_drv.h | |||
@@ -708,8 +708,7 @@ struct vc4_bo *vc4_bo_create(struct drm_device *dev, size_t size, | |||
708 | int vc4_dumb_create(struct drm_file *file_priv, | 708 | int vc4_dumb_create(struct drm_file *file_priv, |
709 | struct drm_device *dev, | 709 | struct drm_device *dev, |
710 | struct drm_mode_create_dumb *args); | 710 | struct drm_mode_create_dumb *args); |
711 | struct dma_buf *vc4_prime_export(struct drm_device *dev, | 711 | struct dma_buf *vc4_prime_export(struct drm_gem_object *obj, int flags); |
712 | struct drm_gem_object *obj, int flags); | ||
713 | int vc4_create_bo_ioctl(struct drm_device *dev, void *data, | 712 | int vc4_create_bo_ioctl(struct drm_device *dev, void *data, |
714 | struct drm_file *file_priv); | 713 | struct drm_file *file_priv); |
715 | int vc4_create_shader_bo_ioctl(struct drm_device *dev, void *data, | 714 | int vc4_create_shader_bo_ioctl(struct drm_device *dev, void *data, |
diff --git a/drivers/gpu/drm/vgem/vgem_fence.c b/drivers/gpu/drm/vgem/vgem_fence.c index eb17c0cd3727..72d43d5ec5ab 100644 --- a/drivers/gpu/drm/vgem/vgem_fence.c +++ b/drivers/gpu/drm/vgem/vgem_fence.c | |||
@@ -108,7 +108,7 @@ static int attach_dmabuf(struct drm_device *dev, | |||
108 | if (obj->dma_buf) | 108 | if (obj->dma_buf) |
109 | return 0; | 109 | return 0; |
110 | 110 | ||
111 | dmabuf = dev->driver->gem_prime_export(dev, obj, 0); | 111 | dmabuf = dev->driver->gem_prime_export(obj, 0); |
112 | if (IS_ERR(dmabuf)) | 112 | if (IS_ERR(dmabuf)) |
113 | return PTR_ERR(dmabuf); | 113 | return PTR_ERR(dmabuf); |
114 | 114 | ||
diff --git a/include/drm/drm_drv.h b/include/drm/drm_drv.h index 86a10c25ad0f..b33f2cee2099 100644 --- a/include/drm/drm_drv.h +++ b/include/drm/drm_drv.h | |||
@@ -581,8 +581,8 @@ struct drm_driver { | |||
581 | * Export hook for GEM drivers. Deprecated in favour of | 581 | * Export hook for GEM drivers. Deprecated in favour of |
582 | * &drm_gem_object_funcs.export. | 582 | * &drm_gem_object_funcs.export. |
583 | */ | 583 | */ |
584 | struct dma_buf * (*gem_prime_export)(struct drm_device *dev, | 584 | struct dma_buf * (*gem_prime_export)(struct drm_gem_object *obj, |
585 | struct drm_gem_object *obj, int flags); | 585 | int flags); |
586 | /** | 586 | /** |
587 | * @gem_prime_import: | 587 | * @gem_prime_import: |
588 | * | 588 | * |
diff --git a/include/drm/drm_prime.h b/include/drm/drm_prime.h index ee32b07f3eb0..d89311b822d5 100644 --- a/include/drm/drm_prime.h +++ b/include/drm/drm_prime.h | |||
@@ -91,8 +91,7 @@ int drm_gem_prime_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma); | |||
91 | int drm_gem_dmabuf_mmap(struct dma_buf *dma_buf, struct vm_area_struct *vma); | 91 | int drm_gem_dmabuf_mmap(struct dma_buf *dma_buf, struct vm_area_struct *vma); |
92 | 92 | ||
93 | struct sg_table *drm_prime_pages_to_sg(struct page **pages, unsigned int nr_pages); | 93 | struct sg_table *drm_prime_pages_to_sg(struct page **pages, unsigned int nr_pages); |
94 | struct dma_buf *drm_gem_prime_export(struct drm_device *dev, | 94 | struct dma_buf *drm_gem_prime_export(struct drm_gem_object *obj, |
95 | struct drm_gem_object *obj, | ||
96 | int flags); | 95 | int flags); |
97 | 96 | ||
98 | /* helper functions for importing */ | 97 | /* helper functions for importing */ |