Lines Matching defs:is

26 #include "fimc-is-command.h"
27 #include "fimc-is-param.h"
28 #include "fimc-is-regs.h"
29 #include "fimc-is.h"
85 void fimc_isp_irq_handler(struct fimc_is *is)
87 is->i2h_cmd.args[0] = mcuctl_read(is, MCUCTL_REG_ISSR(20));
88 is->i2h_cmd.args[1] = mcuctl_read(is, MCUCTL_REG_ISSR(21));
90 fimc_is_fw_clear_irq1(is, FIMC_IS_INT_FRAME_DONE_ISP);
91 fimc_isp_video_irq_handler(is);
93 wake_up(&is->irq_queue);
198 struct fimc_is *is = fimc_isp_to_is(isp);
236 __is_set_frame_size(is, &isp->src_fmt);
252 struct fimc_is *is = fimc_isp_to_is(isp);
257 if (!test_bit(IS_ST_INIT_DONE, &is->state))
263 if (__get_pending_param_count(is)) {
264 ret = fimc_is_itf_s_param(is, true);
269 isp_dbg(1, sd, "changing mode to %d\n", is->config_index);
271 ret = fimc_is_itf_mode_change(is);
275 clear_bit(IS_ST_STREAM_ON, &is->state);
276 fimc_is_hw_stream_on(is);
277 ret = fimc_is_wait_event(is, IS_ST_STREAM_ON, 1,
284 clear_bit(IS_ST_STREAM_OFF, &is->state);
285 fimc_is_hw_stream_off(is);
286 ret = fimc_is_wait_event(is, IS_ST_STREAM_OFF, 1,
292 is->setfile.sub_index = 0;
301 struct fimc_is *is = fimc_isp_to_is(isp);
307 ret = pm_runtime_resume_and_get(&is->pdev->dev);
311 set_bit(IS_ST_PWR_ON, &is->state);
313 ret = fimc_is_start_firmware(is);
316 pm_runtime_put(&is->pdev->dev);
319 set_bit(IS_ST_PWR_SUBIP_ON, &is->state);
321 ret = fimc_is_hw_initialize(is);
324 if (!test_bit(IS_ST_PWR_ON, &is->state)) {
325 fimc_is_hw_close_sensor(is, 0);
327 ret = fimc_is_wait_event(is, IS_ST_OPEN_SENSOR, 0,
336 if (test_bit(IS_ST_PWR_SUBIP_ON, &is->state)) {
337 fimc_is_hw_subip_power_off(is);
338 ret = fimc_is_wait_event(is, IS_ST_PWR_SUBIP_ON, 0,
346 fimc_is_cpu_set_power(is, 0);
347 pm_runtime_put_sync(&is->pdev->dev);
349 clear_bit(IS_ST_PWR_ON, &is->state);
350 clear_bit(IS_ST_INIT_DONE, &is->state);
351 is->state = 0;
352 is->config[is->config_index].p_region_index[0] = 0;
353 is->config[is->config_index].p_region_index[1] = 0;
354 set_bit(IS_ST_IDLE, &is->state);
437 static int __ctrl_set_white_balance(struct fimc_is *is, int value)
441 __is_set_isp_awb(is, ISP_AWB_COMMAND_AUTO, 0);
444 __is_set_isp_awb(is, ISP_AWB_COMMAND_ILLUMINATION,
448 __is_set_isp_awb(is, ISP_AWB_COMMAND_ILLUMINATION,
452 __is_set_isp_awb(is, ISP_AWB_COMMAND_ILLUMINATION,
456 __is_set_isp_awb(is, ISP_AWB_COMMAND_ILLUMINATION,
466 static int __ctrl_set_aewb_lock(struct fimc_is *is,
471 struct isp_param *isp = &is->is_p_region->parameter.isp;
477 fimc_is_set_param_bit(is, PARAM_ISP_AA);
478 is->af.ae_lock_state = ae_lock;
481 ret = fimc_is_itf_s_param(is, false);
488 fimc_is_set_param_bit(is, PARAM_ISP_AA);
489 is->af.awb_lock_state = awb_lock;
492 return fimc_is_itf_s_param(is, false);
500 static int __ctrl_set_iso(struct fimc_is *is, int value)
505 __is_set_isp_iso(is, ISP_ISO_COMMAND_AUTO, 0);
508 idx = is->isp.ctrls.iso->val;
513 __is_set_isp_iso(is, ISP_ISO_COMMAND_MANUAL, iso);
517 static int __ctrl_set_metering(struct fimc_is *is, unsigned int value)
538 __is_set_isp_metering(is, IS_METERING_CONFIG_CMD, val);
542 static int __ctrl_set_afc(struct fimc_is *is, int value)
546 __is_set_isp_afc(is, ISP_AFC_COMMAND_DISABLE, 0);
549 __is_set_isp_afc(is, ISP_AFC_COMMAND_MANUAL, 50);
552 __is_set_isp_afc(is, ISP_AFC_COMMAND_MANUAL, 60);
555 __is_set_isp_afc(is, ISP_AFC_COMMAND_AUTO, 0);
564 static int __ctrl_set_image_effect(struct fimc_is *is, int value)
579 __is_set_isp_effect(is, effects[i][1]);
589 struct fimc_is *is = fimc_isp_to_is(isp);
595 __is_set_isp_adjust(is, ISP_ADJUST_COMMAND_MANUAL_CONTRAST,
600 __is_set_isp_adjust(is, ISP_ADJUST_COMMAND_MANUAL_SATURATION,
605 __is_set_isp_adjust(is, ISP_ADJUST_COMMAND_MANUAL_SHARPNESS,
610 __is_set_isp_adjust(is, ISP_ADJUST_COMMAND_MANUAL_EXPOSURE,
615 __is_set_isp_adjust(is, ISP_ADJUST_COMMAND_MANUAL_BRIGHTNESS,
620 __is_set_isp_adjust(is, ISP_ADJUST_COMMAND_MANUAL_HUE,
625 ret = __ctrl_set_metering(is, ctrl->val);
629 ret = __ctrl_set_white_balance(is, ctrl->val);
633 ret = __ctrl_set_aewb_lock(is, ctrl);
638 ret = __ctrl_set_iso(is, ctrl->val);
642 ret = __ctrl_set_afc(is, ctrl->val);
646 __ctrl_set_image_effect(is, ctrl->val);
660 if (set_param && test_bit(IS_ST_STREAM_ON, &is->state))
661 return fimc_is_itf_s_param(is, true);
672 struct fimc_is *is = fimc_isp_to_is(isp);
683 __is_set_frame_size(is, &isp->src_fmt);