Lines Matching +full:isp +full:- +full:0
1 // SPDX-License-Identifier: GPL-2.0-only
3 * Samsung EXYNOS4x12 FIMC-IS (Imaging Subsystem) driver
23 #include <media/v4l2-device.h>
24 #include <media/v4l2-ioctl.h>
26 #include "fimc-is.h"
27 #include "fimc-is-command.h"
28 #include "fimc-is-errno.h"
29 #include "fimc-is-param.h"
30 #include "fimc-is-regs.h"
31 #include "fimc-is-sensor.h"
42 dst = &is->is_p_region->parameter.global.shotmode; in __fimc_is_hw_update_param_global_shotmode()
43 src = &is->config[is->config_index].global.shotmode; in __fimc_is_hw_update_param_global_shotmode()
51 dst = &is->is_p_region->parameter.sensor.frame_rate; in __fimc_is_hw_update_param_sensor_framerate()
52 src = &is->config[is->config_index].sensor.frame_rate; in __fimc_is_hw_update_param_sensor_framerate()
58 struct is_param_region *par = &is->is_p_region->parameter; in __fimc_is_hw_update_param()
59 struct chain_config *cfg = &is->config[is->config_index]; in __fimc_is_hw_update_param()
63 __hw_param_copy(&par->isp.control, &cfg->isp.control); in __fimc_is_hw_update_param()
67 __hw_param_copy(&par->isp.otf_input, &cfg->isp.otf_input); in __fimc_is_hw_update_param()
71 __hw_param_copy(&par->isp.dma1_input, &cfg->isp.dma1_input); in __fimc_is_hw_update_param()
75 __hw_param_copy(&par->isp.dma2_input, &cfg->isp.dma2_input); in __fimc_is_hw_update_param()
79 __hw_param_copy(&par->isp.aa, &cfg->isp.aa); in __fimc_is_hw_update_param()
83 __hw_param_copy(&par->isp.flash, &cfg->isp.flash); in __fimc_is_hw_update_param()
87 __hw_param_copy(&par->isp.awb, &cfg->isp.awb); in __fimc_is_hw_update_param()
91 __hw_param_copy(&par->isp.effect, &cfg->isp.effect); in __fimc_is_hw_update_param()
95 __hw_param_copy(&par->isp.iso, &cfg->isp.iso); in __fimc_is_hw_update_param()
99 __hw_param_copy(&par->isp.adjust, &cfg->isp.adjust); in __fimc_is_hw_update_param()
103 __hw_param_copy(&par->isp.metering, &cfg->isp.metering); in __fimc_is_hw_update_param()
107 __hw_param_copy(&par->isp.afc, &cfg->isp.afc); in __fimc_is_hw_update_param()
111 __hw_param_copy(&par->isp.otf_output, &cfg->isp.otf_output); in __fimc_is_hw_update_param()
115 __hw_param_copy(&par->isp.dma1_output, &cfg->isp.dma1_output); in __fimc_is_hw_update_param()
119 __hw_param_copy(&par->isp.dma2_output, &cfg->isp.dma2_output); in __fimc_is_hw_update_param()
123 __hw_param_copy(&par->drc.control, &cfg->drc.control); in __fimc_is_hw_update_param()
127 __hw_param_copy(&par->drc.otf_input, &cfg->drc.otf_input); in __fimc_is_hw_update_param()
131 __hw_param_copy(&par->drc.dma_input, &cfg->drc.dma_input); in __fimc_is_hw_update_param()
135 __hw_param_copy(&par->drc.otf_output, &cfg->drc.otf_output); in __fimc_is_hw_update_param()
139 __hw_param_copy(&par->fd.control, &cfg->fd.control); in __fimc_is_hw_update_param()
143 __hw_param_copy(&par->fd.otf_input, &cfg->fd.otf_input); in __fimc_is_hw_update_param()
147 __hw_param_copy(&par->fd.dma_input, &cfg->fd.dma_input); in __fimc_is_hw_update_param()
151 __hw_param_copy(&par->fd.config, &cfg->fd.config); in __fimc_is_hw_update_param()
155 return -EINVAL; in __fimc_is_hw_update_param()
158 return 0; in __fimc_is_hw_update_param()
163 struct chain_config *config = &is->config[is->config_index]; in __get_pending_param_count()
167 spin_lock_irqsave(&is->slock, flags); in __get_pending_param_count()
168 count = hweight32(config->p_region_index[0]); in __get_pending_param_count()
169 count += hweight32(config->p_region_index[1]); in __get_pending_param_count()
170 spin_unlock_irqrestore(&is->slock, flags); in __get_pending_param_count()
178 int i, id, ret = 0; in __is_hw_update_params()
180 id = is->config_index; in __is_hw_update_params()
181 p_index = &is->config[id].p_region_index[0]; in __is_hw_update_params()
209 unsigned int index = is->config_index; in __is_set_frame_size()
210 struct isp_param *isp; in __is_set_frame_size() local
214 isp = &is->config[index].isp; in __is_set_frame_size()
215 drc = &is->config[index].drc; in __is_set_frame_size()
216 fd = &is->config[index].fd; in __is_set_frame_size()
218 /* Update isp size info (OTF only) */ in __is_set_frame_size()
219 isp->otf_input.width = mf->width; in __is_set_frame_size()
220 isp->otf_input.height = mf->height; in __is_set_frame_size()
221 isp->otf_output.width = mf->width; in __is_set_frame_size()
222 isp->otf_output.height = mf->height; in __is_set_frame_size()
224 drc->otf_input.width = mf->width; in __is_set_frame_size()
225 drc->otf_input.height = mf->height; in __is_set_frame_size()
226 drc->otf_output.width = mf->width; in __is_set_frame_size()
227 drc->otf_output.height = mf->height; in __is_set_frame_size()
229 fd->otf_input.width = mf->width; in __is_set_frame_size()
230 fd->otf_input.height = mf->height; in __is_set_frame_size()
233 &is->config[index].p_region_index[0])) in __is_set_frame_size()
246 switch (is->sensor->drvdata->id) { in fimc_is_hw_get_sensor_max_framerate()
256 unsigned int index = is->config_index; in __is_set_sensor()
258 struct isp_param *isp; in __is_set_sensor() local
260 sensor = &is->config[index].sensor; in __is_set_sensor()
261 isp = &is->config[index].isp; in __is_set_sensor()
263 if (fps == 0) { in __is_set_sensor()
264 sensor->frame_rate.frame_rate = in __is_set_sensor()
266 isp->otf_input.frametime_min = 0; in __is_set_sensor()
267 isp->otf_input.frametime_max = 66666; in __is_set_sensor()
269 sensor->frame_rate.frame_rate = fps; in __is_set_sensor()
270 isp->otf_input.frametime_min = 0; in __is_set_sensor()
271 isp->otf_input.frametime_max = (u32)1000000 / fps; in __is_set_sensor()
280 struct isp_param *isp; in __is_set_init_isp_aa() local
282 isp = &is->config[is->config_index].isp; in __is_set_init_isp_aa()
284 isp->aa.cmd = ISP_AA_COMMAND_START; in __is_set_init_isp_aa()
285 isp->aa.target = ISP_AA_TARGET_AF | ISP_AA_TARGET_AE | in __is_set_init_isp_aa()
287 isp->aa.mode = 0; in __is_set_init_isp_aa()
288 isp->aa.scene = 0; in __is_set_init_isp_aa()
289 isp->aa.sleep = 0; in __is_set_init_isp_aa()
290 isp->aa.face = 0; in __is_set_init_isp_aa()
291 isp->aa.touch_x = 0; in __is_set_init_isp_aa()
292 isp->aa.touch_y = 0; in __is_set_init_isp_aa()
293 isp->aa.manual_af_setting = 0; in __is_set_init_isp_aa()
294 isp->aa.err = ISP_AF_ERROR_NONE; in __is_set_init_isp_aa()
301 unsigned int index = is->config_index; in __is_set_isp_flash()
302 struct isp_param *isp = &is->config[index].isp; in __is_set_isp_flash() local
304 isp->flash.cmd = cmd; in __is_set_isp_flash()
305 isp->flash.redeye = redeye; in __is_set_isp_flash()
306 isp->flash.err = ISP_FLASH_ERROR_NONE; in __is_set_isp_flash()
313 unsigned int index = is->config_index; in __is_set_isp_awb()
314 struct isp_param *isp; in __is_set_isp_awb() local
316 isp = &is->config[index].isp; in __is_set_isp_awb()
318 isp->awb.cmd = cmd; in __is_set_isp_awb()
319 isp->awb.illumination = val; in __is_set_isp_awb()
320 isp->awb.err = ISP_AWB_ERROR_NONE; in __is_set_isp_awb()
327 unsigned int index = is->config_index; in __is_set_isp_effect()
328 struct isp_param *isp; in __is_set_isp_effect() local
330 isp = &is->config[index].isp; in __is_set_isp_effect()
332 isp->effect.cmd = cmd; in __is_set_isp_effect()
333 isp->effect.err = ISP_IMAGE_EFFECT_ERROR_NONE; in __is_set_isp_effect()
340 unsigned int index = is->config_index; in __is_set_isp_iso()
341 struct isp_param *isp; in __is_set_isp_iso() local
343 isp = &is->config[index].isp; in __is_set_isp_iso()
345 isp->iso.cmd = cmd; in __is_set_isp_iso()
346 isp->iso.value = val; in __is_set_isp_iso()
347 isp->iso.err = ISP_ISO_ERROR_NONE; in __is_set_isp_iso()
354 unsigned int index = is->config_index; in __is_set_isp_adjust()
356 struct isp_param *isp; in __is_set_isp_adjust() local
358 p_index = &is->config[index].p_region_index[0]; in __is_set_isp_adjust()
359 isp = &is->config[index].isp; in __is_set_isp_adjust()
363 isp->adjust.contrast = val; in __is_set_isp_adjust()
366 isp->adjust.saturation = val; in __is_set_isp_adjust()
369 isp->adjust.sharpness = val; in __is_set_isp_adjust()
372 isp->adjust.exposure = val; in __is_set_isp_adjust()
375 isp->adjust.brightness = val; in __is_set_isp_adjust()
378 isp->adjust.hue = val; in __is_set_isp_adjust()
381 isp->adjust.contrast = 0; in __is_set_isp_adjust()
382 isp->adjust.saturation = 0; in __is_set_isp_adjust()
383 isp->adjust.sharpness = 0; in __is_set_isp_adjust()
384 isp->adjust.exposure = 0; in __is_set_isp_adjust()
385 isp->adjust.brightness = 0; in __is_set_isp_adjust()
386 isp->adjust.hue = 0; in __is_set_isp_adjust()
391 isp->adjust.cmd = cmd; in __is_set_isp_adjust()
392 isp->adjust.err = ISP_ADJUST_ERROR_NONE; in __is_set_isp_adjust()
395 isp->adjust.cmd |= cmd; in __is_set_isp_adjust()
401 unsigned int index = is->config_index; in __is_set_isp_metering()
402 struct isp_param *isp; in __is_set_isp_metering() local
405 p_index = &is->config[index].p_region_index[0]; in __is_set_isp_metering()
406 isp = &is->config[index].isp; in __is_set_isp_metering()
410 isp->metering.cmd = val; in __is_set_isp_metering()
413 isp->metering.win_pos_x = val; in __is_set_isp_metering()
416 isp->metering.win_pos_y = val; in __is_set_isp_metering()
419 isp->metering.win_width = val; in __is_set_isp_metering()
422 isp->metering.win_height = val; in __is_set_isp_metering()
429 isp->metering.err = ISP_METERING_ERROR_NONE; in __is_set_isp_metering()
436 unsigned int index = is->config_index; in __is_set_isp_afc()
437 struct isp_param *isp; in __is_set_isp_afc() local
439 isp = &is->config[index].isp; in __is_set_isp_afc()
441 isp->afc.cmd = cmd; in __is_set_isp_afc()
442 isp->afc.manual = val; in __is_set_isp_afc()
443 isp->afc.err = ISP_AFC_ERROR_NONE; in __is_set_isp_afc()
450 unsigned int index = is->config_index; in __is_set_drc_control()
453 drc = &is->config[index].drc; in __is_set_drc_control()
455 drc->control.bypass = val; in __is_set_drc_control()
462 unsigned int index = is->config_index; in __is_set_fd_control()
466 p_index = &is->config[index].p_region_index[1]; in __is_set_fd_control()
467 fd = &is->config[index].fd; in __is_set_fd_control()
469 fd->control.cmd = val; in __is_set_fd_control()
471 if (!test_bit((PARAM_FD_CONFIG - 32), p_index)) in __is_set_fd_control()
477 unsigned int index = is->config_index; in __is_set_fd_config_maxface()
481 p_index = &is->config[index].p_region_index[1]; in __is_set_fd_config_maxface()
482 fd = &is->config[index].fd; in __is_set_fd_config_maxface()
484 fd->config.max_number = val; in __is_set_fd_config_maxface()
486 if (!test_bit((PARAM_FD_CONFIG - 32), p_index)) { in __is_set_fd_config_maxface()
487 fd->config.cmd = FD_CONFIG_COMMAND_MAXIMUM_NUMBER; in __is_set_fd_config_maxface()
488 fd->config.err = ERROR_FD_NONE; in __is_set_fd_config_maxface()
491 fd->config.cmd |= FD_CONFIG_COMMAND_MAXIMUM_NUMBER; in __is_set_fd_config_maxface()
497 unsigned int index = is->config_index; in __is_set_fd_config_rollangle()
501 p_index = &is->config[index].p_region_index[1]; in __is_set_fd_config_rollangle()
502 fd = &is->config[index].fd; in __is_set_fd_config_rollangle()
504 fd->config.roll_angle = val; in __is_set_fd_config_rollangle()
506 if (!test_bit((PARAM_FD_CONFIG - 32), p_index)) { in __is_set_fd_config_rollangle()
507 fd->config.cmd = FD_CONFIG_COMMAND_ROLL_ANGLE; in __is_set_fd_config_rollangle()
508 fd->config.err = ERROR_FD_NONE; in __is_set_fd_config_rollangle()
511 fd->config.cmd |= FD_CONFIG_COMMAND_ROLL_ANGLE; in __is_set_fd_config_rollangle()
517 unsigned int index = is->config_index; in __is_set_fd_config_yawangle()
521 p_index = &is->config[index].p_region_index[1]; in __is_set_fd_config_yawangle()
522 fd = &is->config[index].fd; in __is_set_fd_config_yawangle()
524 fd->config.yaw_angle = val; in __is_set_fd_config_yawangle()
526 if (!test_bit((PARAM_FD_CONFIG - 32), p_index)) { in __is_set_fd_config_yawangle()
527 fd->config.cmd = FD_CONFIG_COMMAND_YAW_ANGLE; in __is_set_fd_config_yawangle()
528 fd->config.err = ERROR_FD_NONE; in __is_set_fd_config_yawangle()
531 fd->config.cmd |= FD_CONFIG_COMMAND_YAW_ANGLE; in __is_set_fd_config_yawangle()
537 unsigned int index = is->config_index; in __is_set_fd_config_smilemode()
541 p_index = &is->config[index].p_region_index[1]; in __is_set_fd_config_smilemode()
542 fd = &is->config[index].fd; in __is_set_fd_config_smilemode()
544 fd->config.smile_mode = val; in __is_set_fd_config_smilemode()
546 if (!test_bit((PARAM_FD_CONFIG - 32), p_index)) { in __is_set_fd_config_smilemode()
547 fd->config.cmd = FD_CONFIG_COMMAND_SMILE_MODE; in __is_set_fd_config_smilemode()
548 fd->config.err = ERROR_FD_NONE; in __is_set_fd_config_smilemode()
551 fd->config.cmd |= FD_CONFIG_COMMAND_SMILE_MODE; in __is_set_fd_config_smilemode()
557 unsigned int index = is->config_index; in __is_set_fd_config_blinkmode()
561 p_index = &is->config[index].p_region_index[1]; in __is_set_fd_config_blinkmode()
562 fd = &is->config[index].fd; in __is_set_fd_config_blinkmode()
564 fd->config.blink_mode = val; in __is_set_fd_config_blinkmode()
566 if (!test_bit((PARAM_FD_CONFIG - 32), p_index)) { in __is_set_fd_config_blinkmode()
567 fd->config.cmd = FD_CONFIG_COMMAND_BLINK_MODE; in __is_set_fd_config_blinkmode()
568 fd->config.err = ERROR_FD_NONE; in __is_set_fd_config_blinkmode()
571 fd->config.cmd |= FD_CONFIG_COMMAND_BLINK_MODE; in __is_set_fd_config_blinkmode()
577 unsigned int index = is->config_index; in __is_set_fd_config_eyedetect()
581 p_index = &is->config[index].p_region_index[1]; in __is_set_fd_config_eyedetect()
582 fd = &is->config[index].fd; in __is_set_fd_config_eyedetect()
584 fd->config.eye_detect = val; in __is_set_fd_config_eyedetect()
586 if (!test_bit((PARAM_FD_CONFIG - 32), p_index)) { in __is_set_fd_config_eyedetect()
587 fd->config.cmd = FD_CONFIG_COMMAND_EYES_DETECT; in __is_set_fd_config_eyedetect()
588 fd->config.err = ERROR_FD_NONE; in __is_set_fd_config_eyedetect()
591 fd->config.cmd |= FD_CONFIG_COMMAND_EYES_DETECT; in __is_set_fd_config_eyedetect()
597 unsigned int index = is->config_index; in __is_set_fd_config_mouthdetect()
601 p_index = &is->config[index].p_region_index[1]; in __is_set_fd_config_mouthdetect()
602 fd = &is->config[index].fd; in __is_set_fd_config_mouthdetect()
604 fd->config.mouth_detect = val; in __is_set_fd_config_mouthdetect()
606 if (!test_bit((PARAM_FD_CONFIG - 32), p_index)) { in __is_set_fd_config_mouthdetect()
607 fd->config.cmd = FD_CONFIG_COMMAND_MOUTH_DETECT; in __is_set_fd_config_mouthdetect()
608 fd->config.err = ERROR_FD_NONE; in __is_set_fd_config_mouthdetect()
611 fd->config.cmd |= FD_CONFIG_COMMAND_MOUTH_DETECT; in __is_set_fd_config_mouthdetect()
617 unsigned int index = is->config_index; in __is_set_fd_config_orientation()
621 p_index = &is->config[index].p_region_index[1]; in __is_set_fd_config_orientation()
622 fd = &is->config[index].fd; in __is_set_fd_config_orientation()
624 fd->config.orientation = val; in __is_set_fd_config_orientation()
626 if (!test_bit((PARAM_FD_CONFIG - 32), p_index)) { in __is_set_fd_config_orientation()
627 fd->config.cmd = FD_CONFIG_COMMAND_ORIENTATION; in __is_set_fd_config_orientation()
628 fd->config.err = ERROR_FD_NONE; in __is_set_fd_config_orientation()
631 fd->config.cmd |= FD_CONFIG_COMMAND_ORIENTATION; in __is_set_fd_config_orientation()
637 unsigned int index = is->config_index; in __is_set_fd_config_orientation_val()
641 p_index = &is->config[index].p_region_index[1]; in __is_set_fd_config_orientation_val()
642 fd = &is->config[index].fd; in __is_set_fd_config_orientation_val()
644 fd->config.orientation_value = val; in __is_set_fd_config_orientation_val()
646 if (!test_bit((PARAM_FD_CONFIG - 32), p_index)) { in __is_set_fd_config_orientation_val()
647 fd->config.cmd = FD_CONFIG_COMMAND_ORIENTATION_VALUE; in __is_set_fd_config_orientation_val()
648 fd->config.err = ERROR_FD_NONE; in __is_set_fd_config_orientation_val()
651 fd->config.cmd |= FD_CONFIG_COMMAND_ORIENTATION_VALUE; in __is_set_fd_config_orientation_val()
658 struct isp_param *isp; in fimc_is_set_initial_params() local
664 index = is->config_index; in fimc_is_set_initial_params()
665 global = &is->config[index].global; in fimc_is_set_initial_params()
666 isp = &is->config[index].isp; in fimc_is_set_initial_params()
667 drc = &is->config[index].drc; in fimc_is_set_initial_params()
668 fd = &is->config[index].fd; in fimc_is_set_initial_params()
669 p_index = &is->config[index].p_region_index[0]; in fimc_is_set_initial_params()
672 global->shotmode.cmd = 1; in fimc_is_set_initial_params()
675 /* ISP */ in fimc_is_set_initial_params()
676 isp->control.cmd = CONTROL_COMMAND_START; in fimc_is_set_initial_params()
677 isp->control.bypass = CONTROL_BYPASS_DISABLE; in fimc_is_set_initial_params()
678 isp->control.err = CONTROL_ERROR_NONE; in fimc_is_set_initial_params()
681 isp->otf_input.cmd = OTF_INPUT_COMMAND_ENABLE; in fimc_is_set_initial_params()
683 isp->otf_input.width = DEFAULT_PREVIEW_STILL_WIDTH; in fimc_is_set_initial_params()
684 isp->otf_input.height = DEFAULT_PREVIEW_STILL_HEIGHT; in fimc_is_set_initial_params()
687 if (is->sensor->test_pattern) in fimc_is_set_initial_params()
688 isp->otf_input.format = OTF_INPUT_FORMAT_STRGEN_COLORBAR_BAYER; in fimc_is_set_initial_params()
690 isp->otf_input.format = OTF_INPUT_FORMAT_BAYER; in fimc_is_set_initial_params()
691 isp->otf_input.bitwidth = 10; in fimc_is_set_initial_params()
692 isp->otf_input.order = OTF_INPUT_ORDER_BAYER_GR_BG; in fimc_is_set_initial_params()
693 isp->otf_input.crop_offset_x = 0; in fimc_is_set_initial_params()
694 isp->otf_input.crop_offset_y = 0; in fimc_is_set_initial_params()
695 isp->otf_input.err = OTF_INPUT_ERROR_NONE; in fimc_is_set_initial_params()
697 isp->dma1_input.cmd = DMA_INPUT_COMMAND_DISABLE; in fimc_is_set_initial_params()
698 isp->dma1_input.width = 0; in fimc_is_set_initial_params()
699 isp->dma1_input.height = 0; in fimc_is_set_initial_params()
700 isp->dma1_input.format = 0; in fimc_is_set_initial_params()
701 isp->dma1_input.bitwidth = 0; in fimc_is_set_initial_params()
702 isp->dma1_input.plane = 0; in fimc_is_set_initial_params()
703 isp->dma1_input.order = 0; in fimc_is_set_initial_params()
704 isp->dma1_input.buffer_number = 0; in fimc_is_set_initial_params()
705 isp->dma1_input.width = 0; in fimc_is_set_initial_params()
706 isp->dma1_input.err = DMA_INPUT_ERROR_NONE; in fimc_is_set_initial_params()
709 isp->dma2_input.cmd = DMA_INPUT_COMMAND_DISABLE; in fimc_is_set_initial_params()
710 isp->dma2_input.width = 0; in fimc_is_set_initial_params()
711 isp->dma2_input.height = 0; in fimc_is_set_initial_params()
712 isp->dma2_input.format = 0; in fimc_is_set_initial_params()
713 isp->dma2_input.bitwidth = 0; in fimc_is_set_initial_params()
714 isp->dma2_input.plane = 0; in fimc_is_set_initial_params()
715 isp->dma2_input.order = 0; in fimc_is_set_initial_params()
716 isp->dma2_input.buffer_number = 0; in fimc_is_set_initial_params()
717 isp->dma2_input.width = 0; in fimc_is_set_initial_params()
718 isp->dma2_input.err = DMA_INPUT_ERROR_NONE; in fimc_is_set_initial_params()
721 isp->aa.cmd = ISP_AA_COMMAND_START; in fimc_is_set_initial_params()
722 isp->aa.target = ISP_AA_TARGET_AE | ISP_AA_TARGET_AWB; in fimc_is_set_initial_params()
730 __is_set_isp_awb(is, ISP_AWB_COMMAND_AUTO, 0); in fimc_is_set_initial_params()
736 __is_set_isp_iso(is, ISP_ISO_COMMAND_AUTO, 0); in fimc_is_set_initial_params()
739 __is_set_isp_adjust(is, ISP_ADJUST_COMMAND_MANUAL_CONTRAST, 0); in fimc_is_set_initial_params()
741 ISP_ADJUST_COMMAND_MANUAL_SATURATION, 0); in fimc_is_set_initial_params()
742 __is_set_isp_adjust(is, ISP_ADJUST_COMMAND_MANUAL_SHARPNESS, 0); in fimc_is_set_initial_params()
743 __is_set_isp_adjust(is, ISP_ADJUST_COMMAND_MANUAL_EXPOSURE, 0); in fimc_is_set_initial_params()
745 ISP_ADJUST_COMMAND_MANUAL_BRIGHTNESS, 0); in fimc_is_set_initial_params()
746 __is_set_isp_adjust(is, ISP_ADJUST_COMMAND_MANUAL_HUE, 0); in fimc_is_set_initial_params()
750 __is_set_isp_metering(is, 0, ISP_METERING_COMMAND_CENTER); in fimc_is_set_initial_params()
751 __is_set_isp_metering(is, 1, 0); in fimc_is_set_initial_params()
752 __is_set_isp_metering(is, 2, 0); in fimc_is_set_initial_params()
753 __is_set_isp_metering(is, 3, 0); in fimc_is_set_initial_params()
754 __is_set_isp_metering(is, 4, 0); in fimc_is_set_initial_params()
758 __is_set_isp_afc(is, ISP_AFC_COMMAND_AUTO, 0); in fimc_is_set_initial_params()
760 isp->otf_output.cmd = OTF_OUTPUT_COMMAND_ENABLE; in fimc_is_set_initial_params()
762 isp->otf_output.width = DEFAULT_PREVIEW_STILL_WIDTH; in fimc_is_set_initial_params()
763 isp->otf_output.height = DEFAULT_PREVIEW_STILL_HEIGHT; in fimc_is_set_initial_params()
766 isp->otf_output.format = OTF_OUTPUT_FORMAT_YUV444; in fimc_is_set_initial_params()
767 isp->otf_output.bitwidth = 12; in fimc_is_set_initial_params()
768 isp->otf_output.order = 0; in fimc_is_set_initial_params()
769 isp->otf_output.err = OTF_OUTPUT_ERROR_NONE; in fimc_is_set_initial_params()
772 isp->dma1_output.cmd = DMA_OUTPUT_COMMAND_DISABLE; in fimc_is_set_initial_params()
773 isp->dma1_output.width = 0; in fimc_is_set_initial_params()
774 isp->dma1_output.height = 0; in fimc_is_set_initial_params()
775 isp->dma1_output.format = 0; in fimc_is_set_initial_params()
776 isp->dma1_output.bitwidth = 0; in fimc_is_set_initial_params()
777 isp->dma1_output.plane = 0; in fimc_is_set_initial_params()
778 isp->dma1_output.order = 0; in fimc_is_set_initial_params()
779 isp->dma1_output.buffer_number = 0; in fimc_is_set_initial_params()
780 isp->dma1_output.buffer_address = 0; in fimc_is_set_initial_params()
781 isp->dma1_output.notify_dma_done = 0; in fimc_is_set_initial_params()
782 isp->dma1_output.dma_out_mask = 0; in fimc_is_set_initial_params()
783 isp->dma1_output.err = DMA_OUTPUT_ERROR_NONE; in fimc_is_set_initial_params()
788 isp->dma2_output.cmd = DMA_OUTPUT_COMMAND_DISABLE; in fimc_is_set_initial_params()
789 isp->dma2_output.width = 0; in fimc_is_set_initial_params()
790 isp->dma2_output.height = 0; in fimc_is_set_initial_params()
791 isp->dma2_output.format = 0; in fimc_is_set_initial_params()
792 isp->dma2_output.bitwidth = 0; in fimc_is_set_initial_params()
793 isp->dma2_output.plane = 0; in fimc_is_set_initial_params()
794 isp->dma2_output.order = 0; in fimc_is_set_initial_params()
795 isp->dma2_output.buffer_number = 0; in fimc_is_set_initial_params()
796 isp->dma2_output.buffer_address = 0; in fimc_is_set_initial_params()
797 isp->dma2_output.notify_dma_done = 0; in fimc_is_set_initial_params()
798 isp->dma2_output.dma_out_mask = 0; in fimc_is_set_initial_params()
799 isp->dma2_output.err = DMA_OUTPUT_ERROR_NONE; in fimc_is_set_initial_params()
805 if (is->config_index == 0) in fimc_is_set_initial_params()
806 __is_set_sensor(is, 0); in fimc_is_set_initial_params()
810 drc->control.cmd = CONTROL_COMMAND_START; in fimc_is_set_initial_params()
813 drc->otf_input.cmd = OTF_INPUT_COMMAND_ENABLE; in fimc_is_set_initial_params()
815 drc->otf_input.width = DEFAULT_PREVIEW_STILL_WIDTH; in fimc_is_set_initial_params()
816 drc->otf_input.height = DEFAULT_PREVIEW_STILL_HEIGHT; in fimc_is_set_initial_params()
819 drc->otf_input.format = OTF_INPUT_FORMAT_YUV444; in fimc_is_set_initial_params()
820 drc->otf_input.bitwidth = 12; in fimc_is_set_initial_params()
821 drc->otf_input.order = 0; in fimc_is_set_initial_params()
822 drc->otf_input.err = OTF_INPUT_ERROR_NONE; in fimc_is_set_initial_params()
824 drc->dma_input.cmd = DMA_INPUT_COMMAND_DISABLE; in fimc_is_set_initial_params()
825 drc->dma_input.width = 0; in fimc_is_set_initial_params()
826 drc->dma_input.height = 0; in fimc_is_set_initial_params()
827 drc->dma_input.format = 0; in fimc_is_set_initial_params()
828 drc->dma_input.bitwidth = 0; in fimc_is_set_initial_params()
829 drc->dma_input.plane = 0; in fimc_is_set_initial_params()
830 drc->dma_input.order = 0; in fimc_is_set_initial_params()
831 drc->dma_input.buffer_number = 0; in fimc_is_set_initial_params()
832 drc->dma_input.width = 0; in fimc_is_set_initial_params()
833 drc->dma_input.err = DMA_INPUT_ERROR_NONE; in fimc_is_set_initial_params()
836 drc->otf_output.cmd = OTF_OUTPUT_COMMAND_ENABLE; in fimc_is_set_initial_params()
838 drc->otf_output.width = DEFAULT_PREVIEW_STILL_WIDTH; in fimc_is_set_initial_params()
839 drc->otf_output.height = DEFAULT_PREVIEW_STILL_HEIGHT; in fimc_is_set_initial_params()
842 drc->otf_output.format = OTF_OUTPUT_FORMAT_YUV444; in fimc_is_set_initial_params()
843 drc->otf_output.bitwidth = 8; in fimc_is_set_initial_params()
844 drc->otf_output.order = 0; in fimc_is_set_initial_params()
845 drc->otf_output.err = OTF_OUTPUT_ERROR_NONE; in fimc_is_set_initial_params()
849 fd->control.bypass = CONTROL_BYPASS_DISABLE; in fimc_is_set_initial_params()
851 fd->otf_input.cmd = OTF_INPUT_COMMAND_ENABLE; in fimc_is_set_initial_params()
853 fd->otf_input.width = DEFAULT_PREVIEW_STILL_WIDTH; in fimc_is_set_initial_params()
854 fd->otf_input.height = DEFAULT_PREVIEW_STILL_HEIGHT; in fimc_is_set_initial_params()
858 fd->otf_input.format = OTF_INPUT_FORMAT_YUV444; in fimc_is_set_initial_params()
859 fd->otf_input.bitwidth = 8; in fimc_is_set_initial_params()
860 fd->otf_input.order = 0; in fimc_is_set_initial_params()
861 fd->otf_input.err = OTF_INPUT_ERROR_NONE; in fimc_is_set_initial_params()
863 fd->dma_input.cmd = DMA_INPUT_COMMAND_DISABLE; in fimc_is_set_initial_params()
864 fd->dma_input.width = 0; in fimc_is_set_initial_params()
865 fd->dma_input.height = 0; in fimc_is_set_initial_params()
866 fd->dma_input.format = 0; in fimc_is_set_initial_params()
867 fd->dma_input.bitwidth = 0; in fimc_is_set_initial_params()
868 fd->dma_input.plane = 0; in fimc_is_set_initial_params()
869 fd->dma_input.order = 0; in fimc_is_set_initial_params()
870 fd->dma_input.buffer_number = 0; in fimc_is_set_initial_params()
871 fd->dma_input.width = 0; in fimc_is_set_initial_params()
872 fd->dma_input.err = DMA_INPUT_ERROR_NONE; in fimc_is_set_initial_params()
883 __is_set_fd_config_orientation_val(is, 0); in fimc_is_set_initial_params()