You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
drm: kill ->gem_init_object() and friends
All drivers embed gem-objects into their own buffer objects. There is no reason to keep drm_gem_object_alloc(), gem->driver_private and ->gem_init_object() anymore. New drivers are highly encouraged to do the same. There is no benefit in allocating gem-objects separately. Cc: Dave Airlie <airlied@gmail.com> Cc: Alex Deucher <alexdeucher@gmail.com> Cc: Daniel Vetter <daniel@ffwll.ch> Cc: Jerome Glisse <jglisse@redhat.com> Cc: Rob Clark <robdclark@gmail.com> Cc: Inki Dae <inki.dae@samsung.com> Cc: Ben Skeggs <skeggsb@gmail.com> Cc: Patrik Jakobsson <patrik.r.jakobsson@gmail.com> Signed-off-by: David Herrmann <dh.herrmann@gmail.com> Acked-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
committed by
Dave Airlie
parent
55fb74adc6
commit
16eb5f4379
@@ -211,7 +211,6 @@ static struct drm_driver driver = {
|
|||||||
.minor = DRIVER_MINOR,
|
.minor = DRIVER_MINOR,
|
||||||
.patchlevel = DRIVER_PATCHLEVEL,
|
.patchlevel = DRIVER_PATCHLEVEL,
|
||||||
|
|
||||||
.gem_init_object = ast_gem_init_object,
|
|
||||||
.gem_free_object = ast_gem_free_object,
|
.gem_free_object = ast_gem_free_object,
|
||||||
.dumb_create = ast_dumb_create,
|
.dumb_create = ast_dumb_create,
|
||||||
.dumb_map_offset = ast_dumb_mmap_offset,
|
.dumb_map_offset = ast_dumb_mmap_offset,
|
||||||
|
|||||||
@@ -323,7 +323,6 @@ extern int ast_dumb_create(struct drm_file *file,
|
|||||||
struct drm_device *dev,
|
struct drm_device *dev,
|
||||||
struct drm_mode_create_dumb *args);
|
struct drm_mode_create_dumb *args);
|
||||||
|
|
||||||
extern int ast_gem_init_object(struct drm_gem_object *obj);
|
|
||||||
extern void ast_gem_free_object(struct drm_gem_object *obj);
|
extern void ast_gem_free_object(struct drm_gem_object *obj);
|
||||||
extern int ast_dumb_mmap_offset(struct drm_file *file,
|
extern int ast_dumb_mmap_offset(struct drm_file *file,
|
||||||
struct drm_device *dev,
|
struct drm_device *dev,
|
||||||
|
|||||||
@@ -449,12 +449,6 @@ int ast_dumb_create(struct drm_file *file,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ast_gem_init_object(struct drm_gem_object *obj)
|
|
||||||
{
|
|
||||||
BUG();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ast_bo_unref(struct ast_bo **bo)
|
void ast_bo_unref(struct ast_bo **bo)
|
||||||
{
|
{
|
||||||
struct ttm_buffer_object *tbo;
|
struct ttm_buffer_object *tbo;
|
||||||
|
|||||||
@@ -97,7 +97,6 @@ static struct drm_driver driver = {
|
|||||||
.major = DRIVER_MAJOR,
|
.major = DRIVER_MAJOR,
|
||||||
.minor = DRIVER_MINOR,
|
.minor = DRIVER_MINOR,
|
||||||
.patchlevel = DRIVER_PATCHLEVEL,
|
.patchlevel = DRIVER_PATCHLEVEL,
|
||||||
.gem_init_object = cirrus_gem_init_object,
|
|
||||||
.gem_free_object = cirrus_gem_free_object,
|
.gem_free_object = cirrus_gem_free_object,
|
||||||
.dumb_create = cirrus_dumb_create,
|
.dumb_create = cirrus_dumb_create,
|
||||||
.dumb_map_offset = cirrus_dumb_mmap_offset,
|
.dumb_map_offset = cirrus_dumb_mmap_offset,
|
||||||
|
|||||||
@@ -191,7 +191,6 @@ int cirrus_device_init(struct cirrus_device *cdev,
|
|||||||
struct pci_dev *pdev,
|
struct pci_dev *pdev,
|
||||||
uint32_t flags);
|
uint32_t flags);
|
||||||
void cirrus_device_fini(struct cirrus_device *cdev);
|
void cirrus_device_fini(struct cirrus_device *cdev);
|
||||||
int cirrus_gem_init_object(struct drm_gem_object *obj);
|
|
||||||
void cirrus_gem_free_object(struct drm_gem_object *obj);
|
void cirrus_gem_free_object(struct drm_gem_object *obj);
|
||||||
int cirrus_dumb_mmap_offset(struct drm_file *file,
|
int cirrus_dumb_mmap_offset(struct drm_file *file,
|
||||||
struct drm_device *dev,
|
struct drm_device *dev,
|
||||||
|
|||||||
@@ -255,12 +255,6 @@ int cirrus_dumb_create(struct drm_file *file,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int cirrus_gem_init_object(struct drm_gem_object *obj)
|
|
||||||
{
|
|
||||||
BUG();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void cirrus_bo_unref(struct cirrus_bo **bo)
|
void cirrus_bo_unref(struct cirrus_bo **bo)
|
||||||
{
|
{
|
||||||
struct ttm_buffer_object *tbo;
|
struct ttm_buffer_object *tbo;
|
||||||
|
|||||||
@@ -160,35 +160,6 @@ void drm_gem_private_object_init(struct drm_device *dev,
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL(drm_gem_private_object_init);
|
EXPORT_SYMBOL(drm_gem_private_object_init);
|
||||||
|
|
||||||
/**
|
|
||||||
* Allocate a GEM object of the specified size with shmfs backing store
|
|
||||||
*/
|
|
||||||
struct drm_gem_object *
|
|
||||||
drm_gem_object_alloc(struct drm_device *dev, size_t size)
|
|
||||||
{
|
|
||||||
struct drm_gem_object *obj;
|
|
||||||
|
|
||||||
obj = kzalloc(sizeof(*obj), GFP_KERNEL);
|
|
||||||
if (!obj)
|
|
||||||
goto free;
|
|
||||||
|
|
||||||
if (drm_gem_object_init(dev, obj, size) != 0)
|
|
||||||
goto free;
|
|
||||||
|
|
||||||
if (dev->driver->gem_init_object != NULL &&
|
|
||||||
dev->driver->gem_init_object(obj) != 0) {
|
|
||||||
goto fput;
|
|
||||||
}
|
|
||||||
return obj;
|
|
||||||
fput:
|
|
||||||
/* Object_init mangles the global counters - readjust them. */
|
|
||||||
fput(obj->filp);
|
|
||||||
free:
|
|
||||||
kfree(obj);
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL(drm_gem_object_alloc);
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
drm_gem_remove_prime_handles(struct drm_gem_object *obj, struct drm_file *filp)
|
drm_gem_remove_prime_handles(struct drm_gem_object *obj, struct drm_file *filp)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -264,7 +264,6 @@ static struct drm_driver exynos_drm_driver = {
|
|||||||
.get_vblank_counter = drm_vblank_count,
|
.get_vblank_counter = drm_vblank_count,
|
||||||
.enable_vblank = exynos_drm_crtc_enable_vblank,
|
.enable_vblank = exynos_drm_crtc_enable_vblank,
|
||||||
.disable_vblank = exynos_drm_crtc_disable_vblank,
|
.disable_vblank = exynos_drm_crtc_disable_vblank,
|
||||||
.gem_init_object = exynos_drm_gem_init_object,
|
|
||||||
.gem_free_object = exynos_drm_gem_free_object,
|
.gem_free_object = exynos_drm_gem_free_object,
|
||||||
.gem_vm_ops = &exynos_drm_gem_vm_ops,
|
.gem_vm_ops = &exynos_drm_gem_vm_ops,
|
||||||
.dumb_create = exynos_drm_gem_dumb_create,
|
.dumb_create = exynos_drm_gem_dumb_create,
|
||||||
|
|||||||
@@ -630,11 +630,6 @@ void exynos_gem_unmap_sgt_from_dma(struct drm_device *drm_dev,
|
|||||||
dma_unmap_sg(drm_dev->dev, sgt->sgl, sgt->nents, dir);
|
dma_unmap_sg(drm_dev->dev, sgt->sgl, sgt->nents, dir);
|
||||||
}
|
}
|
||||||
|
|
||||||
int exynos_drm_gem_init_object(struct drm_gem_object *obj)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void exynos_drm_gem_free_object(struct drm_gem_object *obj)
|
void exynos_drm_gem_free_object(struct drm_gem_object *obj)
|
||||||
{
|
{
|
||||||
struct exynos_drm_gem_obj *exynos_gem_obj;
|
struct exynos_drm_gem_obj *exynos_gem_obj;
|
||||||
|
|||||||
@@ -135,9 +135,6 @@ unsigned long exynos_drm_gem_get_size(struct drm_device *dev,
|
|||||||
unsigned int gem_handle,
|
unsigned int gem_handle,
|
||||||
struct drm_file *file_priv);
|
struct drm_file *file_priv);
|
||||||
|
|
||||||
/* initialize gem object. */
|
|
||||||
int exynos_drm_gem_init_object(struct drm_gem_object *obj);
|
|
||||||
|
|
||||||
/* free gem object. */
|
/* free gem object. */
|
||||||
void exynos_drm_gem_free_object(struct drm_gem_object *gem_obj);
|
void exynos_drm_gem_free_object(struct drm_gem_object *gem_obj);
|
||||||
|
|
||||||
|
|||||||
@@ -29,11 +29,6 @@
|
|||||||
#include <drm/drm_vma_manager.h>
|
#include <drm/drm_vma_manager.h>
|
||||||
#include "psb_drv.h"
|
#include "psb_drv.h"
|
||||||
|
|
||||||
int psb_gem_init_object(struct drm_gem_object *obj)
|
|
||||||
{
|
|
||||||
return -EINVAL;
|
|
||||||
}
|
|
||||||
|
|
||||||
void psb_gem_free_object(struct drm_gem_object *obj)
|
void psb_gem_free_object(struct drm_gem_object *obj)
|
||||||
{
|
{
|
||||||
struct gtt_range *gtt = container_of(obj, struct gtt_range, gem);
|
struct gtt_range *gtt = container_of(obj, struct gtt_range, gem);
|
||||||
|
|||||||
@@ -646,7 +646,6 @@ static struct drm_driver driver = {
|
|||||||
.preclose = psb_driver_preclose,
|
.preclose = psb_driver_preclose,
|
||||||
.postclose = psb_driver_close,
|
.postclose = psb_driver_close,
|
||||||
|
|
||||||
.gem_init_object = psb_gem_init_object,
|
|
||||||
.gem_free_object = psb_gem_free_object,
|
.gem_free_object = psb_gem_free_object,
|
||||||
.gem_vm_ops = &psb_gem_vm_ops,
|
.gem_vm_ops = &psb_gem_vm_ops,
|
||||||
.dumb_create = psb_gem_dumb_create,
|
.dumb_create = psb_gem_dumb_create,
|
||||||
|
|||||||
@@ -837,7 +837,6 @@ extern const struct drm_connector_helper_funcs
|
|||||||
extern const struct drm_connector_funcs psb_intel_lvds_connector_funcs;
|
extern const struct drm_connector_funcs psb_intel_lvds_connector_funcs;
|
||||||
|
|
||||||
/* gem.c */
|
/* gem.c */
|
||||||
extern int psb_gem_init_object(struct drm_gem_object *obj);
|
|
||||||
extern void psb_gem_free_object(struct drm_gem_object *obj);
|
extern void psb_gem_free_object(struct drm_gem_object *obj);
|
||||||
extern int psb_gem_get_aperture(struct drm_device *dev, void *data,
|
extern int psb_gem_get_aperture(struct drm_device *dev, void *data,
|
||||||
struct drm_file *file);
|
struct drm_file *file);
|
||||||
|
|||||||
@@ -938,7 +938,6 @@ static struct drm_driver driver = {
|
|||||||
.debugfs_init = i915_debugfs_init,
|
.debugfs_init = i915_debugfs_init,
|
||||||
.debugfs_cleanup = i915_debugfs_cleanup,
|
.debugfs_cleanup = i915_debugfs_cleanup,
|
||||||
#endif
|
#endif
|
||||||
.gem_init_object = i915_gem_init_object,
|
|
||||||
.gem_free_object = i915_gem_free_object,
|
.gem_free_object = i915_gem_free_object,
|
||||||
.gem_vm_ops = &i915_gem_vm_ops,
|
.gem_vm_ops = &i915_gem_vm_ops,
|
||||||
|
|
||||||
|
|||||||
@@ -1848,7 +1848,6 @@ int i915_gem_wait_ioctl(struct drm_device *dev, void *data,
|
|||||||
void i915_gem_load(struct drm_device *dev);
|
void i915_gem_load(struct drm_device *dev);
|
||||||
void *i915_gem_object_alloc(struct drm_device *dev);
|
void *i915_gem_object_alloc(struct drm_device *dev);
|
||||||
void i915_gem_object_free(struct drm_i915_gem_object *obj);
|
void i915_gem_object_free(struct drm_i915_gem_object *obj);
|
||||||
int i915_gem_init_object(struct drm_gem_object *obj);
|
|
||||||
void i915_gem_object_init(struct drm_i915_gem_object *obj,
|
void i915_gem_object_init(struct drm_i915_gem_object *obj,
|
||||||
const struct drm_i915_gem_object_ops *ops);
|
const struct drm_i915_gem_object_ops *ops);
|
||||||
struct drm_i915_gem_object *i915_gem_alloc_object(struct drm_device *dev,
|
struct drm_i915_gem_object *i915_gem_alloc_object(struct drm_device *dev,
|
||||||
|
|||||||
@@ -4107,13 +4107,6 @@ struct drm_i915_gem_object *i915_gem_alloc_object(struct drm_device *dev,
|
|||||||
return obj;
|
return obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
int i915_gem_init_object(struct drm_gem_object *obj)
|
|
||||||
{
|
|
||||||
BUG();
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void i915_gem_free_object(struct drm_gem_object *gem_obj)
|
void i915_gem_free_object(struct drm_gem_object *gem_obj)
|
||||||
{
|
{
|
||||||
struct drm_i915_gem_object *obj = to_intel_bo(gem_obj);
|
struct drm_i915_gem_object *obj = to_intel_bo(gem_obj);
|
||||||
|
|||||||
@@ -99,7 +99,6 @@ static struct drm_driver driver = {
|
|||||||
.minor = DRIVER_MINOR,
|
.minor = DRIVER_MINOR,
|
||||||
.patchlevel = DRIVER_PATCHLEVEL,
|
.patchlevel = DRIVER_PATCHLEVEL,
|
||||||
|
|
||||||
.gem_init_object = mgag200_gem_init_object,
|
|
||||||
.gem_free_object = mgag200_gem_free_object,
|
.gem_free_object = mgag200_gem_free_object,
|
||||||
.dumb_create = mgag200_dumb_create,
|
.dumb_create = mgag200_dumb_create,
|
||||||
.dumb_map_offset = mgag200_dumb_mmap_offset,
|
.dumb_map_offset = mgag200_dumb_mmap_offset,
|
||||||
|
|||||||
@@ -260,7 +260,6 @@ int mgag200_driver_unload(struct drm_device *dev);
|
|||||||
int mgag200_gem_create(struct drm_device *dev,
|
int mgag200_gem_create(struct drm_device *dev,
|
||||||
u32 size, bool iskernel,
|
u32 size, bool iskernel,
|
||||||
struct drm_gem_object **obj);
|
struct drm_gem_object **obj);
|
||||||
int mgag200_gem_init_object(struct drm_gem_object *obj);
|
|
||||||
int mgag200_dumb_create(struct drm_file *file,
|
int mgag200_dumb_create(struct drm_file *file,
|
||||||
struct drm_device *dev,
|
struct drm_device *dev,
|
||||||
struct drm_mode_create_dumb *args);
|
struct drm_mode_create_dumb *args);
|
||||||
|
|||||||
@@ -310,12 +310,6 @@ int mgag200_dumb_create(struct drm_file *file,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int mgag200_gem_init_object(struct drm_gem_object *obj)
|
|
||||||
{
|
|
||||||
BUG();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void mgag200_bo_unref(struct mgag200_bo **bo)
|
void mgag200_bo_unref(struct mgag200_bo **bo)
|
||||||
{
|
{
|
||||||
struct ttm_buffer_object *tbo;
|
struct ttm_buffer_object *tbo;
|
||||||
|
|||||||
@@ -834,7 +834,6 @@ driver = {
|
|||||||
.gem_prime_vmap = nouveau_gem_prime_vmap,
|
.gem_prime_vmap = nouveau_gem_prime_vmap,
|
||||||
.gem_prime_vunmap = nouveau_gem_prime_vunmap,
|
.gem_prime_vunmap = nouveau_gem_prime_vunmap,
|
||||||
|
|
||||||
.gem_init_object = nouveau_gem_object_new,
|
|
||||||
.gem_free_object = nouveau_gem_object_del,
|
.gem_free_object = nouveau_gem_object_del,
|
||||||
.gem_open_object = nouveau_gem_object_open,
|
.gem_open_object = nouveau_gem_object_open,
|
||||||
.gem_close_object = nouveau_gem_object_close,
|
.gem_close_object = nouveau_gem_object_close,
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user