Stop using TTM_PL_FLAG_NO_EVICT.

Signed-off-by: Christian König <christian.koe...@amd.com>
Acked-by: Thomas Zimmermann <tzimmerm...@suse.de>
---
 drivers/gpu/drm/drm_gem_vram_helper.c | 37 +++++++--------------------
 include/drm/drm_gem_vram_helper.h     |  3 ---
 2 files changed, 9 insertions(+), 31 deletions(-)

diff --git a/drivers/gpu/drm/drm_gem_vram_helper.c 
b/drivers/gpu/drm/drm_gem_vram_helper.c
index 50cad0e4a92e..bd3dd17ad81d 100644
--- a/drivers/gpu/drm/drm_gem_vram_helper.c
+++ b/drivers/gpu/drm/drm_gem_vram_helper.c
@@ -301,7 +301,7 @@ static u64 drm_gem_vram_pg_offset(struct 
drm_gem_vram_object *gbo)
  */
 s64 drm_gem_vram_offset(struct drm_gem_vram_object *gbo)
 {
-       if (WARN_ON_ONCE(!gbo->pin_count))
+       if (WARN_ON_ONCE(!gbo->bo.pin_count))
                return (s64)-ENODEV;
        return drm_gem_vram_pg_offset(gbo) << PAGE_SHIFT;
 }
@@ -310,24 +310,21 @@ EXPORT_SYMBOL(drm_gem_vram_offset);
 static int drm_gem_vram_pin_locked(struct drm_gem_vram_object *gbo,
                                   unsigned long pl_flag)
 {
-       int i, ret;
        struct ttm_operation_ctx ctx = { false, false };
+       int ret;
 
-       if (gbo->pin_count)
+       if (gbo->bo.pin_count)
                goto out;
 
        if (pl_flag)
                drm_gem_vram_placement(gbo, pl_flag);
 
-       for (i = 0; i < gbo->placement.num_placement; ++i)
-               gbo->placements[i].flags |= TTM_PL_FLAG_NO_EVICT;
-
        ret = ttm_bo_validate(&gbo->bo, &gbo->placement, &ctx);
        if (ret < 0)
                return ret;
 
 out:
-       ++gbo->pin_count;
+       ttm_bo_pin(&gbo->bo);
 
        return 0;
 }
@@ -369,26 +366,9 @@ int drm_gem_vram_pin(struct drm_gem_vram_object *gbo, 
unsigned long pl_flag)
 }
 EXPORT_SYMBOL(drm_gem_vram_pin);
 
-static int drm_gem_vram_unpin_locked(struct drm_gem_vram_object *gbo)
+static void drm_gem_vram_unpin_locked(struct drm_gem_vram_object *gbo)
 {
-       int i, ret;
-       struct ttm_operation_ctx ctx = { false, false };
-
-       if (WARN_ON_ONCE(!gbo->pin_count))
-               return 0;
-
-       --gbo->pin_count;
-       if (gbo->pin_count)
-               return 0;
-
-       for (i = 0; i < gbo->placement.num_placement ; ++i)
-               gbo->placements[i].flags &= ~TTM_PL_FLAG_NO_EVICT;
-
-       ret = ttm_bo_validate(&gbo->bo, &gbo->placement, &ctx);
-       if (ret < 0)
-               return ret;
-
-       return 0;
+       ttm_bo_unpin(&gbo->bo);
 }
 
 /**
@@ -406,10 +386,11 @@ int drm_gem_vram_unpin(struct drm_gem_vram_object *gbo)
        ret = ttm_bo_reserve(&gbo->bo, true, false, NULL);
        if (ret)
                return ret;
-       ret = drm_gem_vram_unpin_locked(gbo);
+
+       drm_gem_vram_unpin_locked(gbo);
        ttm_bo_unreserve(&gbo->bo);
 
-       return ret;
+       return 0;
 }
 EXPORT_SYMBOL(drm_gem_vram_unpin);
 
diff --git a/include/drm/drm_gem_vram_helper.h 
b/include/drm/drm_gem_vram_helper.h
index 62cc6e6c3a4f..128f88174d32 100644
--- a/include/drm/drm_gem_vram_helper.h
+++ b/include/drm/drm_gem_vram_helper.h
@@ -35,7 +35,6 @@ struct vm_area_struct;
  * @placement: TTM placement information. Supported placements are \
        %TTM_PL_VRAM and %TTM_PL_SYSTEM
  * @placements:        TTM placement information.
- * @pin_count: Pin counter
  *
  * The type struct drm_gem_vram_object represents a GEM object that is
  * backed by VRAM. It can be used for simple framebuffer devices with
@@ -64,8 +63,6 @@ struct drm_gem_vram_object {
        /* Supported placements are %TTM_PL_VRAM and %TTM_PL_SYSTEM */
        struct ttm_placement placement;
        struct ttm_place placements[2];
-
-       int pin_count;
 };
 
 /**
-- 
2.17.1

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

Reply via email to