]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/blobdiff - drivers/gpu/drm/ast/ast_main.c
Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm
[mirror_ubuntu-focal-kernel.git] / drivers / gpu / drm / ast / ast_main.c
index 2854399856ba041d21f23b51579b6aeefb7158bb..4c7e31cb45ffaf14073ab3ccf286dee27823f9d6 100644 (file)
@@ -593,7 +593,7 @@ int ast_gem_create(struct drm_device *dev,
                   u32 size, bool iskernel,
                   struct drm_gem_object **obj)
 {
-       struct ast_bo *astbo;
+       struct drm_gem_vram_object *gbo;
        int ret;
 
        *obj = NULL;
@@ -602,80 +602,13 @@ int ast_gem_create(struct drm_device *dev,
        if (size == 0)
                return -EINVAL;
 
-       ret = ast_bo_create(dev, size, 0, 0, &astbo);
-       if (ret) {
+       gbo = drm_gem_vram_create(dev, &dev->vram_mm->bdev, size, 0, false);
+       if (IS_ERR(gbo)) {
+               ret = PTR_ERR(gbo);
                if (ret != -ERESTARTSYS)
                        DRM_ERROR("failed to allocate GEM object\n");
                return ret;
        }
-       *obj = &astbo->gem;
+       *obj = &gbo->gem;
        return 0;
 }
-
-int ast_dumb_create(struct drm_file *file,
-                   struct drm_device *dev,
-                   struct drm_mode_create_dumb *args)
-{
-       int ret;
-       struct drm_gem_object *gobj;
-       u32 handle;
-
-       args->pitch = args->width * ((args->bpp + 7) / 8);
-       args->size = args->pitch * args->height;
-
-       ret = ast_gem_create(dev, args->size, false,
-                            &gobj);
-       if (ret)
-               return ret;
-
-       ret = drm_gem_handle_create(file, gobj, &handle);
-       drm_gem_object_put_unlocked(gobj);
-       if (ret)
-               return ret;
-
-       args->handle = handle;
-       return 0;
-}
-
-static void ast_bo_unref(struct ast_bo **bo)
-{
-       if ((*bo) == NULL)
-               return;
-       ttm_bo_put(&((*bo)->bo));
-       *bo = NULL;
-}
-
-void ast_gem_free_object(struct drm_gem_object *obj)
-{
-       struct ast_bo *ast_bo = gem_to_ast_bo(obj);
-
-       ast_bo_unref(&ast_bo);
-}
-
-
-static inline u64 ast_bo_mmap_offset(struct ast_bo *bo)
-{
-       return drm_vma_node_offset_addr(&bo->bo.vma_node);
-}
-int
-ast_dumb_mmap_offset(struct drm_file *file,
-                    struct drm_device *dev,
-                    uint32_t handle,
-                    uint64_t *offset)
-{
-       struct drm_gem_object *obj;
-       struct ast_bo *bo;
-
-       obj = drm_gem_object_lookup(file, handle);
-       if (obj == NULL)
-               return -ENOENT;
-
-       bo = gem_to_ast_bo(obj);
-       *offset = ast_bo_mmap_offset(bo);
-
-       drm_gem_object_put_unlocked(obj);
-
-       return 0;
-
-}
-