]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commitdiff
drm/qxl: stop implementing init_mem_type
authorChristian König <christian.koenig@amd.com>
Thu, 23 Jul 2020 14:29:59 +0000 (16:29 +0200)
committerChristian König <christian.koenig@amd.com>
Fri, 31 Jul 2020 15:14:09 +0000 (17:14 +0200)
Instead just initialize the memory type parameters
before calling ttm_bo_init_mm.

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Link: https://patchwork.freedesktop.org/patch/382083/
drivers/gpu/drm/qxl/qxl_ttm.c

index abb9fa4d80cf919940af02b1f164a777c8a0c4f1..852089d7f783f62ee5d3e3e4ab346f976c098fc5 100644 (file)
@@ -51,21 +51,6 @@ static struct qxl_device *qxl_get_qdev(struct ttm_bo_device *bdev)
 static int qxl_init_mem_type(struct ttm_bo_device *bdev, uint32_t type,
                             struct ttm_mem_type_manager *man)
 {
-       switch (type) {
-       case TTM_PL_SYSTEM:
-               /* System memory */
-               break;
-       case TTM_PL_VRAM:
-       case TTM_PL_PRIV:
-               /* "On-card" video ram */
-               man->func = &ttm_bo_manager_func;
-               man->available_caching = TTM_PL_MASK_CACHING;
-               man->default_caching = TTM_PL_FLAG_CACHED;
-               break;
-       default:
-               DRM_ERROR("Unsupported memory type %u\n", (unsigned int)type);
-               return -EINVAL;
-       }
        return 0;
 }
 
@@ -238,6 +223,19 @@ static struct ttm_bo_driver qxl_bo_driver = {
        .move_notify = &qxl_bo_move_notify,
 };
 
+static int qxl_ttm_init_mem_type(struct qxl_device *qdev,
+                                unsigned int type,
+                                uint64_t size)
+{
+       struct ttm_mem_type_manager *man = &qdev->mman.bdev.man[type];
+
+       man->func = &ttm_bo_manager_func;
+       man->available_caching = TTM_PL_MASK_CACHING;
+       man->default_caching = TTM_PL_FLAG_CACHED;
+
+       return ttm_bo_init_mm(&qdev->mman.bdev, type, size);
+}
+
 int qxl_ttm_init(struct qxl_device *qdev)
 {
        int r;
@@ -255,14 +253,13 @@ int qxl_ttm_init(struct qxl_device *qdev)
        }
        /* NOTE: this includes the framebuffer (aka surface 0) */
        num_io_pages = qdev->rom->ram_header_offset / PAGE_SIZE;
-       r = ttm_bo_init_mm(&qdev->mman.bdev, TTM_PL_VRAM,
-                          num_io_pages);
+       r = qxl_ttm_init_mem_type(qdev, TTM_PL_VRAM, num_io_pages);
        if (r) {
                DRM_ERROR("Failed initializing VRAM heap.\n");
                return r;
        }
-       r = ttm_bo_init_mm(&qdev->mman.bdev, TTM_PL_PRIV,
-                          qdev->surfaceram_size / PAGE_SIZE);
+       r = qxl_ttm_init_mem_type(qdev, TTM_PL_PRIV,
+                                 qdev->surfaceram_size / PAGE_SIZE);
        if (r) {
                DRM_ERROR("Failed initializing Surfaces heap.\n");
                return r;