| .. | .. |
|---|
| 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; |
|---|