hc
2023-12-11 d2ccde1c8e90d38cee87a1b0309ad2827f3fd30d
kernel/drivers/gpu/drm/radeon/radeon_prime.c
....@@ -23,18 +23,20 @@
2323 *
2424 * Authors: Alex Deucher
2525 */
26
-#include <drm/drmP.h>
26
+
27
+#include <linux/dma-buf.h>
28
+
29
+#include <drm/drm_prime.h>
30
+#include <drm/radeon_drm.h>
2731
2832 #include "radeon.h"
29
-#include <drm/radeon_drm.h>
30
-#include <linux/dma-buf.h>
3133
3234 struct sg_table *radeon_gem_prime_get_sg_table(struct drm_gem_object *obj)
3335 {
3436 struct radeon_bo *bo = gem_to_radeon_bo(obj);
3537 int npages = bo->tbo.num_pages;
3638
37
- return drm_prime_pages_to_sg(bo->tbo.ttm->pages, npages);
39
+ return drm_prime_pages_to_sg(obj->dev, bo->tbo.ttm->pages, npages);
3840 }
3941
4042 void *radeon_gem_prime_vmap(struct drm_gem_object *obj)
....@@ -61,15 +63,15 @@
6163 struct dma_buf_attachment *attach,
6264 struct sg_table *sg)
6365 {
64
- struct reservation_object *resv = attach->dmabuf->resv;
66
+ struct dma_resv *resv = attach->dmabuf->resv;
6567 struct radeon_device *rdev = dev->dev_private;
6668 struct radeon_bo *bo;
6769 int ret;
6870
69
- ww_mutex_lock(&resv->lock, NULL);
71
+ dma_resv_lock(resv, NULL);
7072 ret = radeon_bo_create(rdev, attach->dmabuf->size, PAGE_SIZE, false,
7173 RADEON_GEM_DOMAIN_GTT, 0, sg, resv, &bo);
72
- ww_mutex_unlock(&resv->lock);
74
+ dma_resv_unlock(resv);
7375 if (ret)
7476 return ERR_PTR(ret);
7577
....@@ -78,7 +80,7 @@
7880 mutex_unlock(&rdev->gem.mutex);
7981
8082 bo->prime_shared_count = 1;
81
- return &bo->gem_base;
83
+ return &bo->tbo.base;
8284 }
8385
8486 int radeon_gem_prime_pin(struct drm_gem_object *obj)
....@@ -125,19 +127,11 @@
125127 }
126128
127129
128
-struct reservation_object *radeon_gem_prime_res_obj(struct drm_gem_object *obj)
129
-{
130
- struct radeon_bo *bo = gem_to_radeon_bo(obj);
131
-
132
- return bo->tbo.resv;
133
-}
134
-
135
-struct dma_buf *radeon_gem_prime_export(struct drm_device *dev,
136
- struct drm_gem_object *gobj,
130
+struct dma_buf *radeon_gem_prime_export(struct drm_gem_object *gobj,
137131 int flags)
138132 {
139133 struct radeon_bo *bo = gem_to_radeon_bo(gobj);
140
- if (radeon_ttm_tt_has_userptr(bo->tbo.ttm))
134
+ if (radeon_ttm_tt_has_userptr(bo->rdev, bo->tbo.ttm))
141135 return ERR_PTR(-EPERM);
142
- return drm_gem_prime_export(dev, gobj, flags);
136
+ return drm_gem_prime_export(gobj, flags);
143137 }