#include <linux/device.h>
#include <media/v4l2-subdev.h>
#include "vsp1.h"
#include "vsp1_dl.h"
#include "vsp1_pipe.h"
#include "vsp1_rwpf.h"
#include "vsp1_video.h"
#define WPF_GEN2_MAX_WIDTH …
#define WPF_GEN2_MAX_HEIGHT …
#define WPF_GEN3_MAX_WIDTH …
#define WPF_GEN3_MAX_HEIGHT …
static inline void vsp1_wpf_write(struct vsp1_rwpf *wpf,
struct vsp1_dl_body *dlb, u32 reg, u32 data)
{ … }
enum wpf_flip_ctrl { … };
static int vsp1_wpf_set_rotation(struct vsp1_rwpf *wpf, unsigned int rotation)
{ … }
static int vsp1_wpf_s_ctrl(struct v4l2_ctrl *ctrl)
{ … }
static const struct v4l2_ctrl_ops vsp1_wpf_ctrl_ops = …;
static int wpf_init_controls(struct vsp1_rwpf *wpf)
{ … }
void vsp1_wpf_stop(struct vsp1_rwpf *wpf)
{ … }
static void vsp1_wpf_destroy(struct vsp1_entity *entity)
{ … }
static int wpf_configure_writeback_chain(struct vsp1_rwpf *wpf,
struct vsp1_dl_list *dl)
{ … }
static void wpf_configure_stream(struct vsp1_entity *entity,
struct v4l2_subdev_state *state,
struct vsp1_pipeline *pipe,
struct vsp1_dl_list *dl,
struct vsp1_dl_body *dlb)
{ … }
static void wpf_configure_frame(struct vsp1_entity *entity,
struct vsp1_pipeline *pipe,
struct vsp1_dl_list *dl,
struct vsp1_dl_body *dlb)
{ … }
static void wpf_configure_partition(struct vsp1_entity *entity,
struct vsp1_pipeline *pipe,
const struct vsp1_partition *partition,
struct vsp1_dl_list *dl,
struct vsp1_dl_body *dlb)
{ … }
static unsigned int wpf_max_width(struct vsp1_entity *entity,
struct v4l2_subdev_state *state,
struct vsp1_pipeline *pipe)
{ … }
static void wpf_partition(struct vsp1_entity *entity,
struct v4l2_subdev_state *state,
struct vsp1_pipeline *pipe,
struct vsp1_partition *partition,
unsigned int partition_idx,
struct v4l2_rect *window)
{ … }
static const struct vsp1_entity_operations wpf_entity_ops = …;
struct vsp1_rwpf *vsp1_wpf_create(struct vsp1_device *vsp1, unsigned int index)
{ … }