[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH 18/20] drm/xen: Introduce GEM object functions
Hi Am 13.08.20 um 13:19 schrieb Oleksandr Andrushchenko: > Hi, > > On 8/13/20 11:36 AM, 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 xen. The only exception is gem_prime_mmap, >> which is non-trivial to convert. >> >> Signed-off-by: Thomas Zimmermann <tzimmermann@xxxxxxx> >> --- >> drivers/gpu/drm/xen/xen_drm_front.c | 12 +----------- >> drivers/gpu/drm/xen/xen_drm_front.h | 2 ++ >> drivers/gpu/drm/xen/xen_drm_front_gem.c | 15 +++++++++++++++ >> 3 files changed, 18 insertions(+), 11 deletions(-) >> >> diff --git a/drivers/gpu/drm/xen/xen_drm_front.c >> b/drivers/gpu/drm/xen/xen_drm_front.c >> index 3e660fb111b3..bd9af1875af1 100644 >> --- a/drivers/gpu/drm/xen/xen_drm_front.c >> +++ b/drivers/gpu/drm/xen/xen_drm_front.c >> @@ -433,7 +433,7 @@ static int xen_drm_drv_dumb_create(struct drm_file *filp, >> return ret; >> } >> >> -static void xen_drm_drv_free_object_unlocked(struct drm_gem_object *obj) >> +void xen_drm_drv_free_object_unlocked(struct drm_gem_object *obj) > > Can we please have naming consistent and name it as > > xen_drm_front_drv_free_object_unlocked or any other name if this seems to be > too long, > > but starting with xen_drm_front_ as the rest of exported functions? There already is a function with that name in drm_xen_front_gem.c. I'll move the callback function next to the object-function structure and rename it slightly. Best regards Thomas > > With this, > > Acked-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@xxxxxxxx> > > Thank you, > > Oleksandr > >> { >> struct xen_drm_front_drm_info *drm_info = obj->dev->dev_private; >> int idx; >> @@ -481,22 +481,12 @@ static const struct file_operations xen_drm_dev_fops = >> { >> .mmap = xen_drm_front_gem_mmap, >> }; >> >> -static const struct vm_operations_struct xen_drm_drv_vm_ops = { >> - .open = drm_gem_vm_open, >> - .close = drm_gem_vm_close, >> -}; >> - >> static struct drm_driver xen_drm_driver = { >> .driver_features = DRIVER_GEM | DRIVER_MODESET | >> DRIVER_ATOMIC, >> .release = xen_drm_drv_release, >> - .gem_vm_ops = &xen_drm_drv_vm_ops, >> - .gem_free_object_unlocked = xen_drm_drv_free_object_unlocked, >> .prime_handle_to_fd = drm_gem_prime_handle_to_fd, >> .prime_fd_to_handle = drm_gem_prime_fd_to_handle, >> .gem_prime_import_sg_table = xen_drm_front_gem_import_sg_table, >> - .gem_prime_get_sg_table = xen_drm_front_gem_get_sg_table, >> - .gem_prime_vmap = xen_drm_front_gem_prime_vmap, >> - .gem_prime_vunmap = xen_drm_front_gem_prime_vunmap, >> .gem_prime_mmap = xen_drm_front_gem_prime_mmap, >> .dumb_create = xen_drm_drv_dumb_create, >> .fops = &xen_drm_dev_fops, >> diff --git a/drivers/gpu/drm/xen/xen_drm_front.h >> b/drivers/gpu/drm/xen/xen_drm_front.h >> index f92c258350ca..93e60c1db550 100644 >> --- a/drivers/gpu/drm/xen/xen_drm_front.h >> +++ b/drivers/gpu/drm/xen/xen_drm_front.h >> @@ -160,4 +160,6 @@ int xen_drm_front_page_flip(struct xen_drm_front_info >> *front_info, >> void xen_drm_front_on_frame_done(struct xen_drm_front_info *front_info, >> int conn_idx, u64 fb_cookie); >> >> +void xen_drm_drv_free_object_unlocked(struct drm_gem_object *obj); >> + >> #endif /* __XEN_DRM_FRONT_H_ */ >> diff --git a/drivers/gpu/drm/xen/xen_drm_front_gem.c >> b/drivers/gpu/drm/xen/xen_drm_front_gem.c >> index f0b85e094111..7b315c08bcfc 100644 >> --- a/drivers/gpu/drm/xen/xen_drm_front_gem.c >> +++ b/drivers/gpu/drm/xen/xen_drm_front_gem.c >> @@ -56,6 +56,19 @@ static void gem_free_pages_array(struct xen_gem_object >> *xen_obj) >> xen_obj->pages = NULL; >> } >> >> +static const struct vm_operations_struct xen_drm_drv_vm_ops = { >> + .open = drm_gem_vm_open, >> + .close = drm_gem_vm_close, >> +}; >> + >> +static const struct drm_gem_object_funcs xen_drm_front_gem_object_funcs = { >> + .free = xen_drm_drv_free_object_unlocked, >> + .get_sg_table = xen_drm_front_gem_get_sg_table, >> + .vmap = xen_drm_front_gem_prime_vmap, >> + .vunmap = xen_drm_front_gem_prime_vunmap, >> + .vm_ops = &xen_drm_drv_vm_ops, >> +}; >> + >> static struct xen_gem_object *gem_create_obj(struct drm_device *dev, >> size_t size) >> { >> @@ -66,6 +79,8 @@ static struct xen_gem_object *gem_create_obj(struct >> drm_device *dev, >> if (!xen_obj) >> return ERR_PTR(-ENOMEM); >> >> + xen_obj->base.funcs = &xen_drm_front_gem_object_funcs; >> + >> ret = drm_gem_object_init(dev, &xen_obj->base, size); >> if (ret < 0) { >> kfree(xen_obj); -- Thomas Zimmermann Graphics Driver Developer SUSE Software Solutions Germany GmbH Maxfeldstr. 5, 90409 Nürnberg, Germany (HRB 36809, AG Nürnberg) Geschäftsführer: Felix Imendörffer Attachment:
signature.asc
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |