Lines Matching full:is

3  * Samsung EXYNOS4x12 FIMC-IS (Imaging Subsystem) driver
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"
38 static void __fimc_is_hw_update_param_global_shotmode(struct fimc_is *is) in __fimc_is_hw_update_param_global_shotmode() argument
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()
47 static void __fimc_is_hw_update_param_sensor_framerate(struct fimc_is *is) in __fimc_is_hw_update_param_sensor_framerate() argument
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()
56 int __fimc_is_hw_update_param(struct fimc_is *is, u32 offset) in __fimc_is_hw_update_param() argument
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()
161 unsigned int __get_pending_param_count(struct fimc_is *is) in __get_pending_param_count() argument
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()
170 spin_unlock_irqrestore(&is->slock, flags); in __get_pending_param_count()
175 int __is_hw_update_params(struct fimc_is *is) in __is_hw_update_params() argument
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()
184 __fimc_is_hw_update_param_global_shotmode(is); in __is_hw_update_params()
187 __fimc_is_hw_update_param_sensor_framerate(is); in __is_hw_update_params()
191 ret = __fimc_is_hw_update_param(is, i); in __is_hw_update_params()
196 ret = __fimc_is_hw_update_param(is, i); in __is_hw_update_params()
201 ret = __fimc_is_hw_update_param(is, i); in __is_hw_update_params()
207 void __is_set_frame_size(struct fimc_is *is, struct v4l2_mbus_framefmt *mf) in __is_set_frame_size() argument
209 unsigned int index = is->config_index; in __is_set_frame_size()
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()
233 &is->config[index].p_region_index[0])) in __is_set_frame_size()
237 fimc_is_set_param_bit(is, PARAM_ISP_OTF_INPUT); in __is_set_frame_size()
238 fimc_is_set_param_bit(is, PARAM_ISP_OTF_OUTPUT); in __is_set_frame_size()
239 fimc_is_set_param_bit(is, PARAM_DRC_OTF_INPUT); in __is_set_frame_size()
240 fimc_is_set_param_bit(is, PARAM_DRC_OTF_OUTPUT); in __is_set_frame_size()
241 fimc_is_set_param_bit(is, PARAM_FD_OTF_INPUT); in __is_set_frame_size()
244 int fimc_is_hw_get_sensor_max_framerate(struct fimc_is *is) in fimc_is_hw_get_sensor_max_framerate() argument
246 switch (is->sensor->drvdata->id) { in fimc_is_hw_get_sensor_max_framerate()
254 void __is_set_sensor(struct fimc_is *is, int fps) in __is_set_sensor() argument
256 unsigned int index = is->config_index; in __is_set_sensor()
260 sensor = &is->config[index].sensor; in __is_set_sensor()
261 isp = &is->config[index].isp; in __is_set_sensor()
265 fimc_is_hw_get_sensor_max_framerate(is); in __is_set_sensor()
274 fimc_is_set_param_bit(is, PARAM_SENSOR_FRAME_RATE); in __is_set_sensor()
275 fimc_is_set_param_bit(is, PARAM_ISP_OTF_INPUT); in __is_set_sensor()
278 static void __maybe_unused __is_set_init_isp_aa(struct fimc_is *is) in __is_set_init_isp_aa() argument
282 isp = &is->config[is->config_index].isp; in __is_set_init_isp_aa()
296 fimc_is_set_param_bit(is, PARAM_ISP_AA); in __is_set_init_isp_aa()
299 void __is_set_isp_flash(struct fimc_is *is, u32 cmd, u32 redeye) in __is_set_isp_flash() argument
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()
308 fimc_is_set_param_bit(is, PARAM_ISP_FLASH); in __is_set_isp_flash()
311 void __is_set_isp_awb(struct fimc_is *is, u32 cmd, u32 val) in __is_set_isp_awb() argument
313 unsigned int index = is->config_index; in __is_set_isp_awb()
316 isp = &is->config[index].isp; in __is_set_isp_awb()
322 fimc_is_set_param_bit(is, PARAM_ISP_AWB); in __is_set_isp_awb()
325 void __is_set_isp_effect(struct fimc_is *is, u32 cmd) in __is_set_isp_effect() argument
327 unsigned int index = is->config_index; in __is_set_isp_effect()
330 isp = &is->config[index].isp; in __is_set_isp_effect()
335 fimc_is_set_param_bit(is, PARAM_ISP_IMAGE_EFFECT); in __is_set_isp_effect()
338 void __is_set_isp_iso(struct fimc_is *is, u32 cmd, u32 val) in __is_set_isp_iso() argument
340 unsigned int index = is->config_index; in __is_set_isp_iso()
343 isp = &is->config[index].isp; in __is_set_isp_iso()
349 fimc_is_set_param_bit(is, PARAM_ISP_ISO); in __is_set_isp_iso()
352 void __is_set_isp_adjust(struct fimc_is *is, u32 cmd, u32 val) in __is_set_isp_adjust() argument
354 unsigned int index = is->config_index; in __is_set_isp_adjust()
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()
393 fimc_is_set_param_bit(is, PARAM_ISP_ADJUST); in __is_set_isp_adjust()
399 void __is_set_isp_metering(struct fimc_is *is, u32 id, u32 val) in __is_set_isp_metering() argument
401 unsigned int index = is->config_index; in __is_set_isp_metering()
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()
430 fimc_is_set_param_bit(is, PARAM_ISP_METERING); in __is_set_isp_metering()
434 void __is_set_isp_afc(struct fimc_is *is, u32 cmd, u32 val) in __is_set_isp_afc() argument
436 unsigned int index = is->config_index; in __is_set_isp_afc()
439 isp = &is->config[index].isp; in __is_set_isp_afc()
445 fimc_is_set_param_bit(is, PARAM_ISP_AFC); in __is_set_isp_afc()
448 void __is_set_drc_control(struct fimc_is *is, u32 val) in __is_set_drc_control() argument
450 unsigned int index = is->config_index; in __is_set_drc_control()
453 drc = &is->config[index].drc; in __is_set_drc_control()
457 fimc_is_set_param_bit(is, PARAM_DRC_CONTROL); in __is_set_drc_control()
460 void __is_set_fd_control(struct fimc_is *is, u32 val) in __is_set_fd_control() argument
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()
472 fimc_is_set_param_bit(is, PARAM_FD_CONTROL); in __is_set_fd_control()
475 void __is_set_fd_config_maxface(struct fimc_is *is, u32 val) in __is_set_fd_config_maxface() argument
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()
489 fimc_is_set_param_bit(is, PARAM_FD_CONFIG); in __is_set_fd_config_maxface()
495 void __is_set_fd_config_rollangle(struct fimc_is *is, u32 val) in __is_set_fd_config_rollangle() argument
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()
509 fimc_is_set_param_bit(is, PARAM_FD_CONFIG); in __is_set_fd_config_rollangle()
515 void __is_set_fd_config_yawangle(struct fimc_is *is, u32 val) in __is_set_fd_config_yawangle() argument
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()
529 fimc_is_set_param_bit(is, PARAM_FD_CONFIG); in __is_set_fd_config_yawangle()
535 void __is_set_fd_config_smilemode(struct fimc_is *is, u32 val) in __is_set_fd_config_smilemode() argument
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()
549 fimc_is_set_param_bit(is, PARAM_FD_CONFIG); in __is_set_fd_config_smilemode()
555 void __is_set_fd_config_blinkmode(struct fimc_is *is, u32 val) in __is_set_fd_config_blinkmode() argument
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()
569 fimc_is_set_param_bit(is, PARAM_FD_CONFIG); in __is_set_fd_config_blinkmode()
575 void __is_set_fd_config_eyedetect(struct fimc_is *is, u32 val) in __is_set_fd_config_eyedetect() argument
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()
589 fimc_is_set_param_bit(is, PARAM_FD_CONFIG); in __is_set_fd_config_eyedetect()
595 void __is_set_fd_config_mouthdetect(struct fimc_is *is, u32 val) in __is_set_fd_config_mouthdetect() argument
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()
609 fimc_is_set_param_bit(is, PARAM_FD_CONFIG); in __is_set_fd_config_mouthdetect()
615 void __is_set_fd_config_orientation(struct fimc_is *is, u32 val) in __is_set_fd_config_orientation() argument
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()
629 fimc_is_set_param_bit(is, PARAM_FD_CONFIG); in __is_set_fd_config_orientation()
635 void __is_set_fd_config_orientation_val(struct fimc_is *is, u32 val) in __is_set_fd_config_orientation_val() argument
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()
649 fimc_is_set_param_bit(is, PARAM_FD_CONFIG); in __is_set_fd_config_orientation_val()
655 void fimc_is_set_initial_params(struct fimc_is *is) in fimc_is_set_initial_params() argument
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()
673 fimc_is_set_param_bit(is, PARAM_GLOBAL_SHOTMODE); in fimc_is_set_initial_params()
679 fimc_is_set_param_bit(is, PARAM_ISP_CONTROL); in fimc_is_set_initial_params()
685 fimc_is_set_param_bit(is, PARAM_ISP_OTF_INPUT); in fimc_is_set_initial_params()
687 if (is->sensor->test_pattern) in fimc_is_set_initial_params()
707 fimc_is_set_param_bit(is, PARAM_ISP_DMA1_INPUT); in fimc_is_set_initial_params()
719 fimc_is_set_param_bit(is, PARAM_ISP_DMA2_INPUT); in fimc_is_set_initial_params()
723 fimc_is_set_param_bit(is, PARAM_ISP_AA); in fimc_is_set_initial_params()
726 __is_set_isp_flash(is, ISP_FLASH_COMMAND_DISABLE, in fimc_is_set_initial_params()
730 __is_set_isp_awb(is, ISP_AWB_COMMAND_AUTO, 0); in fimc_is_set_initial_params()
733 __is_set_isp_effect(is, ISP_IMAGE_EFFECT_DISABLE); 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()
740 __is_set_isp_adjust(is, 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()
744 __is_set_isp_adjust(is, 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()
764 fimc_is_set_param_bit(is, PARAM_ISP_OTF_OUTPUT); in fimc_is_set_initial_params()
784 fimc_is_set_param_bit(is, PARAM_ISP_DMA1_OUTPUT); in fimc_is_set_initial_params()
800 fimc_is_set_param_bit(is, PARAM_ISP_DMA2_OUTPUT); 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()
811 __is_set_drc_control(is, CONTROL_BYPASS_ENABLE); in fimc_is_set_initial_params()
817 fimc_is_set_param_bit(is, PARAM_DRC_OTF_INPUT); in fimc_is_set_initial_params()
834 fimc_is_set_param_bit(is, PARAM_DRC_DMA_INPUT); in fimc_is_set_initial_params()
840 fimc_is_set_param_bit(is, PARAM_DRC_OTF_OUTPUT); in fimc_is_set_initial_params()
848 __is_set_fd_control(is, CONTROL_COMMAND_STOP); in fimc_is_set_initial_params()
855 fimc_is_set_param_bit(is, PARAM_FD_OTF_INPUT); in fimc_is_set_initial_params()
873 fimc_is_set_param_bit(is, PARAM_FD_DMA_INPUT); in fimc_is_set_initial_params()
875 __is_set_fd_config_maxface(is, 5); in fimc_is_set_initial_params()
876 __is_set_fd_config_rollangle(is, FD_CONFIG_ROLL_ANGLE_FULL); in fimc_is_set_initial_params()
877 __is_set_fd_config_yawangle(is, FD_CONFIG_YAW_ANGLE_45_90); in fimc_is_set_initial_params()
878 __is_set_fd_config_smilemode(is, FD_CONFIG_SMILE_MODE_DISABLE); in fimc_is_set_initial_params()
879 __is_set_fd_config_blinkmode(is, FD_CONFIG_BLINK_MODE_DISABLE); in fimc_is_set_initial_params()
880 __is_set_fd_config_eyedetect(is, FD_CONFIG_EYES_DETECT_ENABLE); in fimc_is_set_initial_params()
881 __is_set_fd_config_mouthdetect(is, FD_CONFIG_MOUTH_DETECT_DISABLE); in fimc_is_set_initial_params()
882 __is_set_fd_config_orientation(is, FD_CONFIG_ORIENTATION_DISABLE); in fimc_is_set_initial_params()
883 __is_set_fd_config_orientation_val(is, 0); in fimc_is_set_initial_params()