drm/ttm: cleanup coding style and implementation.
authorChristian König <christian.koenig@amd.com>
Wed, 15 Jul 2020 11:22:56 +0000 (13:22 +0200)
committerChristian König <christian.koenig@amd.com>
Tue, 21 Jul 2020 14:21:04 +0000 (16:21 +0200)
Only functional change is to always keep io_reserved_count up to date
for debugging even when it is not used otherwise.

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: https://patchwork.freedesktop.org/patch/378242/
drivers/gpu/drm/ttm/ttm_bo_util.c

index 6c05f4f..7fb3e0b 100644 (file)
@@ -115,39 +115,35 @@ static int ttm_mem_io_evict(struct ttm_mem_type_manager *man)
 {
        struct ttm_buffer_object *bo;
 
-       if (!man->use_io_reserve_lru || list_empty(&man->io_reserve_lru))
+       bo = list_first_entry_or_null(&man->io_reserve_lru,
+                                     struct ttm_buffer_object,
+                                     io_reserve_lru);
+       if (!bo)
                return -ENOSPC;
 
-       bo = list_first_entry(&man->io_reserve_lru,
-                             struct ttm_buffer_object,
-                             io_reserve_lru);
        list_del_init(&bo->io_reserve_lru);
        ttm_bo_unmap_virtual_locked(bo);
-
        return 0;
 }
 
