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: Thomas Zimmermann <tzimmermann@suse.de> Acked-by: Maxime Ripard <mripard@kernel.org> Link: https://patchwork.freedesktop.org/patch/msgid/20210108140808.25775-3-tzimmermann@suse.de
This commit is contained in:
parent
b100ed1ee8
commit
ccfe8e9c12
@ -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 @@ out:
|
|||||||
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)
|
|||||||
/* 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)
|
|||||||
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)
|
|||||||
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 {
|
|||||||
|
|
||||||
/* 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,
|
||||||
|
Loading…
Reference in New Issue
Block a user