#ifndef __RGA_H__
#define __RGA_H__
#include <linux/platform_device.h>
#include <media/videobuf2-v4l2.h>
#include <media/v4l2-ctrls.h>
#include <media/v4l2-device.h>
#define RGA_NAME …
struct rga_fmt { … };
struct rga_frame { … };
struct rga_dma_desc { … };
struct rockchip_rga_version { … };
struct rga_ctx { … };
struct rockchip_rga { … };
struct rga_addr_offset { … };
struct rga_vb_buffer { … };
static inline struct rga_vb_buffer *vb_to_rga(struct vb2_v4l2_buffer *vb)
{ … }
struct rga_frame *rga_get_frame(struct rga_ctx *ctx, enum v4l2_buf_type type);
extern const struct vb2_ops rga_qops;
static inline void rga_write(struct rockchip_rga *rga, u32 reg, u32 value)
{
writel(value, rga->regs + reg);
};
static inline u32 rga_read(struct rockchip_rga *rga, u32 reg)
{
return readl(rga->regs + reg);
};
static inline void rga_mod(struct rockchip_rga *rga, u32 reg, u32 val, u32 mask)
{
u32 temp = rga_read(rga, reg) & ~(mask);
temp |= val & mask;
rga_write(rga, reg, temp);
};
void rga_hw_start(struct rockchip_rga *rga,
struct rga_vb_buffer *src, struct rga_vb_buffer *dst);
#endif