#ifndef OMAP_DMM_TILER_H
#define OMAP_DMM_TILER_H
#include "omap_drv.h"
#include "tcm.h"
enum tiler_fmt { … };
struct pat_area { … };
struct tiler_block { … };
#define SLOT_WIDTH_BITS …
#define SLOT_HEIGHT_BITS …
#define CONT_WIDTH_BITS …
#define CONT_HEIGHT_BITS …
#define TILER_PAGE …
#define TILER_WIDTH …
#define TILER_HEIGHT …
#define MASK_XY_FLIP …
#define MASK_Y_INVERT …
#define MASK_X_INVERT …
#define SHIFT_ACC_MODE …
#define MASK_ACC_MODE …
#define MASK(bits) …
#define TILVIEW_8BIT …
#define TILVIEW_16BIT …
#define TILVIEW_32BIT …
#define TILVIEW_PAGE …
#define TILVIEW_END …
#define TIL_ADDR(x, orient, a) …
#ifdef CONFIG_DEBUG_FS
int tiler_map_show(struct seq_file *s, void *arg);
#endif
int tiler_pin(struct tiler_block *block, struct page **pages,
u32 npages, u32 roll, bool wait);
int tiler_unpin(struct tiler_block *block);
struct tiler_block *tiler_reserve_2d(enum tiler_fmt fmt, u16 w, u16 h,
u16 align);
struct tiler_block *tiler_reserve_1d(size_t size);
int tiler_release(struct tiler_block *block);
dma_addr_t tiler_ssptr(struct tiler_block *block);
dma_addr_t tiler_tsptr(struct tiler_block *block, u32 orient,
u32 x, u32 y);
u32 tiler_stride(enum tiler_fmt fmt, u32 orient);
size_t tiler_size(enum tiler_fmt fmt, u16 w, u16 h);
size_t tiler_vsize(enum tiler_fmt fmt, u16 w, u16 h);
void tiler_align(enum tiler_fmt fmt, u16 *w, u16 *h);
u32 tiler_get_cpu_cache_flags(void);
bool dmm_is_available(void);
extern struct platform_driver omap_dmm_driver;
static inline enum tiler_fmt gem2fmt(u32 flags)
{ … }
static inline bool validfmt(enum tiler_fmt fmt)
{ … }
#endif