On Tue, Sep 15, 2020 at 04:59:44PM +0200, Thomas Zimmermann wrote: > GEM object functions deprecate several similar callback interfaces in > struct drm_driver. This patch replaces the per-driver callbacks with > per-instance callbacks in mediatek. The only exception is gem_prime_mmap, > which is non-trivial to convert. > > Signed-off-by: Thomas Zimmermann <tzimmermann@xxxxxxx> > --- > drivers/gpu/drm/mediatek/mtk_drm_drv.c | 5 ----- > drivers/gpu/drm/mediatek/mtk_drm_gem.c | 11 +++++++++++ > 2 files changed, 11 insertions(+), 5 deletions(-) > > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c > index 040a8f393fe2..2f8d0043fca7 100644 > --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c > +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c > @@ -301,18 +301,13 @@ struct drm_gem_object *mtk_drm_gem_prime_import(struct drm_device *dev, > static struct drm_driver mtk_drm_driver = { > .driver_features = DRIVER_MODESET | DRIVER_GEM | DRIVER_ATOMIC, > > - .gem_free_object_unlocked = mtk_drm_gem_free_object, > - .gem_vm_ops = &drm_gem_cma_vm_ops, > .dumb_create = mtk_drm_gem_dumb_create, > > .prime_handle_to_fd = drm_gem_prime_handle_to_fd, > .prime_fd_to_handle = drm_gem_prime_fd_to_handle, > .gem_prime_import = mtk_drm_gem_prime_import, > - .gem_prime_get_sg_table = mtk_gem_prime_get_sg_table, > .gem_prime_import_sg_table = mtk_gem_prime_import_sg_table, > .gem_prime_mmap = mtk_drm_gem_mmap_buf, > - .gem_prime_vmap = mtk_drm_gem_prime_vmap, > - .gem_prime_vunmap = mtk_drm_gem_prime_vunmap, > .fops = &mtk_drm_fops, > > .name = DRIVER_NAME, > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_gem.c b/drivers/gpu/drm/mediatek/mtk_drm_gem.c > index 6190cc3b7b0d..591b90410e4a 100644 > --- a/drivers/gpu/drm/mediatek/mtk_drm_gem.c > +++ b/drivers/gpu/drm/mediatek/mtk_drm_gem.c > @@ -8,11 +8,20 @@ > #include <drm/drm.h> > #include <drm/drm_device.h> > #include <drm/drm_gem.h> > +#include <drm/drm_gem_cma_helper.h> > #include <drm/drm_prime.h> > > #include "mtk_drm_drv.h" > #include "mtk_drm_gem.h" > > +static const struct drm_gem_object_funcs mtk_drm_gem_object_funcs = { > + .free = mtk_drm_gem_free_object, > + .get_sg_table = mtk_gem_prime_get_sg_table, > + .vmap = mtk_drm_gem_prime_vmap, > + .vunmap = mtk_drm_gem_prime_vunmap, > + .vm_ops = &drm_gem_cma_vm_ops, > +}; > + > static struct mtk_drm_gem_obj *mtk_drm_gem_init(struct drm_device *dev, > unsigned long size) > { > @@ -25,6 +34,8 @@ static struct mtk_drm_gem_obj *mtk_drm_gem_init(struct drm_device *dev, > if (!mtk_gem_obj) > return ERR_PTR(-ENOMEM); > > + mtk_gem_obj->base.funcs = &mtk_drm_gem_object_funcs; > + > ret = drm_gem_object_init(dev, &mtk_gem_obj->base, size); > if (ret < 0) { > DRM_ERROR("failed to initialize gem object\n"); > -- > 2.28.0 Reviewed-by: Daniel Vetter <daniel.vetter@xxxxxxxx> > -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch