Lines Matching refs:is
91 void fimc_isp_irq_handler(struct fimc_is *is) in fimc_isp_irq_handler() argument
93 is->i2h_cmd.args[0] = mcuctl_read(is, MCUCTL_REG_ISSR(20)); in fimc_isp_irq_handler()
94 is->i2h_cmd.args[1] = mcuctl_read(is, MCUCTL_REG_ISSR(21)); in fimc_isp_irq_handler()
96 fimc_is_fw_clear_irq1(is, FIMC_IS_INT_FRAME_DONE_ISP); in fimc_isp_irq_handler()
97 fimc_isp_video_irq_handler(is); in fimc_isp_irq_handler()
99 wake_up(&is->irq_queue); in fimc_isp_irq_handler()
204 struct fimc_is *is = fimc_isp_to_is(isp); in fimc_isp_subdev_set_fmt() local
242 __is_set_frame_size(is, &isp->src_fmt); in fimc_isp_subdev_set_fmt()
258 struct fimc_is *is = fimc_isp_to_is(isp); in fimc_isp_subdev_s_stream() local
263 if (!test_bit(IS_ST_INIT_DONE, &is->state)) in fimc_isp_subdev_s_stream()
269 if (__get_pending_param_count(is)) { in fimc_isp_subdev_s_stream()
270 ret = fimc_is_itf_s_param(is, true); in fimc_isp_subdev_s_stream()
275 isp_dbg(1, sd, "changing mode to %d\n", is->config_index); in fimc_isp_subdev_s_stream()
277 ret = fimc_is_itf_mode_change(is); in fimc_isp_subdev_s_stream()
281 clear_bit(IS_ST_STREAM_ON, &is->state); in fimc_isp_subdev_s_stream()
282 fimc_is_hw_stream_on(is); in fimc_isp_subdev_s_stream()
283 ret = fimc_is_wait_event(is, IS_ST_STREAM_ON, 1, in fimc_isp_subdev_s_stream()
290 clear_bit(IS_ST_STREAM_OFF, &is->state); in fimc_isp_subdev_s_stream()
291 fimc_is_hw_stream_off(is); in fimc_isp_subdev_s_stream()
292 ret = fimc_is_wait_event(is, IS_ST_STREAM_OFF, 1, in fimc_isp_subdev_s_stream()
298 is->setfile.sub_index = 0; in fimc_isp_subdev_s_stream()
307 struct fimc_is *is = fimc_isp_to_is(isp); in fimc_isp_subdev_s_power() local
313 ret = pm_runtime_get_sync(&is->pdev->dev); in fimc_isp_subdev_s_power()
316 set_bit(IS_ST_PWR_ON, &is->state); in fimc_isp_subdev_s_power()
318 ret = fimc_is_start_firmware(is); in fimc_isp_subdev_s_power()
321 pm_runtime_put(&is->pdev->dev); in fimc_isp_subdev_s_power()
324 set_bit(IS_ST_PWR_SUBIP_ON, &is->state); in fimc_isp_subdev_s_power()
326 ret = fimc_is_hw_initialize(is); in fimc_isp_subdev_s_power()
329 if (!test_bit(IS_ST_PWR_ON, &is->state)) { in fimc_isp_subdev_s_power()
330 fimc_is_hw_close_sensor(is, 0); in fimc_isp_subdev_s_power()
332 ret = fimc_is_wait_event(is, IS_ST_OPEN_SENSOR, 0, in fimc_isp_subdev_s_power()
341 if (test_bit(IS_ST_PWR_SUBIP_ON, &is->state)) { in fimc_isp_subdev_s_power()
342 fimc_is_hw_subip_power_off(is); in fimc_isp_subdev_s_power()
343 ret = fimc_is_wait_event(is, IS_ST_PWR_SUBIP_ON, 0, in fimc_isp_subdev_s_power()
351 fimc_is_cpu_set_power(is, 0); in fimc_isp_subdev_s_power()
352 pm_runtime_put_sync(&is->pdev->dev); in fimc_isp_subdev_s_power()
354 clear_bit(IS_ST_PWR_ON, &is->state); in fimc_isp_subdev_s_power()
355 clear_bit(IS_ST_INIT_DONE, &is->state); in fimc_isp_subdev_s_power()
356 is->state = 0; in fimc_isp_subdev_s_power()
357 is->config[is->config_index].p_region_index[0] = 0; in fimc_isp_subdev_s_power()
358 is->config[is->config_index].p_region_index[1] = 0; in fimc_isp_subdev_s_power()
359 set_bit(IS_ST_IDLE, &is->state); in fimc_isp_subdev_s_power()
442 static int __ctrl_set_white_balance(struct fimc_is *is, int value) in __ctrl_set_white_balance() argument
446 __is_set_isp_awb(is, ISP_AWB_COMMAND_AUTO, 0); in __ctrl_set_white_balance()
449 __is_set_isp_awb(is, ISP_AWB_COMMAND_ILLUMINATION, in __ctrl_set_white_balance()
453 __is_set_isp_awb(is, ISP_AWB_COMMAND_ILLUMINATION, in __ctrl_set_white_balance()
457 __is_set_isp_awb(is, ISP_AWB_COMMAND_ILLUMINATION, in __ctrl_set_white_balance()
461 __is_set_isp_awb(is, ISP_AWB_COMMAND_ILLUMINATION, in __ctrl_set_white_balance()
471 static int __ctrl_set_aewb_lock(struct fimc_is *is, in __ctrl_set_aewb_lock() argument
476 struct isp_param *isp = &is->is_p_region->parameter.isp; in __ctrl_set_aewb_lock()
482 fimc_is_set_param_bit(is, PARAM_ISP_AA); in __ctrl_set_aewb_lock()
483 is->af.ae_lock_state = ae_lock; in __ctrl_set_aewb_lock()
486 ret = fimc_is_itf_s_param(is, false); in __ctrl_set_aewb_lock()
493 fimc_is_set_param_bit(is, PARAM_ISP_AA); in __ctrl_set_aewb_lock()
494 is->af.awb_lock_state = awb_lock; in __ctrl_set_aewb_lock()
497 return fimc_is_itf_s_param(is, false); in __ctrl_set_aewb_lock()
505 static int __ctrl_set_iso(struct fimc_is *is, int value) in __ctrl_set_iso() argument
510 __is_set_isp_iso(is, ISP_ISO_COMMAND_AUTO, 0); in __ctrl_set_iso()
513 idx = is->isp.ctrls.iso->val; in __ctrl_set_iso()
518 __is_set_isp_iso(is, ISP_ISO_COMMAND_MANUAL, iso); in __ctrl_set_iso()
522 static int __ctrl_set_metering(struct fimc_is *is, unsigned int value) in __ctrl_set_metering() argument
543 __is_set_isp_metering(is, IS_METERING_CONFIG_CMD, val); in __ctrl_set_metering()
547 static int __ctrl_set_afc(struct fimc_is *is, int value) in __ctrl_set_afc() argument
551 __is_set_isp_afc(is, ISP_AFC_COMMAND_DISABLE, 0); in __ctrl_set_afc()
554 __is_set_isp_afc(is, ISP_AFC_COMMAND_MANUAL, 50); in __ctrl_set_afc()
557 __is_set_isp_afc(is, ISP_AFC_COMMAND_MANUAL, 60); in __ctrl_set_afc()
560 __is_set_isp_afc(is, ISP_AFC_COMMAND_AUTO, 0); in __ctrl_set_afc()
569 static int __ctrl_set_image_effect(struct fimc_is *is, int value) in __ctrl_set_image_effect() argument
584 __is_set_isp_effect(is, effects[i][1]); in __ctrl_set_image_effect()
594 struct fimc_is *is = fimc_isp_to_is(isp); in fimc_is_s_ctrl() local
600 __is_set_isp_adjust(is, ISP_ADJUST_COMMAND_MANUAL_CONTRAST, in fimc_is_s_ctrl()
605 __is_set_isp_adjust(is, ISP_ADJUST_COMMAND_MANUAL_SATURATION, in fimc_is_s_ctrl()
610 __is_set_isp_adjust(is, ISP_ADJUST_COMMAND_MANUAL_SHARPNESS, in fimc_is_s_ctrl()
615 __is_set_isp_adjust(is, ISP_ADJUST_COMMAND_MANUAL_EXPOSURE, in fimc_is_s_ctrl()
620 __is_set_isp_adjust(is, ISP_ADJUST_COMMAND_MANUAL_BRIGHTNESS, in fimc_is_s_ctrl()
625 __is_set_isp_adjust(is, ISP_ADJUST_COMMAND_MANUAL_HUE, in fimc_is_s_ctrl()
630 ret = __ctrl_set_metering(is, ctrl->val); in fimc_is_s_ctrl()
634 ret = __ctrl_set_white_balance(is, ctrl->val); in fimc_is_s_ctrl()
638 ret = __ctrl_set_aewb_lock(is, ctrl); in fimc_is_s_ctrl()
643 ret = __ctrl_set_iso(is, ctrl->val); in fimc_is_s_ctrl()
647 ret = __ctrl_set_afc(is, ctrl->val); in fimc_is_s_ctrl()
651 __ctrl_set_image_effect(is, ctrl->val); in fimc_is_s_ctrl()
665 if (set_param && test_bit(IS_ST_STREAM_ON, &is->state)) in fimc_is_s_ctrl()
666 return fimc_is_itf_s_param(is, true); in fimc_is_s_ctrl()
677 struct fimc_is *is = fimc_isp_to_is(isp); in __isp_subdev_set_default_format() local
688 __is_set_frame_size(is, &isp->src_fmt); in __isp_subdev_set_default_format()