#include <linux/math.h>
#include <linux/string.h>
#include <media/v4l2-common.h>
#include <media/v4l2-event.h>
#include <media/v4l2-ioctl.h>
#include <media/videobuf2-core.h>
#include <media/videobuf2-vmalloc.h>
#include "rkisp1-common.h"
#define RKISP1_PARAMS_DEV_NAME …
#define RKISP1_ISP_PARAMS_REQ_BUFS_MIN …
#define RKISP1_ISP_PARAMS_REQ_BUFS_MAX …
#define RKISP1_ISP_DPCC_METHODS_SET(n) …
#define RKISP1_ISP_DPCC_LINE_THRESH(n) …
#define RKISP1_ISP_DPCC_LINE_MAD_FAC(n) …
#define RKISP1_ISP_DPCC_PG_FAC(n) …
#define RKISP1_ISP_DPCC_RND_THRESH(n) …
#define RKISP1_ISP_DPCC_RG_FAC(n) …
#define RKISP1_ISP_CC_COEFF(n) …
#define RKISP1_EXT_PARAMS_BLOCK_GROUP_OTHERS …
#define RKISP1_EXT_PARAMS_BLOCK_GROUP_LSC …
rkisp1_ext_params_config;
enum rkisp1_params_formats { … };
static const struct v4l2_meta_format rkisp1_params_formats[] = …;
static const struct v4l2_meta_format *
rkisp1_params_get_format_info(u32 dataformat)
{ … }
static inline void
rkisp1_param_set_bits(struct rkisp1_params *params, u32 reg, u32 bit_mask)
{ … }
static inline void
rkisp1_param_clear_bits(struct rkisp1_params *params, u32 reg, u32 bit_mask)
{ … }
static void rkisp1_dpcc_config(struct rkisp1_params *params,
const struct rkisp1_cif_isp_dpcc_config *arg)
{ … }
static void rkisp1_bls_config(struct rkisp1_params *params,
const struct rkisp1_cif_isp_bls_config *arg)
{ … }
static void
rkisp1_lsc_matrix_config_v10(struct rkisp1_params *params,
const struct rkisp1_cif_isp_lsc_config *pconfig)
{ … }
static void
rkisp1_lsc_matrix_config_v12(struct rkisp1_params *params,
const struct rkisp1_cif_isp_lsc_config *pconfig)
{ … }
static void rkisp1_lsc_config(struct rkisp1_params *params,
const struct rkisp1_cif_isp_lsc_config *arg)
{ … }
static void rkisp1_flt_config(struct rkisp1_params *params,
const struct rkisp1_cif_isp_flt_config *arg)
{ … }
static int rkisp1_bdm_config(struct rkisp1_params *params,
const struct rkisp1_cif_isp_bdm_config *arg)
{ … }
static void rkisp1_sdg_config(struct rkisp1_params *params,
const struct rkisp1_cif_isp_sdg_config *arg)
{ … }
static void rkisp1_goc_config_v10(struct rkisp1_params *params,
const struct rkisp1_cif_isp_goc_config *arg)
{ … }
static void rkisp1_goc_config_v12(struct rkisp1_params *params,
const struct rkisp1_cif_isp_goc_config *arg)
{ … }
static void rkisp1_ctk_config(struct rkisp1_params *params,
const struct rkisp1_cif_isp_ctk_config *arg)
{ … }
static void rkisp1_ctk_enable(struct rkisp1_params *params, bool en)
{ … }
static void rkisp1_awb_meas_config_v10(struct rkisp1_params *params,
const struct rkisp1_cif_isp_awb_meas_config *arg)
{ … }
static void rkisp1_awb_meas_config_v12(struct rkisp1_params *params,
const struct rkisp1_cif_isp_awb_meas_config *arg)
{ … }
static void
rkisp1_awb_meas_enable_v10(struct rkisp1_params *params,
const struct rkisp1_cif_isp_awb_meas_config *arg,
bool en)
{ … }
static void
rkisp1_awb_meas_enable_v12(struct rkisp1_params *params,
const struct rkisp1_cif_isp_awb_meas_config *arg,
bool en)
{ … }
static void
rkisp1_awb_gain_config_v10(struct rkisp1_params *params,
const struct rkisp1_cif_isp_awb_gain_config *arg)
{ … }
static void
rkisp1_awb_gain_config_v12(struct rkisp1_params *params,
const struct rkisp1_cif_isp_awb_gain_config *arg)
{ … }
static void rkisp1_aec_config_v10(struct rkisp1_params *params,
const struct rkisp1_cif_isp_aec_config *arg)
{ … }
static void rkisp1_aec_config_v12(struct rkisp1_params *params,
const struct rkisp1_cif_isp_aec_config *arg)
{ … }
static void rkisp1_cproc_config(struct rkisp1_params *params,
const struct rkisp1_cif_isp_cproc_config *arg)
{ … }
static void rkisp1_hst_config_v10(struct rkisp1_params *params,
const struct rkisp1_cif_isp_hst_config *arg)
{ … }
static void rkisp1_hst_config_v12(struct rkisp1_params *params,
const struct rkisp1_cif_isp_hst_config *arg)
{ … }
static void
rkisp1_hst_enable_v10(struct rkisp1_params *params,
const struct rkisp1_cif_isp_hst_config *arg, bool en)
{ … }
static void
rkisp1_hst_enable_v12(struct rkisp1_params *params,
const struct rkisp1_cif_isp_hst_config *arg, bool en)
{ … }
static void rkisp1_afm_config_v10(struct rkisp1_params *params,
const struct rkisp1_cif_isp_afc_config *arg)
{ … }
static void rkisp1_afm_config_v12(struct rkisp1_params *params,
const struct rkisp1_cif_isp_afc_config *arg)
{ … }
static void rkisp1_ie_config(struct rkisp1_params *params,
const struct rkisp1_cif_isp_ie_config *arg)
{ … }
static void rkisp1_ie_enable(struct rkisp1_params *params, bool en)
{ … }
static void rkisp1_csm_config(struct rkisp1_params *params)
{ … }
static void rkisp1_dpf_config(struct rkisp1_params *params,
const struct rkisp1_cif_isp_dpf_config *arg)
{ … }
static void
rkisp1_dpf_strength_config(struct rkisp1_params *params,
const struct rkisp1_cif_isp_dpf_strength_config *arg)
{ … }
static void rkisp1_compand_write_px_curve(struct rkisp1_params *params,
unsigned int addr, const u8 *curve)
{ … }
static void
rkisp1_compand_write_curve_mem(struct rkisp1_params *params,
unsigned int reg_addr, unsigned int reg_data,
const u32 curve[RKISP1_CIF_ISP_COMPAND_NUM_POINTS])
{ … }
static void
rkisp1_compand_bls_config(struct rkisp1_params *params,
const struct rkisp1_cif_isp_compand_bls_config *arg)
{ … }
static void
rkisp1_compand_expand_config(struct rkisp1_params *params,
const struct rkisp1_cif_isp_compand_curve_config *arg)
{ … }
static void
rkisp1_compand_compress_config(struct rkisp1_params *params,
const struct rkisp1_cif_isp_compand_curve_config *arg)
{ … }
static void
rkisp1_isp_isr_other_config(struct rkisp1_params *params,
const struct rkisp1_params_cfg *new_params)
{ … }
static void
rkisp1_isp_isr_lsc_config(struct rkisp1_params *params,
const struct rkisp1_params_cfg *new_params)
{ … }
static void rkisp1_isp_isr_meas_config(struct rkisp1_params *params,
struct rkisp1_params_cfg *new_params)
{ … }
static void
rkisp1_ext_params_bls(struct rkisp1_params *params,
const union rkisp1_ext_params_config *block)
{ … }
static void
rkisp1_ext_params_dpcc(struct rkisp1_params *params,
const union rkisp1_ext_params_config *block)
{ … }
static void
rkisp1_ext_params_sdg(struct rkisp1_params *params,
const union rkisp1_ext_params_config *block)
{ … }
static void
rkisp1_ext_params_lsc(struct rkisp1_params *params,
const union rkisp1_ext_params_config *block)
{ … }
static void
rkisp1_ext_params_awbg(struct rkisp1_params *params,
const union rkisp1_ext_params_config *block)
{ … }
static void
rkisp1_ext_params_flt(struct rkisp1_params *params,
const union rkisp1_ext_params_config *block)
{ … }
static void
rkisp1_ext_params_bdm(struct rkisp1_params *params,
const union rkisp1_ext_params_config *block)
{ … }
static void
rkisp1_ext_params_ctk(struct rkisp1_params *params,
const union rkisp1_ext_params_config *block)
{ … }
static void
rkisp1_ext_params_goc(struct rkisp1_params *params,
const union rkisp1_ext_params_config *block)
{ … }
static void
rkisp1_ext_params_dpf(struct rkisp1_params *params,
const union rkisp1_ext_params_config *block)
{ … }
static void
rkisp1_ext_params_dpfs(struct rkisp1_params *params,
const union rkisp1_ext_params_config *block)
{ … }
static void
rkisp1_ext_params_cproc(struct rkisp1_params *params,
const union rkisp1_ext_params_config *block)
{ … }
static void
rkisp1_ext_params_ie(struct rkisp1_params *params,
const union rkisp1_ext_params_config *block)
{ … }
static void
rkisp1_ext_params_awbm(struct rkisp1_params *params,
const union rkisp1_ext_params_config *block)
{ … }
static void
rkisp1_ext_params_hstm(struct rkisp1_params *params,
const union rkisp1_ext_params_config *block)
{ … }
static void
rkisp1_ext_params_aecm(struct rkisp1_params *params,
const union rkisp1_ext_params_config *block)
{ … }
static void
rkisp1_ext_params_afcm(struct rkisp1_params *params,
const union rkisp1_ext_params_config *block)
{ … }
static void rkisp1_ext_params_compand_bls(struct rkisp1_params *params,
const union rkisp1_ext_params_config *block)
{ … }
static void rkisp1_ext_params_compand_expand(struct rkisp1_params *params,
const union rkisp1_ext_params_config *block)
{ … }
static void rkisp1_ext_params_compand_compress(struct rkisp1_params *params,
const union rkisp1_ext_params_config *block)
{ … }
rkisp1_block_handler;
static const struct rkisp1_ext_params_handler { … } rkisp1_ext_params_handlers[] = …;
static void rkisp1_ext_params_config(struct rkisp1_params *params,
struct rkisp1_ext_params_cfg *cfg,
u32 block_group_mask)
{ … }
static void rkisp1_params_complete_buffer(struct rkisp1_params *params,
struct rkisp1_params_buffer *buf,
unsigned int frame_sequence)
{ … }
void rkisp1_params_isr(struct rkisp1_device *rkisp1)
{ … }
static const struct rkisp1_cif_isp_awb_meas_config rkisp1_awb_params_default_config = …;
static const struct rkisp1_cif_isp_aec_config rkisp1_aec_params_default_config = …;
static const struct rkisp1_cif_isp_hst_config rkisp1_hst_params_default_config = …;
static const struct rkisp1_cif_isp_afc_config rkisp1_afc_params_default_config = …;
void rkisp1_params_pre_configure(struct rkisp1_params *params,
enum rkisp1_fmt_raw_pat_type bayer_pat,
enum v4l2_quantization quantization,
enum v4l2_ycbcr_encoding ycbcr_encoding)
{ … }
void rkisp1_params_post_configure(struct rkisp1_params *params)
{ … }
void rkisp1_params_disable(struct rkisp1_params *params)
{ … }
static const struct rkisp1_params_ops rkisp1_v10_params_ops = …;
static const struct rkisp1_params_ops rkisp1_v12_params_ops = …;
static int rkisp1_params_enum_fmt_meta_out(struct file *file, void *priv,
struct v4l2_fmtdesc *f)
{ … }
static int rkisp1_params_g_fmt_meta_out(struct file *file, void *fh,
struct v4l2_format *f)
{ … }
static int rkisp1_params_try_fmt_meta_out(struct file *file, void *fh,
struct v4l2_format *f)
{ … }
static int rkisp1_params_s_fmt_meta_out(struct file *file, void *fh,
struct v4l2_format *f)
{ … }
static int rkisp1_params_querycap(struct file *file,
void *priv, struct v4l2_capability *cap)
{ … }
static const struct v4l2_ioctl_ops rkisp1_params_ioctl = …;
static int rkisp1_params_vb2_queue_setup(struct vb2_queue *vq,
unsigned int *num_buffers,
unsigned int *num_planes,
unsigned int sizes[],
struct device *alloc_devs[])
{ … }
static int rkisp1_params_vb2_buf_init(struct vb2_buffer *vb)
{ … }
static void rkisp1_params_vb2_buf_cleanup(struct vb2_buffer *vb)
{ … }
static void rkisp1_params_vb2_buf_queue(struct vb2_buffer *vb)
{ … }
static int rkisp1_params_prepare_ext_params(struct rkisp1_params *params,
struct vb2_buffer *vb)
{ … }
static int rkisp1_params_vb2_buf_prepare(struct vb2_buffer *vb)
{ … }
static void rkisp1_params_vb2_stop_streaming(struct vb2_queue *vq)
{ … }
static const struct vb2_ops rkisp1_params_vb2_ops = …;
static const struct v4l2_file_operations rkisp1_params_fops = …;
static int rkisp1_params_init_vb2_queue(struct vb2_queue *q,
struct rkisp1_params *params)
{ … }
int rkisp1_params_register(struct rkisp1_device *rkisp1)
{ … }
void rkisp1_params_unregister(struct rkisp1_device *rkisp1)
{ … }