#include <linux/vmalloc.h>
#include <linux/v4l2-mediabus.h>
#include <media/v4l2-rect.h>
#include <media/v4l2-subdev.h>
#include "dcmipp-common.h"
#define DCMIPP_P0FCTCR …
#define DCMIPP_P0FCTCR_FRATE_MASK …
#define DCMIPP_P0SCSTR …
#define DCMIPP_P0SCSTR_HSTART_SHIFT …
#define DCMIPP_P0SCSTR_VSTART_SHIFT …
#define DCMIPP_P0SCSZR …
#define DCMIPP_P0SCSZR_ENABLE …
#define DCMIPP_P0SCSZR_HSIZE_SHIFT …
#define DCMIPP_P0SCSZR_VSIZE_SHIFT …
#define DCMIPP_P0PPCR …
#define DCMIPP_P0PPCR_BSM_1_2 …
#define DCMIPP_P0PPCR_BSM_1_4 …
#define DCMIPP_P0PPCR_BSM_2_4 …
#define DCMIPP_P0PPCR_BSM_MASK …
#define DCMIPP_P0PPCR_BSM_SHIFT …
#define DCMIPP_P0PPCR_LSM …
#define DCMIPP_P0PPCR_OELS …
#define IS_SINK(pad) …
#define IS_SRC(pad) …
struct dcmipp_byteproc_pix_map { … };
#define PIXMAP_MBUS_BPP(mbus, byteperpixel) …
static const struct dcmipp_byteproc_pix_map dcmipp_byteproc_pix_map_list[] = …;
static const struct dcmipp_byteproc_pix_map *
dcmipp_byteproc_pix_map_by_code(u32 code)
{ … }
struct dcmipp_byteproc_device { … };
static const struct v4l2_mbus_framefmt fmt_default = …;
static const struct v4l2_rect crop_min = …;
static void dcmipp_byteproc_adjust_crop(struct v4l2_rect *r,
struct v4l2_rect *compose)
{ … }
static void dcmipp_byteproc_adjust_compose(struct v4l2_rect *r,
const struct v4l2_mbus_framefmt *fmt)
{ … }
static void dcmipp_byteproc_adjust_fmt(struct v4l2_mbus_framefmt *fmt)
{ … }
static int dcmipp_byteproc_init_state(struct v4l2_subdev *sd,
struct v4l2_subdev_state *sd_state)
{ … }
static int
dcmipp_byteproc_enum_mbus_code(struct v4l2_subdev *sd,
struct v4l2_subdev_state *sd_state,
struct v4l2_subdev_mbus_code_enum *code)
{ … }
static int
dcmipp_byteproc_enum_frame_size(struct v4l2_subdev *sd,
struct v4l2_subdev_state *sd_state,
struct v4l2_subdev_frame_size_enum *fse)
{ … }
static int dcmipp_byteproc_set_fmt(struct v4l2_subdev *sd,
struct v4l2_subdev_state *sd_state,
struct v4l2_subdev_format *fmt)
{ … }
static int dcmipp_byteproc_get_selection(struct v4l2_subdev *sd,
struct v4l2_subdev_state *sd_state,
struct v4l2_subdev_selection *s)
{ … }
static int dcmipp_byteproc_set_selection(struct v4l2_subdev *sd,
struct v4l2_subdev_state *sd_state,
struct v4l2_subdev_selection *s)
{ … }
static const struct v4l2_subdev_pad_ops dcmipp_byteproc_pad_ops = …;
static int dcmipp_byteproc_configure_scale_crop
(struct dcmipp_byteproc_device *byteproc)
{ … }
static int dcmipp_byteproc_s_stream(struct v4l2_subdev *sd, int enable)
{ … }
static const struct v4l2_subdev_video_ops dcmipp_byteproc_video_ops = …;
static const struct v4l2_subdev_ops dcmipp_byteproc_ops = …;
static void dcmipp_byteproc_release(struct v4l2_subdev *sd)
{ … }
static const struct v4l2_subdev_internal_ops dcmipp_byteproc_int_ops = …;
void dcmipp_byteproc_ent_release(struct dcmipp_ent_device *ved)
{ … }
struct dcmipp_ent_device *
dcmipp_byteproc_ent_init(struct device *dev, const char *entity_name,
struct v4l2_device *v4l2_dev, void __iomem *regs)
{ … }