#include <media/v4l2-event.h>
#include <media/v4l2-mediabus.h>
#include "atomisp_cmd.h"
#include "atomisp_internal.h"
#include "atomisp-regs.h"
static struct
v4l2_mbus_framefmt *__csi2_get_format(struct atomisp_mipi_csi2_device *csi2,
struct v4l2_subdev_state *sd_state,
enum v4l2_subdev_format_whence which,
unsigned int pad)
{ … }
static int csi2_enum_mbus_code(struct v4l2_subdev *sd,
struct v4l2_subdev_state *sd_state,
struct v4l2_subdev_mbus_code_enum *code)
{ … }
static int csi2_get_format(struct v4l2_subdev *sd,
struct v4l2_subdev_state *sd_state,
struct v4l2_subdev_format *fmt)
{ … }
int atomisp_csi2_set_ffmt(struct v4l2_subdev *sd,
struct v4l2_subdev_state *sd_state,
unsigned int which, uint16_t pad,
struct v4l2_mbus_framefmt *ffmt)
{ … }
static int csi2_set_format(struct v4l2_subdev *sd,
struct v4l2_subdev_state *sd_state,
struct v4l2_subdev_format *fmt)
{ … }
static const struct v4l2_subdev_pad_ops csi2_pad_ops = …;
static const struct v4l2_subdev_ops csi2_ops = …;
static const struct media_entity_operations csi2_media_ops = …;
static int mipi_csi2_init_entities(struct atomisp_mipi_csi2_device *csi2,
int port)
{ … }
void
atomisp_mipi_csi2_unregister_entities(struct atomisp_mipi_csi2_device *csi2)
{ … }
int atomisp_mipi_csi2_register_entities(struct atomisp_mipi_csi2_device *csi2,
struct v4l2_device *vdev)
{ … }
static const int LIMIT_SHIFT = …;
static int
atomisp_csi2_configure_calc(const short int coeffs[2], int mipi_freq, int def)
{ … }
static void atomisp_csi2_configure_isp2401(struct atomisp_sub_device *asd)
{ … }
void atomisp_csi2_configure(struct atomisp_sub_device *asd)
{ … }
void atomisp_mipi_csi2_cleanup(struct atomisp_device *isp)
{ … }
int atomisp_mipi_csi2_init(struct atomisp_device *isp)
{ … }