#ifndef HOST1X_DEV_H
#define HOST1X_DEV_H
#include <linux/device.h>
#include <linux/iommu.h>
#include <linux/iova.h>
#include <linux/platform_device.h>
#include <linux/reset.h>
#include "cdma.h"
#include "channel.h"
#include "context.h"
#include "intr.h"
#include "job.h"
#include "syncpt.h"
struct host1x_syncpt;
struct host1x_syncpt_base;
struct host1x_channel;
struct host1x_cdma;
struct host1x_job;
struct push_buffer;
struct output;
struct dentry;
struct host1x_channel_ops { … };
struct host1x_cdma_ops { … };
struct host1x_pushbuffer_ops { … };
struct host1x_debug_ops { … };
struct host1x_syncpt_ops { … };
struct host1x_intr_ops { … };
struct host1x_sid_entry { … };
struct host1x_table_desc { … };
struct host1x_info { … };
struct host1x { … };
void host1x_common_writel(struct host1x *host1x, u32 v, u32 r);
void host1x_hypervisor_writel(struct host1x *host1x, u32 r, u32 v);
u32 host1x_hypervisor_readl(struct host1x *host1x, u32 r);
void host1x_sync_writel(struct host1x *host1x, u32 r, u32 v);
u32 host1x_sync_readl(struct host1x *host1x, u32 r);
void host1x_ch_writel(struct host1x_channel *ch, u32 r, u32 v);
u32 host1x_ch_readl(struct host1x_channel *ch, u32 r);
static inline void host1x_hw_syncpt_restore(struct host1x *host,
struct host1x_syncpt *sp)
{ … }
static inline void host1x_hw_syncpt_restore_wait_base(struct host1x *host,
struct host1x_syncpt *sp)
{ … }
static inline void host1x_hw_syncpt_load_wait_base(struct host1x *host,
struct host1x_syncpt *sp)
{ … }
static inline u32 host1x_hw_syncpt_load(struct host1x *host,
struct host1x_syncpt *sp)
{ … }
static inline int host1x_hw_syncpt_cpu_incr(struct host1x *host,
struct host1x_syncpt *sp)
{ … }
static inline void host1x_hw_syncpt_assign_to_channel(
struct host1x *host, struct host1x_syncpt *sp,
struct host1x_channel *ch)
{ … }
static inline void host1x_hw_syncpt_enable_protection(struct host1x *host)
{ … }
static inline int host1x_hw_intr_init_host_sync(struct host1x *host, u32 cpm)
{ … }
static inline void host1x_hw_intr_set_syncpt_threshold(struct host1x *host,
unsigned int id,
u32 thresh)
{ … }
static inline void host1x_hw_intr_enable_syncpt_intr(struct host1x *host,
unsigned int id)
{ … }
static inline void host1x_hw_intr_disable_syncpt_intr(struct host1x *host,
unsigned int id)
{ … }
static inline void host1x_hw_intr_disable_all_syncpt_intrs(struct host1x *host)
{ … }
static inline int host1x_hw_intr_free_syncpt_irq(struct host1x *host)
{ … }
static inline int host1x_hw_channel_init(struct host1x *host,
struct host1x_channel *channel,
unsigned int id)
{ … }
static inline int host1x_hw_channel_submit(struct host1x *host,
struct host1x_job *job)
{ … }
static inline void host1x_hw_cdma_start(struct host1x *host,
struct host1x_cdma *cdma)
{ … }
static inline void host1x_hw_cdma_stop(struct host1x *host,
struct host1x_cdma *cdma)
{ … }
static inline void host1x_hw_cdma_flush(struct host1x *host,
struct host1x_cdma *cdma)
{ … }
static inline int host1x_hw_cdma_timeout_init(struct host1x *host,
struct host1x_cdma *cdma)
{ … }
static inline void host1x_hw_cdma_timeout_destroy(struct host1x *host,
struct host1x_cdma *cdma)
{ … }
static inline void host1x_hw_cdma_freeze(struct host1x *host,
struct host1x_cdma *cdma)
{ … }
static inline void host1x_hw_cdma_resume(struct host1x *host,
struct host1x_cdma *cdma, u32 getptr)
{ … }
static inline void host1x_hw_cdma_timeout_cpu_incr(struct host1x *host,
struct host1x_cdma *cdma,
u32 getptr,
u32 syncpt_incrs,
u32 syncval, u32 nr_slots)
{ … }
static inline void host1x_hw_pushbuffer_init(struct host1x *host,
struct push_buffer *pb)
{ … }
static inline void host1x_hw_debug_init(struct host1x *host, struct dentry *de)
{ … }
static inline void host1x_hw_show_channel_cdma(struct host1x *host,
struct host1x_channel *channel,
struct output *o)
{ … }
static inline void host1x_hw_show_channel_fifo(struct host1x *host,
struct host1x_channel *channel,
struct output *o)
{ … }
static inline void host1x_hw_show_mlocks(struct host1x *host, struct output *o)
{ … }
extern struct platform_driver tegra_mipi_driver;
#endif