Lines Matching refs: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);
239 __is_set_frame_size(is, &isp->src_fmt);
255 struct fimc_is *is = fimc_isp_to_is(isp);
260 if (!test_bit(IS_ST_INIT_DONE, &is->state))
266 if (__get_pending_param_count(is)) {
267 ret = fimc_is_itf_s_param(is, true);
272 isp_dbg(1, sd, "changing mode to %d\n", is->config_index);
274 ret = fimc_is_itf_mode_change(is);
278 clear_bit(IS_ST_STREAM_ON, &is->state);
279 fimc_is_hw_stream_on(is);
280 ret = fimc_is_wait_event(is, IS_ST_STREAM_ON, 1,
287 clear_bit(IS_ST_STREAM_OFF, &is->state);
288 fimc_is_hw_stream_off(is);
289 ret = fimc_is_wait_event(is, IS_ST_STREAM_OFF, 1,
295 is->setfile.sub_index = 0;
304 struct fimc_is *is = fimc_isp_to_is(isp);
310 ret = pm_runtime_resume_and_get(&is->pdev->dev);
314 set_bit(IS_ST_PWR_ON, &is->state);
316 ret = fimc_is_start_firmware(is);
319 pm_runtime_put(&is->pdev->dev);
322 set_bit(IS_ST_PWR_SUBIP_ON, &is->state);
324 ret = fimc_is_hw_initialize(is);
327 if (!test_bit(IS_ST_PWR_ON, &is->state)) {
328 fimc_is_hw_close_sensor(is, 0);
330 ret = fimc_is_wait_event(is, IS_ST_OPEN_SENSOR, 0,
339 if (test_bit(IS_ST_PWR_SUBIP_ON, &is->state)) {
340 fimc_is_hw_subip_power_off(is);
341 ret = fimc_is_wait_event(is, IS_ST_PWR_SUBIP_ON, 0,
349 fimc_is_cpu_set_power(is, 0);
350 pm_runtime_put_sync(&is->pdev->dev);
352 clear_bit(IS_ST_PWR_ON, &is->state);
353 clear_bit(IS_ST_INIT_DONE, &is->state);
354 is->state = 0;
355 is->config[is->config_index].p_region_index[0] = 0;
356 is->config[is->config_index].p_region_index[1] = 0;
357 set_bit(IS_ST_IDLE, &is->state);
442 static int __ctrl_set_white_balance(struct fimc_is *is, int value)
446 __is_set_isp_awb(is, ISP_AWB_COMMAND_AUTO, 0);
449 __is_set_isp_awb(is, ISP_AWB_COMMAND_ILLUMINATION,
453 __is_set_isp_awb(is, ISP_AWB_COMMAND_ILLUMINATION,
457 __is_set_isp_awb(is, ISP_AWB_COMMAND_ILLUMINATION,
461 __is_set_isp_awb(is, ISP_AWB_COMMAND_ILLUMINATION,
471 static int __ctrl_set_aewb_lock(struct fimc_is *is,
476 struct isp_param *isp = &is->is_p_region->parameter.isp;
482 fimc_is_set_param_bit(is, PARAM_ISP_AA);
483 is->af.ae_lock_state = ae_lock;
486 ret = fimc_is_itf_s_param(is, false);
493 fimc_is_set_param_bit(is, PARAM_ISP_AA);
494 is->af.awb_lock_state = awb_lock;
497 return fimc_is_itf_s_param(is, false);
505 static int __ctrl_set_iso(struct fimc_is *is, int value)
510 __is_set_isp_iso(is, ISP_ISO_COMMAND_AUTO, 0);
513 idx = is->isp.ctrls.iso->val;
518 __is_set_isp_iso(is, ISP_ISO_COMMAND_MANUAL, iso);
522 static int __ctrl_set_metering(struct fimc_is *is, unsigned int value)
543 __is_set_isp_metering(is, IS_METERING_CONFIG_CMD, val);
547 static int __ctrl_set_afc(struct fimc_is *is, int value)
551 __is_set_isp_afc(is, ISP_AFC_COMMAND_DISABLE, 0);
554 __is_set_isp_afc(is, ISP_AFC_COMMAND_MANUAL, 50);
557 __is_set_isp_afc(is, ISP_AFC_COMMAND_MANUAL, 60);
560 __is_set_isp_afc(is, ISP_AFC_COMMAND_AUTO, 0);
569 static int __ctrl_set_image_effect(struct fimc_is *is, int value)
584 __is_set_isp_effect(is, effects[i][1]);
594 struct fimc_is *is = fimc_isp_to_is(isp);
600 __is_set_isp_adjust(is, ISP_ADJUST_COMMAND_MANUAL_CONTRAST,
605 __is_set_isp_adjust(is, ISP_ADJUST_COMMAND_MANUAL_SATURATION,
610 __is_set_isp_adjust(is, ISP_ADJUST_COMMAND_MANUAL_SHARPNESS,
615 __is_set_isp_adjust(is, ISP_ADJUST_COMMAND_MANUAL_EXPOSURE,
620 __is_set_isp_adjust(is, ISP_ADJUST_COMMAND_MANUAL_BRIGHTNESS,
625 __is_set_isp_adjust(is, ISP_ADJUST_COMMAND_MANUAL_HUE,
630 ret = __ctrl_set_metering(is, ctrl->val);
634 ret = __ctrl_set_white_balance(is, ctrl->val);
638 ret = __ctrl_set_aewb_lock(is, ctrl);
643 ret = __ctrl_set_iso(is, ctrl->val);
647 ret = __ctrl_set_afc(is, ctrl->val);
651 __ctrl_set_image_effect(is, ctrl->val);
665 if (set_param && test_bit(IS_ST_STREAM_ON, &is->state))
666 return fimc_is_itf_s_param(is, true);
677 struct fimc_is *is = fimc_isp_to_is(isp);
688 __is_set_frame_size(is, &isp->src_fmt);