drm/tegra: Introduce GEM object functions
authorThomas Zimmermann <tzimmermann@suse.de>
Wed, 23 Sep 2020 10:21:52 +0000 (12:21 +0200)
committerThomas Zimmermann <tzimmermann@suse.de>
Fri, 25 Sep 2020 07:21:23 +0000 (09:21 +0200)
GEM object functions deprecate several similar callback interfaces in
struct drm_driver. This patch replaces the per-driver callbacks with
per-instance callbacks in tegra.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: Thierry Reding <treding@nvidia.com>
Acked-by: Christian König <christian.koenig@amd.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200923102159.24084-16-tzimmermann@suse.de
drivers/gpu/drm/tegra/drm.c
drivers/gpu/drm/tegra/gem.c

index ba9d1c3..f0f581c 100644 (file)
@@ -858,12 +858,8 @@ static struct drm_driver tegra_drm_driver = {
        .debugfs_init = tegra_debugfs_init,
 #endif
 
-       .gem_free_object_unlocked = tegra_bo_free_object,
-       .gem_vm_ops = &tegra_bo_vm_ops,
-
        .prime_handle_to_fd = drm_gem_prime_handle_to_fd,
        .prime_fd_to_handle = drm_gem_prime_fd_to_handle,
-       .gem_prime_export = tegra_gem_prime_export,
        .gem_prime_import = tegra_gem_prime_import,
 
        .dumb_create = tegra_bo_dumb_create,
index 47e2935..d481dea 100644 (file)
@@ -231,6 +231,12 @@ static int tegra_bo_iommu_unmap(struct tegra_drm *tegra, struct tegra_bo *bo)
        return 0;
 }
 
+static const struct drm_gem_object_funcs tegra_gem_object_funcs = {
+       .free = tegra_bo_free_object,
+       .export = tegra_gem_prime_export,
+       .vm_ops = &tegra_bo_vm_ops,
+};
+
 static struct tegra_bo *tegra_bo_alloc_object(struct drm_device *drm,
                                              size_t size)
 {
@@ -241,6 +247,8 @@ static struct tegra_bo *tegra_bo_alloc_object(struct drm_device *drm,
        if (!bo)
                return ERR_PTR(-ENOMEM);
 
+       bo->gem.funcs = &tegra_gem_object_funcs;
+
        host1x_bo_init(&bo->base, &tegra_bo_ops);
        size = round_up(size, PAGE_SIZE);