Commit ccfe8e9c authored by Thomas Zimmermann's avatar Thomas Zimmermann

drm/vc4: Make several BO functions static

Rearrange the code to make BO functions static. This will also help
with streamlining the BO's mmap implementation.
Signed-off-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
Acked-by: default avatarMaxime Ripard <mripard@kernel.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20210108140808.25775-3-tzimmermann@suse.de
parent b100ed1e
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
#include "vc4_drv.h" #include "vc4_drv.h"
#include "uapi/drm/vc4_drm.h" #include "uapi/drm/vc4_drm.h"
static vm_fault_t vc4_fault(struct vm_fault *vmf); static const struct drm_gem_object_funcs vc4_gem_object_funcs;
static const char * const bo_type_names[] = { static const char * const bo_type_names[] = {
"kernel", "kernel",
...@@ -376,20 +376,6 @@ static struct vc4_bo *vc4_bo_get_from_cache(struct drm_device *dev, ...@@ -376,20 +376,6 @@ static struct vc4_bo *vc4_bo_get_from_cache(struct drm_device *dev,
return bo; return bo;
} }
static const struct vm_operations_struct vc4_vm_ops = {
.fault = vc4_fault,
.open = drm_gem_vm_open,
.close = drm_gem_vm_close,
};
static const struct drm_gem_object_funcs vc4_gem_object_funcs = {
.free = vc4_free_object,
.export = vc4_prime_export,
.get_sg_table = drm_gem_cma_get_sg_table,
.vmap = drm_gem_cma_vmap,
.vm_ops = &vc4_vm_ops,
};
/** /**
* vc4_create_object - Implementation of driver->gem_create_object. * vc4_create_object - Implementation of driver->gem_create_object.
* @dev: DRM device * @dev: DRM device
...@@ -538,7 +524,7 @@ static void vc4_bo_cache_free_old(struct drm_device *dev) ...@@ -538,7 +524,7 @@ static void vc4_bo_cache_free_old(struct drm_device *dev)
/* Called on the last userspace/kernel unreference of the BO. Returns /* Called on the last userspace/kernel unreference of the BO. Returns
* it to the BO cache if possible, otherwise frees it. * it to the BO cache if possible, otherwise frees it.
*/ */
void vc4_free_object(struct drm_gem_object *gem_bo) static void vc4_free_object(struct drm_gem_object *gem_bo)
{ {
struct drm_device *dev = gem_bo->dev; struct drm_device *dev = gem_bo->dev;
struct vc4_dev *vc4 = to_vc4_dev(dev); struct vc4_dev *vc4 = to_vc4_dev(dev);
...@@ -673,7 +659,7 @@ static void vc4_bo_cache_time_timer(struct timer_list *t) ...@@ -673,7 +659,7 @@ static void vc4_bo_cache_time_timer(struct timer_list *t)
schedule_work(&vc4->bo_cache.time_work); schedule_work(&vc4->bo_cache.time_work);
} }
struct dma_buf * vc4_prime_export(struct drm_gem_object *obj, int flags) static struct dma_buf *vc4_prime_export(struct drm_gem_object *obj, int flags)
{ {
struct vc4_bo *bo = to_vc4_bo(obj); struct vc4_bo *bo = to_vc4_bo(obj);
struct dma_buf *dmabuf; struct dma_buf *dmabuf;
...@@ -785,6 +771,20 @@ int vc4_prime_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma) ...@@ -785,6 +771,20 @@ int vc4_prime_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma)
return drm_gem_prime_mmap(obj, vma); return drm_gem_prime_mmap(obj, vma);
} }
static const struct vm_operations_struct vc4_vm_ops = {
.fault = vc4_fault,
.open = drm_gem_vm_open,
.close = drm_gem_vm_close,
};
static const struct drm_gem_object_funcs vc4_gem_object_funcs = {
.free = vc4_free_object,
.export = vc4_prime_export,
.get_sg_table = drm_gem_cma_get_sg_table,
.vmap = drm_gem_cma_vmap,
.vm_ops = &vc4_vm_ops,
};
struct drm_gem_object * struct drm_gem_object *
vc4_prime_import_sg_table(struct drm_device *dev, vc4_prime_import_sg_table(struct drm_device *dev,
struct dma_buf_attachment *attach, struct dma_buf_attachment *attach,
......
...@@ -782,13 +782,11 @@ struct vc4_validated_shader_info { ...@@ -782,13 +782,11 @@ struct vc4_validated_shader_info {
/* vc4_bo.c */ /* vc4_bo.c */
struct drm_gem_object *vc4_create_object(struct drm_device *dev, size_t size); struct drm_gem_object *vc4_create_object(struct drm_device *dev, size_t size);
void vc4_free_object(struct drm_gem_object *gem_obj);
struct vc4_bo *vc4_bo_create(struct drm_device *dev, size_t size, struct vc4_bo *vc4_bo_create(struct drm_device *dev, size_t size,
bool from_cache, enum vc4_kernel_bo_type type); bool from_cache, enum vc4_kernel_bo_type type);
int vc4_dumb_create(struct drm_file *file_priv, int vc4_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);
struct dma_buf *vc4_prime_export(struct drm_gem_object *obj, int flags);
int vc4_create_bo_ioctl(struct drm_device *dev, void *data, int vc4_create_bo_ioctl(struct drm_device *dev, void *data,
struct drm_file *file_priv); struct drm_file *file_priv);
int vc4_create_shader_bo_ioctl(struct drm_device *dev, void *data, int vc4_create_shader_bo_ioctl(struct drm_device *dev, void *data,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment