#include <linux/dma-mapping.h>
#include <linux/err.h>
#include <linux/host1x.h>
#include <linux/iommu.h>
#include <linux/kref.h>
#include <linux/module.h>
#include <linux/scatterlist.h>
#include <linux/slab.h>
#include <linux/vmalloc.h>
#include <trace/events/host1x.h>
#include "channel.h"
#include "dev.h"
#include "job.h"
#include "syncpt.h"
#define HOST1X_WAIT_SYNCPT_OFFSET …
struct host1x_job *host1x_job_alloc(struct host1x_channel *ch,
u32 num_cmdbufs, u32 num_relocs,
bool skip_firewall)
{ … }
EXPORT_SYMBOL(…);
struct host1x_job *host1x_job_get(struct host1x_job *job)
{ … }
EXPORT_SYMBOL(…);
static void job_free(struct kref *ref)
{ … }
void host1x_job_put(struct host1x_job *job)
{ … }
EXPORT_SYMBOL(…);
void host1x_job_add_gather(struct host1x_job *job, struct host1x_bo *bo,
unsigned int words, unsigned int offset)
{ … }
EXPORT_SYMBOL(…);
void host1x_job_add_wait(struct host1x_job *job, u32 id, u32 thresh,
bool relative, u32 next_class)
{ … }
EXPORT_SYMBOL(…);
static unsigned int pin_job(struct host1x *host, struct host1x_job *job)
{ … }
static int do_relocs(struct host1x_job *job, struct host1x_job_gather *g)
{ … }
static bool check_reloc(struct host1x_reloc *reloc, struct host1x_bo *cmdbuf,
unsigned int offset)
{ … }
struct host1x_firewall { … };
static int check_register(struct host1x_firewall *fw, unsigned long offset)
{ … }
static int check_class(struct host1x_firewall *fw, u32 class)
{ … }
static int check_mask(struct host1x_firewall *fw)
{ … }
static int check_incr(struct host1x_firewall *fw)
{ … }
static int check_nonincr(struct host1x_firewall *fw)
{ … }
static int validate(struct host1x_firewall *fw, struct host1x_job_gather *g)
{ … }
static inline int copy_gathers(struct device *host, struct host1x_job *job,
struct device *dev)
{ … }
int host1x_job_pin(struct host1x_job *job, struct device *dev)
{ … }
EXPORT_SYMBOL(…);
void host1x_job_unpin(struct host1x_job *job)
{ … }
EXPORT_SYMBOL(…);
void host1x_job_dump(struct device *dev, struct host1x_job *job)
{ … }