mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-20 14:57:39 +07:00
drm/radeon: Fill out gem_object->resv
That way we can ditch our gem_prime_res_obj implementation. Since ttm absolutely needs the right reservation object all the boilerplate is already there and we just have to wire it up correctly. Note that gem/prime doesn't care when we do this, as long as we do it before the bo is registered and someone can call the handle2fd ioctl on it. Aside: ttm_buffer_object.ttm_resv could probably be ditched in favour of always passing a non-NULL resv to ttm_bo_init(). At least for gem drivers that would avoid having two of these, on in ttm_buffer_object and the other in drm_gem_object, one just there for confusion. Acked-by: Gerd Hoffmann <kraxel@redhat.com> Cc: Gerd Hoffmann <kraxel@redhat.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.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: amd-gfx@lists.freedesktop.org Reviewed-by: Christian König <christian.koenig@amd.com> Link: https://patchwork.freedesktop.org/patch/msgid/20190725132655.11951-2-daniel.vetter@ffwll.ch
This commit is contained in:
parent
0486ad20e7
commit
c549da2d21
@ -152,7 +152,6 @@ struct drm_gem_object *radeon_gem_prime_import_sg_table(struct drm_device *dev,
|
||||
struct sg_table *sg);
|
||||
int radeon_gem_prime_pin(struct drm_gem_object *obj);
|
||||
void radeon_gem_prime_unpin(struct drm_gem_object *obj);
|
||||
struct reservation_object *radeon_gem_prime_res_obj(struct drm_gem_object *);
|
||||
void *radeon_gem_prime_vmap(struct drm_gem_object *obj);
|
||||
void radeon_gem_prime_vunmap(struct drm_gem_object *obj, void *vaddr);
|
||||
|
||||
@ -566,7 +565,6 @@ static struct drm_driver kms_driver = {
|
||||
.gem_prime_export = radeon_gem_prime_export,
|
||||
.gem_prime_pin = radeon_gem_prime_pin,
|
||||
.gem_prime_unpin = radeon_gem_prime_unpin,
|
||||
.gem_prime_res_obj = radeon_gem_prime_res_obj,
|
||||
.gem_prime_get_sg_table = radeon_gem_prime_get_sg_table,
|
||||
.gem_prime_import_sg_table = radeon_gem_prime_import_sg_table,
|
||||
.gem_prime_vmap = radeon_gem_prime_vmap,
|
||||
|
@ -262,6 +262,7 @@ int radeon_bo_create(struct radeon_device *rdev,
|
||||
r = ttm_bo_init(&rdev->mman.bdev, &bo->tbo, size, type,
|
||||
&bo->placement, page_align, !kernel, acc_size,
|
||||
sg, resv, &radeon_ttm_bo_destroy);
|
||||
bo->gem_base.resv = bo->tbo.resv;
|
||||
up_read(&rdev->pm.mclk_lock);
|
||||
if (unlikely(r != 0)) {
|
||||
return r;
|
||||
|
@ -117,13 +117,6 @@ void radeon_gem_prime_unpin(struct drm_gem_object *obj)
|
||||
}
|
||||
|
||||
|
||||
struct reservation_object *radeon_gem_prime_res_obj(struct drm_gem_object *obj)
|
||||
{
|
||||
struct radeon_bo *bo = gem_to_radeon_bo(obj);
|
||||
|
||||
return bo->tbo.resv;
|
||||
}
|
||||
|
||||
struct dma_buf *radeon_gem_prime_export(struct drm_gem_object *gobj,
|
||||
int flags)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user