#include <linux/dma-buf.h>
#include <linux/pfn_t.h>
#include <linux/vmalloc.h>
#include "v3d_drv.h"
#include "uapi/drm/v3d_drm.h"
void v3d_free_object(struct drm_gem_object *obj)
{ … }
static const struct drm_gem_object_funcs v3d_gem_funcs = …;
struct drm_gem_object *v3d_create_object(struct drm_device *dev, size_t size)
{ … }
static int
v3d_bo_create_finish(struct drm_gem_object *obj)
{ … }
struct v3d_bo *v3d_bo_create(struct drm_device *dev, struct drm_file *file_priv,
size_t unaligned_size)
{ … }
struct drm_gem_object *
v3d_prime_import_sg_table(struct drm_device *dev,
struct dma_buf_attachment *attach,
struct sg_table *sgt)
{ … }
void v3d_get_bo_vaddr(struct v3d_bo *bo)
{ … }
void v3d_put_bo_vaddr(struct v3d_bo *bo)
{ … }
int v3d_create_bo_ioctl(struct drm_device *dev, void *data,
struct drm_file *file_priv)
{ … }
int v3d_mmap_bo_ioctl(struct drm_device *dev, void *data,
struct drm_file *file_priv)
{ … }
int v3d_get_bo_offset_ioctl(struct drm_device *dev, void *data,
struct drm_file *file_priv)
{ … }
int
v3d_wait_bo_ioctl(struct drm_device *dev, void *data,
struct drm_file *file_priv)
{ … }