• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /* Copyright (c) 2019 Fuzhou Rockchip Electronics Co., Ltd. */
3 
4 #ifndef _RKISP_ISP_PARAM_V1X_H
5 #define _RKISP_ISP_PARAM_V1X_H
6 
7 #include <linux/rkisp1-config.h>
8 #include <linux/rk-preisp.h>
9 #include "common.h"
10 #include "isp_params.h"
11 
12 struct rkisp_isp_params_vdev;
13 struct rkisp_isp_params_v1x_ops {
14 	void (*dpcc_config)(struct rkisp_isp_params_vdev *params_vdev,
15 			    const struct cifisp_dpcc_config *arg);
16 	void (*bls_config)(struct rkisp_isp_params_vdev *params_vdev,
17 			   const struct cifisp_bls_config *arg);
18 	void (*lsc_config)(struct rkisp_isp_params_vdev *params_vdev,
19 			   const struct cifisp_lsc_config *arg);
20 	void (*lsc_matrix_config)(struct rkisp_isp_params_vdev *params_vdev,
21 				  const struct cifisp_lsc_config *pconfig);
22 	void (*flt_config)(struct rkisp_isp_params_vdev *params_vdev,
23 			   const struct cifisp_flt_config *arg);
24 	void (*bdm_config)(struct rkisp_isp_params_vdev *params_vdev,
25 			   const struct cifisp_bdm_config *arg);
26 	void (*sdg_config)(struct rkisp_isp_params_vdev *params_vdev,
27 			   const struct cifisp_sdg_config *arg);
28 	void (*goc_config)(struct rkisp_isp_params_vdev *params_vdev,
29 			   const struct cifisp_goc_config *arg);
30 	void (*ctk_config)(struct rkisp_isp_params_vdev *params_vdev,
31 			   const struct cifisp_ctk_config *arg);
32 	void (*ctk_enable)(struct rkisp_isp_params_vdev *params_vdev,
33 			   bool en);
34 	void (*awb_meas_config)(struct rkisp_isp_params_vdev *params_vdev,
35 				const struct cifisp_awb_meas_config *arg);
36 	void (*awb_meas_enable)(struct rkisp_isp_params_vdev *params_vdev,
37 				const struct cifisp_awb_meas_config *arg,
38 				bool en);
39 	void (*awb_gain_config)(struct rkisp_isp_params_vdev *params_vdev,
40 				const struct cifisp_awb_gain_config *arg);
41 	void (*aec_config)(struct rkisp_isp_params_vdev *params_vdev,
42 			   const struct cifisp_aec_config *arg);
43 	void (*cproc_config)(struct rkisp_isp_params_vdev *params_vdev,
44 			     const struct cifisp_cproc_config *arg);
45 	void (*hst_config)(struct rkisp_isp_params_vdev *params_vdev,
46 			   const struct cifisp_hst_config *arg);
47 	void (*hst_enable)(struct rkisp_isp_params_vdev *params_vdev,
48 			   const struct cifisp_hst_config *arg, bool en);
49 	void (*afm_config)(struct rkisp_isp_params_vdev *params_vdev,
50 			   const struct cifisp_afc_config *arg);
51 	void (*ie_config)(struct rkisp_isp_params_vdev *params_vdev,
52 			  const struct cifisp_ie_config *arg);
53 	void (*ie_enable)(struct rkisp_isp_params_vdev *params_vdev,
54 			  bool en);
55 	void (*csm_config)(struct rkisp_isp_params_vdev *params_vdev,
56 			   bool full_range);
57 	void (*dpf_config)(struct rkisp_isp_params_vdev *params_vdev,
58 			   const struct cifisp_dpf_config *arg);
59 	void (*dpf_strength_config)(struct rkisp_isp_params_vdev *params_vdev,
60 				const struct cifisp_dpf_strength_config *arg);
61 	void (*wdr_config)(struct rkisp_isp_params_vdev *params_vdev,
62 			   const struct cifisp_wdr_config *arg);
63 	void (*wdr_enable)(struct rkisp_isp_params_vdev *params_vdev, bool en);
64 	void (*demosaiclp_config)(struct rkisp_isp_params_vdev *params_vdev,
65 				  const struct cifisp_demosaiclp_config *arg);
66 	void (*demosaiclp_enable)(struct rkisp_isp_params_vdev *params_vdev,
67 				  bool en);
68 	void (*rkiesharp_config)(struct rkisp_isp_params_vdev *params_vdev,
69 				 const struct cifisp_rkiesharp_config *arg);
70 	void (*rkiesharp_enable)(struct rkisp_isp_params_vdev *params_vdev,
71 				 bool en);
72 };
73 
74 struct rkisp_isp_params_v1x_config {
75 	const int gamma_out_max_samples;
76 	const int hst_weight_grids_size;
77 };
78 
79 #if IS_ENABLED(CONFIG_VIDEO_ROCKCHIP_ISP_VERSION_V1X)
80 int rkisp_init_params_vdev_v1x(struct rkisp_isp_params_vdev *params_vdev);
81 void rkisp_uninit_params_vdev_v1x(struct rkisp_isp_params_vdev *params_vdev);
82 #else
rkisp_init_params_vdev_v1x(struct rkisp_isp_params_vdev * params_vdev)83 static inline int rkisp_init_params_vdev_v1x(struct rkisp_isp_params_vdev *params_vdev) { return -EINVAL; }
rkisp_uninit_params_vdev_v1x(struct rkisp_isp_params_vdev * params_vdev)84 static inline void rkisp_uninit_params_vdev_v1x(struct rkisp_isp_params_vdev *params_vdev) {}
85 #endif
86 
87 #endif /* _RKISP_ISP_PARAM_V1X_H */
88