-
 int ttm_mem_io_reserve(struct ttm_bo_device *bdev,
                       struct ttm_mem_reg *mem)
 {
        struct ttm_mem_type_manager *man = &bdev->man[mem->mem_type];
-       int ret = 0;
+       int ret;
+
+       if (mem->bus.io_reserved_count++)
+               return 0;
 
        if (!bdev->driver->io_mem_reserve)
                return 0;
-       if (likely(!man->use_io_reserve_lru))
-               return bdev->driver->io_mem_reserve(bdev, mem);
 
-       if (bdev->driver->io_mem_reserve &&
-           mem->bus.io_reserved_count++ == 0) {
 retry:
-               ret = bdev->driver->io_mem_reserve(bdev, mem);
-               if (ret == -ENOSPC) {
-                       ret = ttm_mem_io_evict(man);
-                       if (ret == 0)
-                               goto retry;
-               }
+       ret = bdev->driver->io_mem_reserve(bdev, mem);
+       if (ret == -ENOSPC) {
+               ret = ttm_mem_io_evict(man);
+               if (ret == 0)
+                       goto retry;
        }
        return ret;
 }
@@ -155,35 +151,31 @@ retry:
 void ttm_mem_io_free(struct ttm_bo_device *bdev,
                     struct ttm_mem_reg *mem)
 {
-       struct ttm_mem_type_manager *man = &bdev->man[mem->mem_type];
-
-       if (likely(!man->use_io_reserve_lru))
+       if (--mem->bus.io_reserved_count)
                return;
 
-       if (bdev->driver->io_mem_reserve &&
-           --mem->bus.io_reserved_count == 0 &&
-           bdev->driver->io_mem_free)
-               bdev->driver->io_mem_free(bdev, mem);
+       if (!bdev->driver->io_mem_free)
+               return;
 
+       bdev->driver->io_mem_free(bdev, mem);
 }
 
 int ttm_mem_io_reserve_vm(struct ttm_buffer_object *bo)
 {
+       struct ttm_mem_type_manager *man = &bo->bdev->man[bo->mem.mem_type];
        struct ttm_mem_reg *mem = &bo->mem;
        int ret;
 
-       if (!mem->bus.io_reserved_vm) {
-               struct ttm_mem_type_manager *man =
-                       &bo->bdev->man[mem->mem_type];
+       if (mem->bus.io_reserved_vm)
+               return 0;
 
-               ret = ttm_mem_io_reserve(bo->bdev, mem);
-               if (unlikely(ret != 0))
-                       return ret;
-               mem->bus.io_reserved_vm = true;
-               if (man->use_io_reserve_lru)
-                       list_add_tail(&bo->io_reserve_lru,
-                                     &man->io_reserve_lru);
-       }
+       ret = ttm_mem_io_reserve(bo->bdev, mem);
+       if (unlikely(ret != 0))
+               return ret;
+       mem->bus.io_reserved_vm = true;
+       if (man->use_io_reserve_lru)
+               list_add_tail(&bo->io_reserve_lru,
+                             &man->io_reserve_lru);
        return 0;
 }
 
@@ -191,15 +183,17 @@ void ttm_mem_io_free_vm(struct ttm_buffer_object *bo)
 {
        struct ttm_mem_reg *mem = &bo->mem;
 
-       if (mem->bus.io_reserved_vm) {
-               mem->bus.io_reserved_vm = false;
-               list_del_init(&bo->io_reserve_lru);
-               ttm_mem_io_free(bo->bdev, mem);
-       }
+       if (!mem->bus.io_reserved_vm)
+               return;
+
+       mem->bus.io_reserved_vm = false;
+       list_del_init(&bo->io_reserve_lru);
+       ttm_mem_io_free(bo->bdev, mem);
 }
 
-static int ttm_mem_reg_ioremap(struct ttm_bo_device *bdev, struct ttm_mem_reg *mem,
-                       void **virtual)
+static int ttm_mem_reg_ioremap(struct ttm_bo_device *bdev,
+                              struct ttm_mem_reg *mem,
+                              void **virtual)
 {
        struct ttm_mem_type_manager *man = &bdev->man[mem->mem_type];
        int ret;
@@ -216,9 +210,11 @@ static int ttm_mem_reg_ioremap(struct ttm_bo_device *bdev, struct ttm_mem_reg *m
                addr = mem->bus.addr;
        } else {
                if (mem->placement & TTM_PL_FLAG_WC)
-                       addr = ioremap_wc(mem->bus.base + mem->bus.offset, mem->bus.size);
+                       addr = ioremap_wc(mem->bus.base + mem->bus.offset,
+                                         mem->bus.size);
                else
-                       addr = ioremap(mem->bus.base + mem->bus.offset, mem->bus.size);
+                       addr = ioremap(mem->bus.base + mem->bus.offset,
+                                      mem->bus.size);
                if (!addr) {
                        (void) ttm_mem_io_lock(man, false);
                        ttm_mem_io_free(bdev, mem);
@@ -230,8 +226,9 @@ static int ttm_mem_reg_ioremap(struct ttm_bo_device *bdev, struct ttm_mem_reg *m
        return 0;
 }
 
-static void ttm_mem_reg_iounmap(struct ttm_bo_device *bdev, struct ttm_mem_reg *mem,
-                        void *virtual)
+static void ttm_mem_reg_iounmap(struct ttm_bo_device *bdev,
+                               struct ttm_mem_reg *mem,
+                               void *virtual)
 {
        struct ttm_mem_type_manager *man;
 
@@ -513,11 +510,13 @@ static int ttm_bo_ioremap(struct ttm_buffer_object *bo,
        } else {
                map->bo_kmap_type = ttm_bo_map_iomap;
                if (mem->placement & TTM_PL_FLAG_WC)
-                       map->virtual = ioremap_wc(bo->mem.bus.base + bo->mem.bus.offset + offset,
+                       map->virtual = ioremap_wc(bo->mem.bus.base +
+                                                 bo->mem.bus.offset + offset,
                                                  size);
                else
-                       map->virtual = ioremap(bo->mem.bus.base + bo->mem.bus.offset + offset,
-                                                      size);
+                       map->virtual = ioremap(bo->mem.bus.base +
+                                              bo->mem.bus.offset + offset,
+                                              size);
        }
        return (!map->virtual) ? -ENOMEM : 0;
 }