drm/tgm: tbm: add tbm_gem_get_size(). 32/137832/2
authorJin-young Jeon <jy0.jeon@samsung.com>
Thu, 6 Jul 2017 04:33:17 +0000 (13:33 +0900)
committerSeung-Woo Kim <sw0312.kim@samsung.com>
Mon, 10 Jul 2017 04:26:30 +0000 (04:26 +0000)
This patch is from product kernel.

Change-Id: Ia5089be4a803861b66eb17d4463efe860e17914d
Signed-off-by: Jin-young Jeon <jy0.jeon@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
drivers/gpu/drm/tgm/tbm_gem.c
drivers/gpu/drm/tgm/tbm_gem.h

index b649d70..d72eb24 100644 (file)
@@ -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__);
index cb57961..af3206f 100644 (file)
@@ -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);