Re: [PATCH v2 18/21] drm/vkms: Introduce GEM object functions

Melissa Wen
2020-09-17T11:33:08Z

Hi Thomas,

On 09/15, 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 vkms.
>
> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>

Thanks! Looks fine.

Reviewed-by: Melissa Wen <melissa.srw@gmail.com>

> ---
> drivers/gpu/drm/vkms/vkms_drv.c | 8 --------
> drivers/gpu/drm/vkms/vkms_gem.c | 13 +++++++++++++
> 2 files changed, 13 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/gpu/drm/vkms/vkms_drv.c b/drivers/gpu/drm/vkms/vkms_drv.c
> index cb0b6230c22c..726801ab44d4 100644
> --- a/drivers/gpu/drm/vkms/vkms_drv.c
> +++ b/drivers/gpu/drm/vkms/vkms_drv.c
> @@ -51,12 +51,6 @@ static const struct file_operations vkms_driver_fops = {
> .release = drm_release,
> };
>
> -static const struct vm_operations_struct vkms_gem_vm_ops = {
> - .fault = vkms_gem_fault,
> - .open = drm_gem_vm_open,
> - .close = drm_gem_vm_close,
> -};
> -
> static void vkms_release(struct drm_device *dev)
> {
> struct vkms_device *vkms = container_of(dev, struct vkms_device, drm);
> @@ -98,8 +92,6 @@ static struct drm_driver vkms_driver = {
> .release = vkms_release,
> .fops = &vkms_driver_fops,
> .dumb_create = vkms_dumb_create,
> - .gem_vm_ops = &vkms_gem_vm_ops,
> - .gem_free_object_unlocked = vkms_gem_free_object,
> .prime_fd_to_handle = drm_gem_prime_fd_to_handle,
> .gem_prime_import_sg_table = vkms_prime_import_sg_table,
>
> diff --git a/drivers/gpu/drm/vkms/vkms_gem.c b/drivers/gpu/drm/vkms/vkms_gem.c
> index a017fc59905e..19a0e260a4df 100644
> --- a/drivers/gpu/drm/vkms/vkms_gem.c
> +++ b/drivers/gpu/drm/vkms/vkms_gem.c
> @@ -7,6 +7,17 @@
>
> #include "vkms_drv.h"
>
> +static const struct vm_operations_struct vkms_gem_vm_ops = {
> + .fault = vkms_gem_fault,
> + .open = drm_gem_vm_open,
> + .close = drm_gem_vm_close,
> +};
> +
> +static const struct drm_gem_object_funcs vkms_gem_object_funcs = {
> + .free = vkms_gem_free_object,
> + .vm_ops = &vkms_gem_vm_ops,
> +};
> +
> static struct vkms_gem_object *__vkms_gem_create(struct drm_device *dev,
> u64 size)
> {
> @@ -17,6 +28,8 @@ static struct vkms_gem_object *__vkms_gem_create(struct drm_device *dev,
> if (!obj)
> return ERR_PTR(-ENOMEM);
>
> + obj->gem.funcs = &vkms_gem_object_funcs;
> +
> size = roundup(size, PAGE_SIZE);
> ret = drm_gem_object_init(dev, &obj->gem, size);
> if (ret) {
> --
> 2.28.0
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel