Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4d12c233 authored by Noralf Trønnes's avatar Noralf Trønnes
Browse files

drm/exynos: Use .dumb_map_offset and .dumb_destroy defaults



This driver can use the drm_driver.dumb_destroy and
drm_driver.dumb_map_offset defaults, so no need to set them.
Use drm_gem_dumb_map_offset() in exynos_drm_gem_map_ioctl() and
remove exynos_drm_gem_dumb_map_offset().

Cc: Joonyoung Shim <jy0922.shim@samsung.com>
Cc: Seung-Woo Kim <sw0312.kim@samsung.com>
Cc: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: default avatarNoralf Trønnes <noralf@tronnes.org>
Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
Link: https://patchwork.freedesktop.org/patch/msgid/1502034068-51384-14-git-send-email-noralf@tronnes.org
parent 99da7cd6
Loading
Loading
Loading
Loading
+0 −2
Original line number Original line Diff line number Diff line
@@ -145,8 +145,6 @@ static struct drm_driver exynos_drm_driver = {
	.gem_free_object_unlocked = exynos_drm_gem_free_object,
	.gem_free_object_unlocked = 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,
	.dumb_map_offset	= exynos_drm_gem_dumb_map_offset,
	.dumb_destroy		= drm_gem_dumb_destroy,
	.prime_handle_to_fd	= drm_gem_prime_handle_to_fd,
	.prime_handle_to_fd	= drm_gem_prime_handle_to_fd,
	.prime_fd_to_handle	= drm_gem_prime_fd_to_handle,
	.prime_fd_to_handle	= drm_gem_prime_fd_to_handle,
	.gem_prime_export	= drm_gem_prime_export,
	.gem_prime_export	= drm_gem_prime_export,
+2 −28
Original line number Original line Diff line number Diff line
@@ -286,7 +286,7 @@ int exynos_drm_gem_map_ioctl(struct drm_device *dev, void *data,
{
{
	struct drm_exynos_gem_map *args = data;
	struct drm_exynos_gem_map *args = data;


	return exynos_drm_gem_dumb_map_offset(file_priv, dev, args->handle,
	return drm_gem_dumb_map_offset(file_priv, dev, args->handle,
				       &args->offset);
				       &args->offset);
}
}


@@ -422,32 +422,6 @@ int exynos_drm_gem_dumb_create(struct drm_file *file_priv,
	return 0;
	return 0;
}
}


int exynos_drm_gem_dumb_map_offset(struct drm_file *file_priv,
				   struct drm_device *dev, uint32_t handle,
				   uint64_t *offset)
{
	struct drm_gem_object *obj;
	int ret = 0;

	/*
	 * get offset of memory allocated for drm framebuffer.
	 * - this callback would be called by user application
	 *	with DRM_IOCTL_MODE_MAP_DUMB command.
	 */

	obj = drm_gem_object_lookup(file_priv, handle);
	if (!obj) {
		DRM_ERROR("failed to lookup gem object.\n");
		return -EINVAL;
	}

	*offset = drm_vma_node_offset_addr(&obj->vma_node);
	DRM_DEBUG_KMS("offset = 0x%lx\n", (unsigned long)*offset);

	drm_gem_object_unreference_unlocked(obj);
	return ret;
}

int exynos_drm_gem_fault(struct vm_fault *vmf)
int exynos_drm_gem_fault(struct vm_fault *vmf)
{
{
	struct vm_area_struct *vma = vmf->vma;
	struct vm_area_struct *vma = vmf->vma;
+0 −5
Original line number Original line Diff line number Diff line
@@ -110,11 +110,6 @@ int exynos_drm_gem_dumb_create(struct drm_file *file_priv,
			       struct drm_device *dev,
			       struct drm_device *dev,
			       struct drm_mode_create_dumb *args);
			       struct drm_mode_create_dumb *args);


/* map memory region for drm framebuffer to user space. */
int exynos_drm_gem_dumb_map_offset(struct drm_file *file_priv,
				   struct drm_device *dev, uint32_t handle,
				   uint64_t *offset);

/* page fault handler and mmap fault address(virtual) to physical memory. */
/* page fault handler and mmap fault address(virtual) to physical memory. */
int exynos_drm_gem_fault(struct vm_fault *vmf);
int exynos_drm_gem_fault(struct vm_fault *vmf);