[PATCH v2 18/21] drm/vkms: Introduce GEM object functions
Melissa Wen
melissa.srw at gmail.com
Thu Sep 17 11:31:20 UTC 2020
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 at suse.de>
Thanks! Looks fine.
Reviewed-by: Melissa Wen <melissa.srw at 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 at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
More information about the etnaviv
mailing list