.. | .. |
---|
29 | 29 | struct rkisp_isp_params_vdev; |
---|
30 | 30 | struct rkisp_isp_params_ops_v32 { |
---|
31 | 31 | void (*dpcc_config)(struct rkisp_isp_params_vdev *params_vdev, |
---|
32 | | - const struct isp2x_dpcc_cfg *arg); |
---|
| 32 | + const struct isp2x_dpcc_cfg *arg, u32 id); |
---|
33 | 33 | void (*dpcc_enable)(struct rkisp_isp_params_vdev *params_vdev, |
---|
34 | | - bool en); |
---|
| 34 | + bool en, u32 id); |
---|
35 | 35 | void (*bls_config)(struct rkisp_isp_params_vdev *params_vdev, |
---|
36 | | - const struct isp32_bls_cfg *arg); |
---|
| 36 | + const struct isp32_bls_cfg *arg, u32 id); |
---|
37 | 37 | void (*bls_enable)(struct rkisp_isp_params_vdev *params_vdev, |
---|
38 | | - bool en); |
---|
| 38 | + bool en, u32 id); |
---|
39 | 39 | void (*sdg_config)(struct rkisp_isp_params_vdev *params_vdev, |
---|
40 | | - const struct isp2x_sdg_cfg *arg); |
---|
| 40 | + const struct isp2x_sdg_cfg *arg, u32 id); |
---|
41 | 41 | void (*sdg_enable)(struct rkisp_isp_params_vdev *params_vdev, |
---|
42 | | - bool en); |
---|
| 42 | + bool en, u32 id); |
---|
43 | 43 | void (*lsc_config)(struct rkisp_isp_params_vdev *params_vdev, |
---|
44 | | - const struct isp3x_lsc_cfg *arg); |
---|
| 44 | + const struct isp3x_lsc_cfg *arg, u32 id); |
---|
45 | 45 | void (*lsc_enable)(struct rkisp_isp_params_vdev *params_vdev, |
---|
46 | | - bool en); |
---|
| 46 | + bool en, u32 id); |
---|
47 | 47 | void (*awbgain_config)(struct rkisp_isp_params_vdev *params_vdev, |
---|
48 | | - const struct isp32_awb_gain_cfg *arg); |
---|
| 48 | + const struct isp32_awb_gain_cfg *arg, u32 id); |
---|
49 | 49 | void (*awbgain_enable)(struct rkisp_isp_params_vdev *params_vdev, |
---|
50 | | - bool en); |
---|
| 50 | + bool en, u32 id); |
---|
51 | 51 | void (*debayer_config)(struct rkisp_isp_params_vdev *params_vdev, |
---|
52 | | - const struct isp32_debayer_cfg *arg); |
---|
| 52 | + const struct isp32_debayer_cfg *arg, u32 id); |
---|
53 | 53 | void (*debayer_enable)(struct rkisp_isp_params_vdev *params_vdev, |
---|
54 | | - bool en); |
---|
| 54 | + bool en, u32 id); |
---|
55 | 55 | void (*ccm_config)(struct rkisp_isp_params_vdev *params_vdev, |
---|
56 | | - const struct isp32_ccm_cfg *arg); |
---|
| 56 | + const struct isp32_ccm_cfg *arg, u32 id); |
---|
57 | 57 | void (*ccm_enable)(struct rkisp_isp_params_vdev *params_vdev, |
---|
58 | | - bool en); |
---|
| 58 | + bool en, u32 id); |
---|
59 | 59 | void (*goc_config)(struct rkisp_isp_params_vdev *params_vdev, |
---|
60 | | - const struct isp3x_gammaout_cfg *arg); |
---|
| 60 | + const struct isp3x_gammaout_cfg *arg, u32 id); |
---|
61 | 61 | void (*goc_enable)(struct rkisp_isp_params_vdev *params_vdev, |
---|
62 | | - bool en); |
---|
| 62 | + bool en, u32 id); |
---|
63 | 63 | void (*cproc_config)(struct rkisp_isp_params_vdev *params_vdev, |
---|
64 | | - const struct isp2x_cproc_cfg *arg); |
---|
| 64 | + const struct isp2x_cproc_cfg *arg, u32 id); |
---|
65 | 65 | void (*cproc_enable)(struct rkisp_isp_params_vdev *params_vdev, |
---|
66 | | - bool en); |
---|
| 66 | + bool en, u32 id); |
---|
67 | 67 | void (*ie_config)(struct rkisp_isp_params_vdev *params_vdev, |
---|
68 | | - const struct isp2x_ie_cfg *arg); |
---|
| 68 | + const struct isp2x_ie_cfg *arg, u32 id); |
---|
69 | 69 | void (*ie_enable)(struct rkisp_isp_params_vdev *params_vdev, |
---|
70 | | - bool en); |
---|
| 70 | + bool en, u32 id); |
---|
71 | 71 | void (*rawaf_config)(struct rkisp_isp_params_vdev *params_vdev, |
---|
72 | | - const struct isp32_rawaf_meas_cfg *arg); |
---|
| 72 | + const struct isp32_rawaf_meas_cfg *arg, u32 id); |
---|
73 | 73 | void (*rawaf_enable)(struct rkisp_isp_params_vdev *params_vdev, |
---|
74 | | - bool en); |
---|
| 74 | + bool en, u32 id); |
---|
75 | 75 | void (*rawae0_config)(struct rkisp_isp_params_vdev *params_vdev, |
---|
76 | | - const struct isp2x_rawaelite_meas_cfg *arg); |
---|
| 76 | + const struct isp2x_rawaelite_meas_cfg *arg, u32 id); |
---|
77 | 77 | void (*rawae0_enable)(struct rkisp_isp_params_vdev *params_vdev, |
---|
78 | | - bool en); |
---|
| 78 | + bool en, u32 id); |
---|
79 | 79 | void (*rawae1_config)(struct rkisp_isp_params_vdev *params_vdev, |
---|
80 | | - const struct isp2x_rawaebig_meas_cfg *arg); |
---|
| 80 | + const struct isp2x_rawaebig_meas_cfg *arg, u32 id); |
---|
81 | 81 | void (*rawae1_enable)(struct rkisp_isp_params_vdev *params_vdev, |
---|
82 | | - bool en); |
---|
| 82 | + bool en, u32 id); |
---|
83 | 83 | void (*rawae2_config)(struct rkisp_isp_params_vdev *params_vdev, |
---|
84 | | - const struct isp2x_rawaebig_meas_cfg *arg); |
---|
| 84 | + const struct isp2x_rawaebig_meas_cfg *arg, u32 id); |
---|
85 | 85 | void (*rawae2_enable)(struct rkisp_isp_params_vdev *params_vdev, |
---|
86 | | - bool en); |
---|
| 86 | + bool en, u32 id); |
---|
87 | 87 | void (*rawae3_config)(struct rkisp_isp_params_vdev *params_vdev, |
---|
88 | | - const struct isp2x_rawaebig_meas_cfg *arg); |
---|
| 88 | + const struct isp2x_rawaebig_meas_cfg *arg, u32 id); |
---|
89 | 89 | void (*rawae3_enable)(struct rkisp_isp_params_vdev *params_vdev, |
---|
90 | | - bool en); |
---|
| 90 | + bool en, u32 id); |
---|
91 | 91 | void (*rawawb_config)(struct rkisp_isp_params_vdev *params_vdev, |
---|
92 | | - const struct isp32_rawawb_meas_cfg *arg); |
---|
| 92 | + const struct isp32_rawawb_meas_cfg *arg, u32 id); |
---|
93 | 93 | void (*rawawb_enable)(struct rkisp_isp_params_vdev *params_vdev, |
---|
94 | | - bool en); |
---|
| 94 | + bool en, u32 id); |
---|
95 | 95 | void (*rawhst0_config)(struct rkisp_isp_params_vdev *params_vdev, |
---|
96 | | - const struct isp2x_rawhistlite_cfg *arg); |
---|
| 96 | + const struct isp2x_rawhistlite_cfg *arg, u32 id); |
---|
97 | 97 | void (*rawhst0_enable)(struct rkisp_isp_params_vdev *params_vdev, |
---|
98 | | - bool en); |
---|
| 98 | + bool en, u32 id); |
---|
99 | 99 | void (*rawhst1_config)(struct rkisp_isp_params_vdev *params_vdev, |
---|
100 | | - const struct isp2x_rawhistbig_cfg *arg); |
---|
| 100 | + const struct isp2x_rawhistbig_cfg *arg, u32 id); |
---|
101 | 101 | void (*rawhst1_enable)(struct rkisp_isp_params_vdev *params_vdev, |
---|
102 | | - bool en); |
---|
| 102 | + bool en, u32 id); |
---|
103 | 103 | void (*rawhst2_config)(struct rkisp_isp_params_vdev *params_vdev, |
---|
104 | | - const struct isp2x_rawhistbig_cfg *arg); |
---|
| 104 | + const struct isp2x_rawhistbig_cfg *arg, u32 id); |
---|
105 | 105 | void (*rawhst2_enable)(struct rkisp_isp_params_vdev *params_vdev, |
---|
106 | | - bool en); |
---|
| 106 | + bool en, u32 id); |
---|
107 | 107 | void (*rawhst3_config)(struct rkisp_isp_params_vdev *params_vdev, |
---|
108 | | - const struct isp2x_rawhistbig_cfg *arg); |
---|
| 108 | + const struct isp2x_rawhistbig_cfg *arg, u32 id); |
---|
109 | 109 | void (*rawhst3_enable)(struct rkisp_isp_params_vdev *params_vdev, |
---|
110 | | - bool en); |
---|
| 110 | + bool en, u32 id); |
---|
111 | 111 | void (*hdrdrc_config)(struct rkisp_isp_params_vdev *params_vdev, |
---|
112 | 112 | const struct isp32_drc_cfg *arg, |
---|
113 | | - enum rkisp_params_type type); |
---|
| 113 | + enum rkisp_params_type type, u32 id); |
---|
114 | 114 | void (*hdrdrc_enable)(struct rkisp_isp_params_vdev *params_vdev, |
---|
115 | | - bool en); |
---|
| 115 | + bool en, u32 id); |
---|
116 | 116 | void (*hdrmge_config)(struct rkisp_isp_params_vdev *params_vdev, |
---|
117 | 117 | const struct isp32_hdrmge_cfg *arg, |
---|
118 | | - enum rkisp_params_type type); |
---|
| 118 | + enum rkisp_params_type type, u32 id); |
---|
119 | 119 | void (*hdrmge_enable)(struct rkisp_isp_params_vdev *params_vdev, |
---|
120 | | - bool en); |
---|
| 120 | + bool en, u32 id); |
---|
121 | 121 | void (*gic_config)(struct rkisp_isp_params_vdev *params_vdev, |
---|
122 | | - const struct isp21_gic_cfg *arg); |
---|
| 122 | + const struct isp21_gic_cfg *arg, u32 id); |
---|
123 | 123 | void (*gic_enable)(struct rkisp_isp_params_vdev *params_vdev, |
---|
124 | | - bool en); |
---|
| 124 | + bool en, u32 id); |
---|
125 | 125 | void (*dhaz_config)(struct rkisp_isp_params_vdev *params_vdev, |
---|
126 | | - const struct isp32_dhaz_cfg *arg); |
---|
| 126 | + const struct isp32_dhaz_cfg *arg, u32 id); |
---|
127 | 127 | void (*dhaz_enable)(struct rkisp_isp_params_vdev *params_vdev, |
---|
128 | | - bool en); |
---|
| 128 | + bool en, u32 id); |
---|
129 | 129 | void (*isp3dlut_config)(struct rkisp_isp_params_vdev *params_vdev, |
---|
130 | | - const struct isp2x_3dlut_cfg *arg); |
---|
| 130 | + const struct isp2x_3dlut_cfg *arg, u32 id); |
---|
131 | 131 | void (*isp3dlut_enable)(struct rkisp_isp_params_vdev *params_vdev, |
---|
132 | | - bool en); |
---|
| 132 | + bool en, u32 id); |
---|
133 | 133 | void (*ldch_config)(struct rkisp_isp_params_vdev *params_vdev, |
---|
134 | | - const struct isp32_ldch_cfg *arg); |
---|
| 134 | + const struct isp32_ldch_cfg *arg, u32 id); |
---|
135 | 135 | void (*ldch_enable)(struct rkisp_isp_params_vdev *params_vdev, |
---|
136 | | - bool en); |
---|
| 136 | + bool en, u32 id); |
---|
137 | 137 | void (*ynr_config)(struct rkisp_isp_params_vdev *params_vdev, |
---|
138 | | - const struct isp32_ynr_cfg *arg); |
---|
| 138 | + const struct isp32_ynr_cfg *arg, u32 id); |
---|
139 | 139 | void (*ynr_enable)(struct rkisp_isp_params_vdev *params_vdev, |
---|
140 | | - bool en); |
---|
| 140 | + bool en, u32 id); |
---|
141 | 141 | void (*cnr_config)(struct rkisp_isp_params_vdev *params_vdev, |
---|
142 | | - const struct isp32_cnr_cfg *arg); |
---|
| 142 | + const struct isp32_cnr_cfg *arg, u32 id); |
---|
143 | 143 | void (*cnr_enable)(struct rkisp_isp_params_vdev *params_vdev, |
---|
144 | | - bool en); |
---|
| 144 | + bool en, u32 id); |
---|
145 | 145 | void (*sharp_config)(struct rkisp_isp_params_vdev *params_vdev, |
---|
146 | | - const struct isp32_sharp_cfg *arg); |
---|
| 146 | + const struct isp32_sharp_cfg *arg, u32 id); |
---|
147 | 147 | void (*sharp_enable)(struct rkisp_isp_params_vdev *params_vdev, |
---|
148 | | - bool en); |
---|
| 148 | + bool en, u32 id); |
---|
149 | 149 | void (*baynr_config)(struct rkisp_isp_params_vdev *params_vdev, |
---|
150 | | - const struct isp32_baynr_cfg *arg); |
---|
| 150 | + const struct isp32_baynr_cfg *arg, u32 id); |
---|
151 | 151 | void (*baynr_enable)(struct rkisp_isp_params_vdev *params_vdev, |
---|
152 | | - bool en); |
---|
| 152 | + bool en, u32 id); |
---|
153 | 153 | void (*bay3d_config)(struct rkisp_isp_params_vdev *params_vdev, |
---|
154 | | - const struct isp32_bay3d_cfg *arg); |
---|
| 154 | + const struct isp32_bay3d_cfg *arg, u32 id); |
---|
155 | 155 | void (*bay3d_enable)(struct rkisp_isp_params_vdev *params_vdev, |
---|
156 | | - bool en); |
---|
| 156 | + bool en, u32 id); |
---|
157 | 157 | void (*gain_config)(struct rkisp_isp_params_vdev *params_vdev, |
---|
158 | | - const struct isp3x_gain_cfg *arg); |
---|
| 158 | + const struct isp3x_gain_cfg *arg, u32 id); |
---|
159 | 159 | void (*gain_enable)(struct rkisp_isp_params_vdev *params_vdev, |
---|
160 | | - bool en); |
---|
| 160 | + bool en, u32 id); |
---|
161 | 161 | void (*cac_config)(struct rkisp_isp_params_vdev *params_vdev, |
---|
162 | | - const struct isp32_cac_cfg *arg); |
---|
| 162 | + const struct isp32_cac_cfg *arg, u32 id); |
---|
163 | 163 | void (*cac_enable)(struct rkisp_isp_params_vdev *params_vdev, |
---|
164 | | - bool en); |
---|
| 164 | + bool en, u32 id); |
---|
165 | 165 | void (*csm_config)(struct rkisp_isp_params_vdev *params_vdev, |
---|
166 | | - const struct isp21_csm_cfg *arg); |
---|
| 166 | + const struct isp21_csm_cfg *arg, u32 id); |
---|
167 | 167 | void (*cgc_config)(struct rkisp_isp_params_vdev *params_vdev, |
---|
168 | | - const struct isp21_cgc_cfg *arg); |
---|
| 168 | + const struct isp21_cgc_cfg *arg, u32 id); |
---|
169 | 169 | void (*vsm_config)(struct rkisp_isp_params_vdev *params_vdev, |
---|
170 | | - const struct isp32_vsm_cfg *arg); |
---|
| 170 | + const struct isp32_vsm_cfg *arg, u32 id); |
---|
171 | 171 | void (*vsm_enable)(struct rkisp_isp_params_vdev *params_vdev, |
---|
172 | | - bool en); |
---|
| 172 | + bool en, u32 id); |
---|
173 | 173 | }; |
---|
174 | 174 | |
---|
175 | 175 | struct rkisp_isp_params_val_v32 { |
---|
176 | 176 | struct tasklet_struct lsc_tasklet; |
---|
177 | 177 | |
---|
178 | | - struct rkisp_dummy_buffer buf_3dlut[ISP32_3DLUT_BUF_NUM]; |
---|
179 | | - u32 buf_3dlut_idx; |
---|
| 178 | + struct rkisp_dummy_buffer buf_3dlut[ISP3_UNITE_MAX][ISP32_3DLUT_BUF_NUM]; |
---|
| 179 | + u32 buf_3dlut_idx[ISP3_UNITE_MAX]; |
---|
| 180 | + |
---|
| 181 | + struct rkisp_dummy_buffer buf_ldch[ISP3_UNITE_MAX][ISP3X_MESH_BUF_NUM]; |
---|
| 182 | + u32 buf_ldch_idx[ISP3_UNITE_MAX]; |
---|
| 183 | + |
---|
| 184 | + struct rkisp_dummy_buffer buf_cac[ISP3_UNITE_MAX][ISP3X_MESH_BUF_NUM]; |
---|
| 185 | + u32 buf_cac_idx[ISP3_UNITE_MAX]; |
---|
180 | 186 | |
---|
181 | 187 | struct rkisp_dummy_buffer buf_lsclut[ISP32_LSC_LUT_BUF_NUM]; |
---|
182 | 188 | u32 buf_lsclut_idx; |
---|
183 | | - |
---|
184 | | - struct rkisp_dummy_buffer buf_ldch[ISP3X_MESH_BUF_NUM]; |
---|
185 | | - u32 buf_ldch_idx; |
---|
186 | | - |
---|
187 | | - struct rkisp_dummy_buffer buf_cac[ISP3X_MESH_BUF_NUM]; |
---|
188 | | - u32 buf_cac_idx; |
---|
189 | 189 | |
---|
190 | 190 | struct rkisp_dummy_buffer buf_info[RKISP_INFO2DDR_BUF_MAX]; |
---|
191 | 191 | u32 buf_info_owner; |
---|
192 | 192 | u32 buf_info_cnt; |
---|
193 | 193 | int buf_info_idx; |
---|
194 | 194 | |
---|
| 195 | + u32 bay3d_ds_size; |
---|
| 196 | + u32 bay3d_iir_size; |
---|
195 | 197 | u32 bay3d_cur_size; |
---|
196 | 198 | u32 bay3d_cur_wsize; |
---|
197 | 199 | u32 bay3d_cur_wrap_line; |
---|
.. | .. |
---|
200 | 202 | struct rkisp_dummy_buffer buf_3dnr_ds; |
---|
201 | 203 | |
---|
202 | 204 | struct rkisp_dummy_buffer buf_frm; |
---|
203 | | - |
---|
204 | | - struct isp32_hdrmge_cfg last_hdrmge; |
---|
205 | | - struct isp32_drc_cfg last_hdrdrc; |
---|
206 | | - struct isp32_hdrmge_cfg cur_hdrmge; |
---|
207 | | - struct isp32_drc_cfg cur_hdrdrc; |
---|
208 | 205 | |
---|
209 | 206 | bool dhaz_en; |
---|
210 | 207 | bool drc_en; |
---|