This flag is only needed for BOs created by amdgpu_gem_object_create(),
so we can remove tiling_flags from the base class.

Signed-off-by: Nirmoy Das <nirmoy....@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 19 +++++++++++++++++--
 drivers/gpu/drm/amd/amdgpu/amdgpu_object.h |  1 -
 2 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
index 355d01ebce51..2e5cf46251af 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
@@ -1174,12 +1174,19 @@ int amdgpu_bo_fbdev_mmap(struct amdgpu_bo *bo,
 int amdgpu_bo_set_tiling_flags(struct amdgpu_bo *bo, u64 tiling_flags)
 {
        struct amdgpu_device *adev = amdgpu_ttm_adev(bo->tbo.bdev);
+       struct amdgpu_bo_user *ubo;
+
+       if (bo->tbo.type != ttm_bo_type_device) {
+               DRM_ERROR("can not set tiling_flags for a non-amdgpu_bo_user 
type BO\n");
+               return -EINVAL;
+       }
 
        if (adev->family <= AMDGPU_FAMILY_CZ &&
            AMDGPU_TILING_GET(tiling_flags, TILE_SPLIT) > 6)
                return -EINVAL;
 
-       bo->tiling_flags = tiling_flags;
+       ubo = container_of((bo), struct amdgpu_bo_user, bo);
+       ubo->tiling_flags = tiling_flags;
        return 0;
 }
 
@@ -1193,10 +1200,18 @@ int amdgpu_bo_set_tiling_flags(struct amdgpu_bo *bo, 
u64 tiling_flags)
  */
 void amdgpu_bo_get_tiling_flags(struct amdgpu_bo *bo, u64 *tiling_flags)
 {
+       struct amdgpu_bo_user *ubo;
+
+       if (bo->tbo.type != ttm_bo_type_device) {
+               DRM_ERROR("can not get tiling_flags for a non-amdgpu_bo_user 
type BO\n");
+               return;
+       }
+
        dma_resv_assert_held(bo->tbo.base.resv);
+       ubo = container_of((bo), struct amdgpu_bo_user, bo);
 
        if (tiling_flags)
-               *tiling_flags = bo->tiling_flags;
+               *tiling_flags = ubo->tiling_flags;
 }
 
 /**
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h
index cbb881afe6da..6cc38b71f7ca 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h
@@ -91,7 +91,6 @@ struct amdgpu_bo {
        struct ttm_bo_kmap_obj          kmap;
        u64                             flags;
        unsigned                        pin_count;
-       u64                             tiling_flags;
        u64                             metadata_flags;
        void                            *metadata;
        u32                             metadata_size;
-- 
2.30.1

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to