#include <linux/module.h>
#include <media/v4l2-ctrls.h>
#include <media/v4l2-device.h>
#include <media/v4l2-ioctl.h>
#include "adv748x.h"
static const unsigned int adv748x_csi2_txa_fmts[] = …;
static const unsigned int adv748x_csi2_txb_fmts[] = …;
int adv748x_csi2_set_virtual_channel(struct adv748x_csi2 *tx, unsigned int vc)
{ … }
static int adv748x_csi2_register_link(struct adv748x_csi2 *tx,
struct v4l2_device *v4l2_dev,
struct v4l2_subdev *src,
unsigned int src_pad,
bool enable)
{ … }
static int adv748x_csi2_init_state(struct v4l2_subdev *sd,
struct v4l2_subdev_state *state)
{ … }
static int adv748x_csi2_registered(struct v4l2_subdev *sd)
{ … }
static const struct v4l2_subdev_internal_ops adv748x_csi2_internal_ops = …;
static int adv748x_csi2_s_stream(struct v4l2_subdev *sd, int enable)
{ … }
static const struct v4l2_subdev_video_ops adv748x_csi2_video_ops = …;
static int adv748x_csi2_enum_mbus_code(struct v4l2_subdev *sd,
struct v4l2_subdev_state *sd_state,
struct v4l2_subdev_mbus_code_enum *code)
{ … }
static bool adv748x_csi2_is_fmt_supported(struct adv748x_csi2 *tx, u32 code)
{ … }
static int adv748x_csi2_set_format(struct v4l2_subdev *sd,
struct v4l2_subdev_state *sd_state,
struct v4l2_subdev_format *sdformat)
{ … }
static int adv748x_csi2_get_mbus_config(struct v4l2_subdev *sd, unsigned int pad,
struct v4l2_mbus_config *config)
{ … }
static const struct v4l2_subdev_pad_ops adv748x_csi2_pad_ops = …;
static const struct v4l2_subdev_ops adv748x_csi2_ops = …;
int adv748x_csi2_set_pixelrate(struct v4l2_subdev *sd, s64 rate)
{ … }
static int adv748x_csi2_s_ctrl(struct v4l2_ctrl *ctrl)
{ … }
static const struct v4l2_ctrl_ops adv748x_csi2_ctrl_ops = …;
static int adv748x_csi2_init_controls(struct adv748x_csi2 *tx)
{ … }
int adv748x_csi2_init(struct adv748x_state *state, struct adv748x_csi2 *tx)
{ … }
void adv748x_csi2_cleanup(struct adv748x_csi2 *tx)
{ … }