From 70586696f69a7e096476ee6584065078a74f4d8f Mon Sep 17 00:00:00 2001 From: Jin-young Jeon Date: Thu, 6 Jul 2017 13:33:17 +0900 Subject: [PATCH] drm/tgm: tbm: add tbm_gem_get_size(). This patch is from product kernel. Change-Id: Ia5089be4a803861b66eb17d4463efe860e17914d Signed-off-by: Jin-young Jeon Signed-off-by: Inki Dae --- drivers/gpu/drm/tgm/tbm_gem.c | 19 +++++++++++++++++++ drivers/gpu/drm/tgm/tbm_gem.h | 3 +++ 2 files changed, 22 insertions(+) diff --git a/drivers/gpu/drm/tgm/tbm_gem.c b/drivers/gpu/drm/tgm/tbm_gem.c index b649d70..d72eb24 100644 --- a/drivers/gpu/drm/tgm/tbm_gem.c +++ b/drivers/gpu/drm/tgm/tbm_gem.c @@ -669,6 +669,25 @@ void tbm_gem_put_dma_addr(struct drm_device *drm_dev, gem_handle, filp); } +unsigned long tbm_gem_get_size(struct drm_device *drm_dev, + unsigned int gem_handle, + struct drm_file *filp) +{ + struct tbm_gem_object *tbm_gem_obj; + struct drm_gem_object *obj; + + obj = drm_gem_object_lookup(drm_dev, filp, gem_handle); + if (!obj) { + DRM_ERROR("failed to lookup gem object.\n"); + return 0; + } + + tbm_gem_obj = to_tbm_gem_obj(obj); + drm_gem_object_unreference_unlocked(obj); + + return tbm_gem_obj->buffer->size; +} + static int tbm_gem_fault(struct vm_area_struct *vma, struct vm_fault *vmf) { DRM_INFO("%s\n", __func__); diff --git a/drivers/gpu/drm/tgm/tbm_gem.h b/drivers/gpu/drm/tgm/tbm_gem.h index cb57961..af3206f 100644 --- a/drivers/gpu/drm/tgm/tbm_gem.h +++ b/drivers/gpu/drm/tgm/tbm_gem.h @@ -62,6 +62,9 @@ dma_addr_t *tbm_gem_get_dma_addr(struct drm_device *drm_dev, void tbm_gem_put_dma_addr(struct drm_device *drm_dev, struct device *dev, unsigned int gem_handle, struct drm_file *filp); +unsigned long tbm_gem_get_size(struct drm_device *drm_dev, + unsigned int gem_handle, + struct drm_file *filp); int tbm_gem_init(struct drm_device *drm_dev); int tbm_gem_prime_fd_to_handle(struct drm_device *dev, struct drm_file *file_priv, int prime_fd, uint32_t *handle); -- 2.7.4