1
2 /*
3 * isp500_reg_cfg.c
4 *
5 * Copyright (c) 2007-2017 Allwinnertech Co., Ltd.
6 *
7 * This software is licensed under the terms of the GNU General Public
8 * License version 2, as published by the Free Software Foundation, and
9 * may be copied, distributed, and modified under those terms.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 */
17
18 #include <linux/io.h>
19 #include <linux/kernel.h>
20 #include "isp500_reg.h"
21 #include "isp500_reg_cfg.h"
22
23 #define ISP500_MAX_NUM 2
24
25 /*
26 *
27 * Load ISP register variables
28 *
29 */
30 struct isp500_reg {
31 ISP_FE_CFG_REG_t *isp_fe_cfg;
32 ISP_FE_CTRL_REG_t *isp_fe_ctrl;
33 ISP_FE_INT_EN_REG_t *isp_fe_int_en;
34 ISP_FE_INT_STA_REG_t *isp_fe_int_sta;
35 ISP_DBG_OUTPUT_REG_t *isp_dbg_output;
36 ISP_LINE_INT_NUM_REG_t *isp_line_int_num;
37 ISP_ROT_OF_CFG_REG_t *isp_rot_of_cfg;
38 ISP_REG_LOAD_ADDR_REG_t *isp_reg_load_addr;
39 ISP_REG_SAVED_ADDR_REG_t *isp_reg_saved_addr;
40 ISP_LUT_LENS_GAMMA_ADDR_REG_t *isp_lut_lens_gamma_addr;
41 ISP_DRC_ADDR_REG_t *isp_drc_addr;
42 ISP_STATISTICS_ADDR_REG_t *isp_statistics_addr;
43 ISP_VER_CFG_REG_t *isp_ver_cfg;
44 ISP_SRAM_RW_OFFSET_REG_t *isp_sram_rw_offset;
45 ISP_SRAM_RW_DATA_REG_t *isp_sram_rw_data;
46 unsigned int *isp_s0_fmerr_cnt;
47 unsigned int *isp_s0_hb_cnt;
48
49 ISP_FE_CTRL_REG_t *isp_update_flag;
50 ISP_EN_REG_t *isp_en;
51 ISP_MODE_REG_t *isp_mode;
52 ISP_OB_SIZE_REG_t *isp_ob_size;
53 ISP_OB_VALID_REG_t *isp_ob_valid;
54 ISP_OB_VALID_START_REG_t *isp_ob_valid_start;
55
56 unsigned int *isp_wdr_exp_addr0;
57 unsigned int *isp_wdr_exp_addr1;
58 unsigned int *isp_d3d_rec_addr0;
59 unsigned int *isp_d3d_rec_addr1;
60 };
61
62 struct isp500_reg isp_regs[ISP500_MAX_NUM];
63
64 /*
65 * Register Address
66 */
67
bsp_isp_map_reg_addr(unsigned long id,unsigned long isp_reg_base)68 void bsp_isp_map_reg_addr(unsigned long id, unsigned long isp_reg_base)
69 {
70 isp_regs[id].isp_fe_cfg = (ISP_FE_CFG_REG_t *) (isp_reg_base + ISP_FE_CFG_REG_OFF);
71 isp_regs[id].isp_fe_ctrl = (ISP_FE_CTRL_REG_t *) (isp_reg_base + ISP_FE_CTRL_REG_OFF);
72 isp_regs[id].isp_fe_int_en = (ISP_FE_INT_EN_REG_t *) (isp_reg_base + ISP_FE_INT_EN_REG_OFF);
73 isp_regs[id].isp_fe_int_sta = (ISP_FE_INT_STA_REG_t *) (isp_reg_base + ISP_FE_INT_STA_REG_OFF);
74 isp_regs[id].isp_dbg_output = (ISP_DBG_OUTPUT_REG_t *) (isp_reg_base + ISP_DBG_OUTPUT_REG_OFF);
75 isp_regs[id].isp_line_int_num = (ISP_LINE_INT_NUM_REG_t *) (isp_reg_base + ISP_LINE_INT_NUM_REG_OFF);
76 isp_regs[id].isp_rot_of_cfg = (ISP_ROT_OF_CFG_REG_t *) (isp_reg_base + ISP_ROT_OF_CFG_REG_OFF);
77 isp_regs[id].isp_reg_load_addr = (ISP_REG_LOAD_ADDR_REG_t *) (isp_reg_base + ISP_REG_LOAD_ADDR_REG_OFF);
78 isp_regs[id].isp_reg_saved_addr = (ISP_REG_SAVED_ADDR_REG_t *) (isp_reg_base + ISP_REG_SAVED_ADDR_REG_OFF);
79
80 isp_regs[id].isp_lut_lens_gamma_addr = (ISP_LUT_LENS_GAMMA_ADDR_REG_t *) (isp_reg_base + ISP_LUT_LENS_GAMMA_ADDR_REG_OFF);
81 isp_regs[id].isp_drc_addr = (ISP_DRC_ADDR_REG_t *) (isp_reg_base + ISP_DRC_ADDR_REG_OFF);
82 isp_regs[id].isp_statistics_addr = (ISP_STATISTICS_ADDR_REG_t *) (isp_reg_base + ISP_STATISTICS_ADDR_REG_OFF);
83 isp_regs[id].isp_ver_cfg = (ISP_VER_CFG_REG_t *) (isp_reg_base + ISP_VER_CFG_REG_OFF);
84
85 isp_regs[id].isp_sram_rw_offset = (ISP_SRAM_RW_OFFSET_REG_t *) (isp_reg_base + ISP_SRAM_RW_OFFSET_REG_OFF);
86 isp_regs[id].isp_sram_rw_data = (ISP_SRAM_RW_DATA_REG_t *) (isp_reg_base + ISP_SRAM_RW_DATA_REG_OFF);
87
88 isp_regs[id].isp_s0_fmerr_cnt = (unsigned int *) (isp_reg_base + 0x5c);
89 isp_regs[id].isp_s0_hb_cnt = (unsigned int *) (isp_reg_base + 0x60);
90 #ifdef USE_DEF_PARA
91 isp_regs[id].isp_en = (ISP_EN_REG_t *) (isp_reg_base + ISP_EN_REG_OFF);
92 isp_regs[id].isp_mode = (ISP_MODE_REG_t *) (isp_reg_base + ISP_MODE_REG_OFF);
93 isp_regs[id].isp_ob_size = (ISP_OB_SIZE_REG_t *) (isp_reg_base + ISP_OB_SIZE_REG_OFF);
94 isp_regs[id].isp_ob_valid = (ISP_OB_VALID_REG_t *) (isp_reg_base + ISP_OB_VALID_REG_OFF);
95 isp_regs[id].isp_ob_valid_start = (ISP_OB_VALID_START_REG_t *) (isp_reg_base + ISP_OB_VALID_START_REG_OFF);
96
97 isp_regs[id].isp_wdr_exp_addr0 = (unsigned int *) (isp_reg_base + ISP_WDR_EXP_ADDR0_REG);
98 isp_regs[id].isp_wdr_exp_addr1 = (unsigned int *) (isp_reg_base + ISP_WDR_EXP_ADDR1_REG);
99 isp_regs[id].isp_d3d_rec_addr0 = (unsigned int *) (isp_reg_base + ISP_D3D_REC_ADDR0_REG);
100 isp_regs[id].isp_d3d_rec_addr1 = (unsigned int *) (isp_reg_base + ISP_D3D_REC_ADDR1_REG);
101 #endif
102 }
103
104 /*
105 * Load DRAM Register Address
106 */
107
bsp_isp_map_load_dram_addr(unsigned long id,unsigned long isp_load_dram_base)108 void bsp_isp_map_load_dram_addr(unsigned long id, unsigned long isp_load_dram_base)
109 {
110 #ifndef USE_DEF_PARA
111 isp_regs[id].isp_update_flag = (ISP_FE_CTRL_REG_t *) (isp_load_dram_base + ISP_FE_CTRL_REG_OFF);
112 isp_regs[id].isp_en = (ISP_EN_REG_t *) (isp_load_dram_base + ISP_EN_REG_OFF);
113 isp_regs[id].isp_mode = (ISP_MODE_REG_t *) (isp_load_dram_base + ISP_MODE_REG_OFF);
114 isp_regs[id].isp_ob_size = (ISP_OB_SIZE_REG_t *) (isp_load_dram_base + ISP_OB_SIZE_REG_OFF);
115 isp_regs[id].isp_ob_valid = (ISP_OB_VALID_REG_t *) (isp_load_dram_base + ISP_OB_VALID_REG_OFF);
116 isp_regs[id].isp_ob_valid_start = (ISP_OB_VALID_START_REG_t *) (isp_load_dram_base + ISP_OB_VALID_START_REG_OFF);
117
118 isp_regs[id].isp_wdr_exp_addr0 = (unsigned int *) (isp_load_dram_base + ISP_WDR_EXP_ADDR0_REG);
119 isp_regs[id].isp_wdr_exp_addr1 = (unsigned int *) (isp_load_dram_base + ISP_WDR_EXP_ADDR1_REG);
120 isp_regs[id].isp_d3d_rec_addr0 = (unsigned int *) (isp_load_dram_base + ISP_D3D_REC_ADDR0_REG);
121 isp_regs[id].isp_d3d_rec_addr1 = (unsigned int *) (isp_load_dram_base + ISP_D3D_REC_ADDR1_REG);
122 #endif
123 }
124
125 /*
126 * Saved DRAM Register Address
127 */
bsp_isp_map_saved_dram_addr(unsigned long id,unsigned long base)128 void bsp_isp_map_saved_dram_addr(unsigned long id, unsigned long base)
129 {
130
131 }
132
bsp_isp_enable(unsigned long id,int enable)133 void bsp_isp_enable(unsigned long id, int enable)
134 {
135 isp_regs[id].isp_fe_cfg->bits.isp_enable = enable;
136 }
137
bsp_isp_ch_enable(unsigned long id,int ch,int enable)138 void bsp_isp_ch_enable(unsigned long id, int ch, int enable)
139 {
140 switch (ch) {
141 case 0:
142 isp_regs[id].isp_fe_cfg->bits.isp_ch0_en = enable;
143 break;
144 case 1:
145 isp_regs[id].isp_fe_cfg->bits.isp_ch1_en = enable;
146 break;
147 case 2:
148 isp_regs[id].isp_fe_cfg->bits.isp_ch2_en = enable;
149 break;
150 case 3:
151 isp_regs[id].isp_fe_cfg->bits.isp_ch3_en = enable;
152 break;
153 default:
154 isp_regs[id].isp_fe_cfg->bits.isp_ch0_en = enable;
155 break;
156 }
157 }
158
bsp_isp_wdr_ch_seq(unsigned long id,int seq)159 void bsp_isp_wdr_ch_seq(unsigned long id, int seq)
160 {
161 switch (seq) {
162 case 0:
163 isp_regs[id].isp_fe_cfg->bits.wdr_ch_seq = 0;
164 break;
165 case 1:
166 isp_regs[id].isp_fe_cfg->bits.wdr_ch_seq = 1;
167 break;
168 default:
169 isp_regs[id].isp_fe_cfg->bits.wdr_ch_seq = 0;
170 break;
171 }
172 }
bsp_isp_set_para_ready(unsigned long id,enum ready_flag ready)173 void bsp_isp_set_para_ready(unsigned long id, enum ready_flag ready)
174 {
175 #ifndef USE_DEF_PARA
176 if (ready == PARA_READY)
177 isp_regs[id].isp_fe_ctrl->bits.para_ready = 1;
178 else
179 isp_regs[id].isp_fe_ctrl->bits.para_ready = 0;
180 #endif
181 }
182
bsp_isp_get_para_ready(unsigned long id)183 unsigned int bsp_isp_get_para_ready(unsigned long id)
184 {
185 return isp_regs[id].isp_fe_ctrl->bits.para_ready;
186 }
187
bsp_isp_update_table(unsigned long id,unsigned short table_update)188 void bsp_isp_update_table(unsigned long id, unsigned short table_update)
189 {
190 if (table_update & LINEAR_UPDATE)
191 isp_regs[id].isp_fe_ctrl->bits.linear_update = 1;
192 else
193 isp_regs[id].isp_fe_ctrl->bits.linear_update = 0;
194
195 if (table_update & LENS_UPDATE)
196 isp_regs[id].isp_fe_ctrl->bits.lens_update = 1;
197 else
198 isp_regs[id].isp_fe_ctrl->bits.lens_update = 0;
199
200 if (table_update & GAMMA_UPDATE)
201 isp_regs[id].isp_fe_ctrl->bits.gamma_update = 1;
202 else
203 isp_regs[id].isp_fe_ctrl->bits.gamma_update = 0;
204
205 if (table_update & DRC_UPDATE)
206 isp_regs[id].isp_fe_ctrl->bits.drc_update = 1;
207 else
208 isp_regs[id].isp_fe_ctrl->bits.drc_update = 0;
209
210 if (table_update & DISC_UPDATE)
211 isp_regs[id].isp_fe_ctrl->bits.disc_update = 1;
212 else
213 isp_regs[id].isp_fe_ctrl->bits.disc_update = 0;
214
215 if (table_update & SATU_UPDATE)
216 isp_regs[id].isp_fe_ctrl->bits.satu_update = 1;
217 else
218 isp_regs[id].isp_fe_ctrl->bits.satu_update = 0;
219
220 if (table_update & WDR_UPDATE)
221 isp_regs[id].isp_fe_ctrl->bits.wdr_update = 1;
222 else
223 isp_regs[id].isp_fe_ctrl->bits.wdr_update = 0;
224
225 if (table_update & TDNF_UPDATE)
226 isp_regs[id].isp_fe_ctrl->bits.tdnf_update = 1;
227 else
228 isp_regs[id].isp_fe_ctrl->bits.tdnf_update = 0;
229
230 if (table_update & PLTM_UPDATE)
231 isp_regs[id].isp_fe_ctrl->bits.pltm_update = 1;
232 else
233 isp_regs[id].isp_fe_ctrl->bits.pltm_update = 0;
234
235 if (table_update & CEM_UPDATE)
236 isp_regs[id].isp_fe_ctrl->bits.cem_update = 1;
237 else
238 isp_regs[id].isp_fe_ctrl->bits.cem_update = 0;
239
240 if (table_update & CONTRAST_UPDATE)
241 isp_regs[id].isp_fe_ctrl->bits.contrast_update = 1;
242 else
243 isp_regs[id].isp_fe_ctrl->bits.contrast_update = 0;
244 }
bsp_isp_capture_start(unsigned long id)245 void bsp_isp_capture_start(unsigned long id)
246 {
247 isp_regs[id].isp_fe_ctrl->bits.cap_en = 1;
248 }
249
bsp_isp_capture_stop(unsigned long id)250 void bsp_isp_capture_stop(unsigned long id)
251 {
252 isp_regs[id].isp_fe_ctrl->bits.cap_en = 0;
253 }
254
bsp_isp_irq_enable(unsigned long id,unsigned int irq_flag)255 void bsp_isp_irq_enable(unsigned long id, unsigned int irq_flag)
256 {
257 isp_regs[id].isp_fe_int_en->dwval |= irq_flag;
258 }
259
bsp_isp_irq_disable(unsigned long id,unsigned int irq_flag)260 void bsp_isp_irq_disable(unsigned long id, unsigned int irq_flag)
261 {
262 isp_regs[id].isp_fe_int_en->dwval &= ~irq_flag;
263 }
264
bsp_isp_int_get_enable(unsigned long id)265 int bsp_isp_int_get_enable(unsigned long id)
266 {
267 return isp_regs[id].isp_fe_int_en->dwval;
268 }
269
bsp_isp_get_irq_status(unsigned long id,unsigned int irq_flag)270 unsigned int bsp_isp_get_irq_status(unsigned long id, unsigned int irq_flag)
271 {
272 return isp_regs[id].isp_fe_int_sta->dwval & irq_flag;
273 }
274
bsp_isp_clr_irq_status(unsigned long id,unsigned int irq_flag)275 void bsp_isp_clr_irq_status(unsigned long id, unsigned int irq_flag)
276 {
277 isp_regs[id].isp_fe_int_sta->dwval = irq_flag;
278 }
279
bsp_isp_debug_output_cfg(unsigned long id,int enable,int output_sel)280 void bsp_isp_debug_output_cfg(unsigned long id, int enable, int output_sel)
281 {
282 isp_regs[id].isp_dbg_output->bits.debug_en = enable;
283 isp_regs[id].isp_dbg_output->bits.debug_sel = output_sel;
284 }
285
bsp_isp_set_para_ready_mode(unsigned long id,int enable)286 void bsp_isp_set_para_ready_mode(unsigned long id, int enable)
287 {
288 }
289
bsp_isp_set_line_int_num(unsigned long id,unsigned int line_num)290 void bsp_isp_set_line_int_num(unsigned long id, unsigned int line_num)
291 {
292 isp_regs[id].isp_line_int_num->bits.line_int_num = line_num;
293 }
bsp_isp_set_last_blank_cycle(unsigned long id,unsigned int last_blank_cycle)294 void bsp_isp_set_last_blank_cycle(unsigned long id, unsigned int last_blank_cycle)
295 {
296 isp_regs[id].isp_line_int_num->bits.last_blank_cycle = last_blank_cycle;
297 }
298
bsp_isp_set_speed_mode(unsigned long id,unsigned int speed_mode)299 void bsp_isp_set_speed_mode(unsigned long id, unsigned int speed_mode)
300 {
301 isp_regs[id].isp_rot_of_cfg->bits.speed_mode = speed_mode;
302 }
303
bsp_isp_set_load_addr(unsigned long id,unsigned long addr)304 void bsp_isp_set_load_addr(unsigned long id, unsigned long addr)
305 {
306 isp_regs[id].isp_reg_load_addr->dwval = addr >> ISP_ADDR_BIT_R_SHIFT;
307 }
308
bsp_isp_set_saved_addr(unsigned long id,unsigned long addr)309 void bsp_isp_set_saved_addr(unsigned long id, unsigned long addr)
310 {
311 isp_regs[id].isp_reg_saved_addr->dwval = addr >> ISP_ADDR_BIT_R_SHIFT;
312 }
313
bsp_isp_set_table_addr(unsigned long id,enum isp_input_tables table,unsigned long addr)314 void bsp_isp_set_table_addr(unsigned long id, enum isp_input_tables table,
315 unsigned long addr)
316 {
317 switch (table) {
318 case LENS_GAMMA_TABLE:
319 isp_regs[id].isp_lut_lens_gamma_addr->dwval = addr >> ISP_ADDR_BIT_R_SHIFT;
320 break;
321 case DRC_TABLE:
322 isp_regs[id].isp_drc_addr->dwval = addr >> ISP_ADDR_BIT_R_SHIFT;
323 break;
324 default:
325 break;
326 }
327 }
328
bsp_isp_set_statistics_addr(unsigned long id,unsigned long addr)329 void bsp_isp_set_statistics_addr(unsigned long id, unsigned long addr)
330 {
331 isp_regs[id].isp_statistics_addr->dwval = addr >> ISP_ADDR_BIT_R_SHIFT;
332 }
333
bsp_isp_get_isp_ver(unsigned long id,unsigned int * major,unsigned int * minor)334 unsigned int bsp_isp_get_isp_ver(unsigned long id, unsigned int *major, unsigned int *minor)
335 {
336 *major = isp_regs[id].isp_ver_cfg->bits.major_ver;
337 *minor = isp_regs[id].isp_ver_cfg->bits.minor_ver;
338 return isp_regs[id].isp_ver_cfg->dwval;
339 }
340
bsp_isp_ver_read_en(unsigned long id,unsigned int en)341 void bsp_isp_ver_read_en(unsigned long id, unsigned int en)
342 {
343 isp_regs[id].isp_fe_cfg->bits.isp_ver_read_en = en;
344 }
345
bsp_isp_get_s0_ch_fmerr_cnt(unsigned long id,struct isp_size * size)346 void bsp_isp_get_s0_ch_fmerr_cnt(unsigned long id, struct isp_size *size)
347 {
348 int input = readl(isp_regs[id].isp_s0_fmerr_cnt);
349 size->width = input & 0xffff;
350 size->height = (input >> 16) & 0xffff;
351 }
352
bsp_isp_get_s0_ch_hb_cnt(unsigned long id,unsigned int * hb_max,unsigned int * hb_min)353 void bsp_isp_get_s0_ch_hb_cnt(unsigned long id, unsigned int *hb_max, unsigned int *hb_min)
354 {
355 int blank = readl(isp_regs[id].isp_s0_hb_cnt);
356 *hb_max = (blank >> 16) & 0xffff;
357 *hb_min = blank & 0xffff;
358 }
359
bsp_isp_module_enable(unsigned long id,unsigned int modules)360 void bsp_isp_module_enable(unsigned long id, unsigned int modules)
361 {
362 isp_regs[id].isp_en->dwval |= modules;
363 }
364
bsp_isp_module_disable(unsigned long id,unsigned int modules)365 void bsp_isp_module_disable(unsigned long id, unsigned int modules)
366 {
367 isp_regs[id].isp_en->dwval &= ~modules;
368 }
369
bsp_isp_set_wdr_mode(unsigned long id,unsigned int wdr_mode)370 void bsp_isp_set_wdr_mode(unsigned long id, unsigned int wdr_mode)
371 {
372 if (wdr_mode == 1) {/*dol*/
373 isp_regs[id].isp_mode->bits.wdr_mode = 0;
374 isp_regs[id].isp_mode->bits.wdr_dol_mode = 1;
375 } else if (wdr_mode == 2) {/*comanding*/
376 isp_regs[id].isp_mode->bits.wdr_mode = 1;
377 isp_regs[id].isp_mode->bits.wdr_dol_mode = 1;
378 } else {
379 isp_regs[id].isp_mode->bits.wdr_mode = 0;
380 isp_regs[id].isp_mode->bits.wdr_dol_mode = 0;
381 }
382 }
383
bsp_isp_set_input_fmt(unsigned long id,unsigned int fmt)384 void bsp_isp_set_input_fmt(unsigned long id, unsigned int fmt)
385 {
386 isp_regs[id].isp_mode->bits.input_fmt = fmt;
387 }
388
bsp_isp_set_ob(unsigned long id,struct isp_size * black,struct isp_size * valid,struct coor * xy)389 void bsp_isp_set_ob(unsigned long id, struct isp_size *black,
390 struct isp_size *valid, struct coor *xy)
391 {
392 isp_regs[id].isp_ob_size->bits.ob_width = black->width;
393 isp_regs[id].isp_ob_size->bits.ob_height = black->height;
394 isp_regs[id].isp_ob_valid->bits.ob_valid_width = valid->width;
395 isp_regs[id].isp_ob_valid->bits.ob_valid_height = valid->height;
396 isp_regs[id].isp_ob_valid_start->bits.ob_hor_start = xy->hor;
397 isp_regs[id].isp_ob_valid_start->bits.ob_ver_start = xy->ver;
398 }
399
bsp_isp_set_size(unsigned long id,struct isp_size_settings * size)400 void bsp_isp_set_size(unsigned long id, struct isp_size_settings *size)
401 {
402 bsp_isp_set_ob(id, &size->ob_black, &size->ob_valid, &size->ob_start);
403 }
404
bsp_isp_load_update_flag(unsigned long id)405 unsigned int bsp_isp_load_update_flag(unsigned long id)
406 {
407 return isp_regs[id].isp_update_flag->dwval;
408 }
409
bsp_isp_set_wdr_addr0(unsigned long id,dma_addr_t addr)410 void bsp_isp_set_wdr_addr0(unsigned long id, dma_addr_t addr)
411 {
412 writel(addr >> ISP_ADDR_BIT_R_SHIFT, isp_regs[id].isp_wdr_exp_addr0);
413 }
414
bsp_isp_set_wdr_addr1(unsigned long id,dma_addr_t addr)415 void bsp_isp_set_wdr_addr1(unsigned long id, dma_addr_t addr)
416 {
417 writel(addr >> ISP_ADDR_BIT_R_SHIFT, isp_regs[id].isp_wdr_exp_addr1);
418 }
419
bsp_isp_set_d3d_addr0(unsigned long id,dma_addr_t addr)420 void bsp_isp_set_d3d_addr0(unsigned long id, dma_addr_t addr)
421 {
422 writel(addr >> ISP_ADDR_BIT_R_SHIFT, isp_regs[id].isp_d3d_rec_addr0);
423 }
424
bsp_isp_set_d3d_addr1(unsigned long id,dma_addr_t addr)425 void bsp_isp_set_d3d_addr1(unsigned long id, dma_addr_t addr)
426 {
427 writel(addr >> ISP_ADDR_BIT_R_SHIFT, isp_regs[id].isp_d3d_rec_addr1);
428 }
429
bsp_isp_set_fifo_mode(unsigned long id,unsigned int mode)430 void bsp_isp_set_fifo_mode(unsigned long id, unsigned int mode)
431 {
432 }
433
bsp_isp_min_ddr_size(unsigned long id,unsigned int size)434 void bsp_isp_min_ddr_size(unsigned long id, unsigned int size)
435 {
436 }
437
bsp_isp_fifo_raw_write(unsigned long id,unsigned int depth)438 void bsp_isp_fifo_raw_write(unsigned long id, unsigned int depth)
439 {
440 }
441
bsp_isp_k_min_ddr_size(unsigned long id,unsigned int size)442 void bsp_isp_k_min_ddr_size(unsigned long id, unsigned int size)
443 {
444 }
445
446