From 6c8f71c6abf7df5a9da9b6e6724e3903a2215c2b Mon Sep 17 00:00:00 2001 From: Seung-Woo Kim Date: Tue, 18 Jul 2023 16:23:30 +0900 Subject: [PATCH] amlogic: drm: meson_gem: Add prime_vmap callback functionality for dmabuf To support dmabuf usage of drm gem from other sub-system like video4linux, implement prime_vmap and prime_vunmap callback functions properly. Change-Id: I7be33a94da753dffc497c023fc9b592e4980d709 Signed-off-by: Seung-Woo Kim --- drivers/amlogic/drm/meson_gem.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/drivers/amlogic/drm/meson_gem.c b/drivers/amlogic/drm/meson_gem.c index 314045d8d747..522ee432b094 100644 --- a/drivers/amlogic/drm/meson_gem.c +++ b/drivers/amlogic/drm/meson_gem.c @@ -655,8 +655,16 @@ struct drm_gem_object *am_meson_gem_prime_import_sg_table( void *am_meson_gem_prime_vmap(struct drm_gem_object *obj) { + struct am_meson_gem_object *meson_gem_obj; + DRM_DEBUG("am_meson_gem_prime_vmap %p.\n", obj); + meson_gem_obj = to_am_meson_gem_obj(obj); + + if (meson_gem_obj->handle) + return ion_map_kernel(meson_gem_obj->handle->client, + meson_gem_obj->handle); + return NULL; } @@ -664,7 +672,15 @@ void am_meson_gem_prime_vunmap( struct drm_gem_object *obj, void *vaddr) { + struct am_meson_gem_object *meson_gem_obj; + DRM_DEBUG("am_meson_gem_prime_vunmap nothing to do.\n"); + + meson_gem_obj = to_am_meson_gem_obj(obj); + + if (meson_gem_obj->handle) + ion_unmap_kernel(meson_gem_obj->handle->client, + meson_gem_obj->handle); } int am_meson_gem_prime_mmap( -- 2.34.1