Lines Matching refs:prev
152 preview_config_luma_enhancement(struct isp_prev_device *prev, in preview_config_luma_enhancement() argument
155 struct isp_device *isp = to_isp_device(prev); in preview_config_luma_enhancement()
171 preview_enable_luma_enhancement(struct isp_prev_device *prev, bool enable) in preview_enable_luma_enhancement() argument
173 struct isp_device *isp = to_isp_device(prev); in preview_enable_luma_enhancement()
186 static void preview_enable_invalaw(struct isp_prev_device *prev, bool enable) in preview_enable_invalaw() argument
188 struct isp_device *isp = to_isp_device(prev); in preview_enable_invalaw()
201 static void preview_config_hmed(struct isp_prev_device *prev, in preview_config_hmed() argument
204 struct isp_device *isp = to_isp_device(prev); in preview_config_hmed()
216 static void preview_enable_hmed(struct isp_prev_device *prev, bool enable) in preview_enable_hmed() argument
218 struct isp_device *isp = to_isp_device(prev); in preview_enable_hmed()
236 static void preview_config_cfa(struct isp_prev_device *prev, in preview_config_cfa() argument
245 const unsigned int *order = cfa_coef_order[prev->params.cfa_order]; in preview_config_cfa()
247 struct isp_device *isp = to_isp_device(prev); in preview_config_cfa()
272 preview_config_chroma_suppression(struct isp_prev_device *prev, in preview_config_chroma_suppression() argument
275 struct isp_device *isp = to_isp_device(prev); in preview_config_chroma_suppression()
288 preview_enable_chroma_suppression(struct isp_prev_device *prev, bool enable) in preview_enable_chroma_suppression() argument
290 struct isp_device *isp = to_isp_device(prev); in preview_enable_chroma_suppression()
306 preview_config_whitebalance(struct isp_prev_device *prev, in preview_config_whitebalance() argument
309 struct isp_device *isp = to_isp_device(prev); in preview_config_whitebalance()
345 preview_config_blkadj(struct isp_prev_device *prev, in preview_config_blkadj() argument
348 struct isp_device *isp = to_isp_device(prev); in preview_config_blkadj()
361 preview_config_rgb_blending(struct isp_prev_device *prev, in preview_config_rgb_blending() argument
364 struct isp_device *isp = to_isp_device(prev); in preview_config_rgb_blending()
399 preview_config_csc(struct isp_prev_device *prev, in preview_config_csc() argument
402 struct isp_device *isp = to_isp_device(prev); in preview_config_csc()
431 preview_config_yc_range(struct isp_prev_device *prev, in preview_config_yc_range() argument
434 struct isp_device *isp = to_isp_device(prev); in preview_config_yc_range()
449 preview_config_dcor(struct isp_prev_device *prev, in preview_config_dcor() argument
452 struct isp_device *isp = to_isp_device(prev); in preview_config_dcor()
471 static void preview_enable_dcor(struct isp_prev_device *prev, bool enable) in preview_enable_dcor() argument
473 struct isp_device *isp = to_isp_device(prev); in preview_enable_dcor()
487 preview_enable_drkframe_capture(struct isp_prev_device *prev, bool enable) in preview_enable_drkframe_capture() argument
489 struct isp_device *isp = to_isp_device(prev); in preview_enable_drkframe_capture()
502 static void preview_enable_drkframe(struct isp_prev_device *prev, bool enable) in preview_enable_drkframe() argument
504 struct isp_device *isp = to_isp_device(prev); in preview_enable_drkframe()
518 preview_config_noisefilter(struct isp_prev_device *prev, in preview_config_noisefilter() argument
521 struct isp_device *isp = to_isp_device(prev); in preview_config_noisefilter()
538 preview_enable_noisefilter(struct isp_prev_device *prev, bool enable) in preview_enable_noisefilter() argument
540 struct isp_device *isp = to_isp_device(prev); in preview_enable_noisefilter()
554 preview_config_gammacorrn(struct isp_prev_device *prev, in preview_config_gammacorrn() argument
557 struct isp_device *isp = to_isp_device(prev); in preview_config_gammacorrn()
587 preview_enable_gammacorrn(struct isp_prev_device *prev, bool enable) in preview_enable_gammacorrn() argument
589 struct isp_device *isp = to_isp_device(prev); in preview_enable_gammacorrn()
605 preview_config_contrast(struct isp_prev_device *prev, in preview_config_contrast() argument
608 struct isp_device *isp = to_isp_device(prev); in preview_config_contrast()
619 preview_config_brightness(struct isp_prev_device *prev, in preview_config_brightness() argument
622 struct isp_device *isp = to_isp_device(prev); in preview_config_brightness()
636 preview_update_contrast(struct isp_prev_device *prev, u8 contrast) in preview_update_contrast() argument
641 spin_lock_irqsave(&prev->params.lock, flags); in preview_update_contrast()
642 params = (prev->params.active & OMAP3ISP_PREV_CONTRAST) in preview_update_contrast()
643 ? &prev->params.params[0] : &prev->params.params[1]; in preview_update_contrast()
649 spin_unlock_irqrestore(&prev->params.lock, flags); in preview_update_contrast()
658 preview_update_brightness(struct isp_prev_device *prev, u8 brightness) in preview_update_brightness() argument
663 spin_lock_irqsave(&prev->params.lock, flags); in preview_update_brightness()
664 params = (prev->params.active & OMAP3ISP_PREV_BRIGHTNESS) in preview_update_brightness()
665 ? &prev->params.params[0] : &prev->params.params[1]; in preview_update_brightness()
671 spin_unlock_irqrestore(&prev->params.lock, flags); in preview_update_brightness()
675 preview_params_lock(struct isp_prev_device *prev, u32 update, bool shadow) in preview_params_lock() argument
677 u32 active = prev->params.active; in preview_params_lock()
681 prev->params.params[0].busy |= ~active & update; in preview_params_lock()
682 prev->params.params[1].busy |= active & update; in preview_params_lock()
685 update = (prev->params.params[0].update & active) in preview_params_lock()
686 | (prev->params.params[1].update & ~active); in preview_params_lock()
688 prev->params.params[0].busy |= active & update; in preview_params_lock()
689 prev->params.params[1].busy |= ~active & update; in preview_params_lock()
696 preview_params_unlock(struct isp_prev_device *prev, u32 update, bool shadow) in preview_params_unlock() argument
698 u32 active = prev->params.active; in preview_params_unlock()
704 prev->params.params[0].update |= (~active & update); in preview_params_unlock()
705 prev->params.params[1].update |= (active & update); in preview_params_unlock()
706 prev->params.params[0].busy &= active; in preview_params_unlock()
707 prev->params.params[1].busy &= ~active; in preview_params_unlock()
712 prev->params.params[0].update &= ~(active & update); in preview_params_unlock()
713 prev->params.params[1].update &= ~(~active & update); in preview_params_unlock()
714 prev->params.params[0].busy &= ~active; in preview_params_unlock()
715 prev->params.params[1].busy &= active; in preview_params_unlock()
719 static void preview_params_switch(struct isp_prev_device *prev) in preview_params_switch() argument
727 to_switch = (prev->params.params[0].update & ~prev->params.active) in preview_params_switch()
728 | (prev->params.params[1].update & prev->params.active); in preview_params_switch()
729 to_switch &= ~(prev->params.params[0].busy | in preview_params_switch()
730 prev->params.params[1].busy); in preview_params_switch()
734 prev->params.active ^= to_switch; in preview_params_switch()
739 prev->params.params[0].update &= ~(~prev->params.active & to_switch); in preview_params_switch()
740 prev->params.params[1].update &= ~(prev->params.active & to_switch); in preview_params_switch()
862 static int preview_config(struct isp_prev_device *prev, in preview_config() argument
875 spin_lock_irqsave(&prev->params.lock, flags); in preview_config()
876 preview_params_lock(prev, cfg->update, true); in preview_config()
877 active = prev->params.active; in preview_config()
878 spin_unlock_irqrestore(&prev->params.lock, flags); in preview_config()
890 params = &prev->params.params[!!(active & bit)]; in preview_config()
912 spin_lock_irqsave(&prev->params.lock, flags); in preview_config()
913 preview_params_unlock(prev, update, true); in preview_config()
914 preview_params_switch(prev); in preview_config()
915 spin_unlock_irqrestore(&prev->params.lock, flags); in preview_config()
928 static void preview_setup_hw(struct isp_prev_device *prev, u32 update, in preview_setup_hw() argument
944 params = &prev->params.params[!(active & bit)]; in preview_setup_hw()
948 attr->config(prev, params); in preview_setup_hw()
950 attr->enable(prev, true); in preview_setup_hw()
953 attr->enable(prev, false); in preview_setup_hw()
963 static void preview_config_ycpos(struct isp_prev_device *prev, u32 pixelcode) in preview_config_ycpos() argument
965 struct isp_device *isp = to_isp_device(prev); in preview_config_ycpos()
988 static void preview_config_averager(struct isp_prev_device *prev, u8 average) in preview_config_averager() argument
990 struct isp_device *isp = to_isp_device(prev); in preview_config_averager()
1011 static void preview_config_input_format(struct isp_prev_device *prev, in preview_config_input_format() argument
1014 struct isp_device *isp = to_isp_device(prev); in preview_config_input_format()
1026 prev->params.cfa_order = 0; in preview_config_input_format()
1029 prev->params.cfa_order = 1; in preview_config_input_format()
1032 prev->params.cfa_order = 2; in preview_config_input_format()
1035 prev->params.cfa_order = 3; in preview_config_input_format()
1048 params = (prev->params.active & OMAP3ISP_PREV_CFA) in preview_config_input_format()
1049 ? &prev->params.params[0] : &prev->params.params[1]; in preview_config_input_format()
1051 preview_config_cfa(prev, params); in preview_config_input_format()
1065 static void preview_config_input_size(struct isp_prev_device *prev, u32 active) in preview_config_input_size() argument
1067 const struct v4l2_mbus_framefmt *format = &prev->formats[PREV_PAD_SINK]; in preview_config_input_size()
1068 struct isp_device *isp = to_isp_device(prev); in preview_config_input_size()
1069 unsigned int sph = prev->crop.left; in preview_config_input_size()
1070 unsigned int eph = prev->crop.left + prev->crop.width - 1; in preview_config_input_size()
1071 unsigned int slv = prev->crop.top; in preview_config_input_size()
1072 unsigned int elv = prev->crop.top + prev->crop.height - 1; in preview_config_input_size()
1083 features = (prev->params.params[0].features & active) in preview_config_input_size()
1084 | (prev->params.params[1].features & ~active); in preview_config_input_size()
1116 preview_config_inlineoffset(struct isp_prev_device *prev, u32 offset) in preview_config_inlineoffset() argument
1118 struct isp_device *isp = to_isp_device(prev); in preview_config_inlineoffset()
1130 static void preview_set_inaddr(struct isp_prev_device *prev, u32 addr) in preview_set_inaddr() argument
1132 struct isp_device *isp = to_isp_device(prev); in preview_set_inaddr()
1143 static void preview_config_outlineoffset(struct isp_prev_device *prev, in preview_config_outlineoffset() argument
1146 struct isp_device *isp = to_isp_device(prev); in preview_config_outlineoffset()
1158 static void preview_set_outaddr(struct isp_prev_device *prev, u32 addr) in preview_set_outaddr() argument
1160 struct isp_device *isp = to_isp_device(prev); in preview_set_outaddr()
1165 static void preview_adjust_bandwidth(struct isp_prev_device *prev) in preview_adjust_bandwidth() argument
1167 struct isp_pipeline *pipe = to_isp_pipeline(&prev->subdev.entity); in preview_adjust_bandwidth()
1168 struct isp_device *isp = to_isp_device(prev); in preview_adjust_bandwidth()
1169 const struct v4l2_mbus_framefmt *ifmt = &prev->formats[PREV_PAD_SINK]; in preview_adjust_bandwidth()
1179 if (prev->input != PREVIEW_INPUT_MEMORY) { in preview_adjust_bandwidth()
1218 int omap3isp_preview_busy(struct isp_prev_device *prev) in omap3isp_preview_busy() argument
1220 struct isp_device *isp = to_isp_device(prev); in omap3isp_preview_busy()
1231 struct isp_prev_device *prev = &isp->isp_prev; in omap3isp_preview_restore_context() local
1234 prev->params.params[0].update = prev->params.active & update; in omap3isp_preview_restore_context()
1235 prev->params.params[1].update = ~prev->params.active & update; in omap3isp_preview_restore_context()
1237 preview_setup_hw(prev, update, prev->params.active); in omap3isp_preview_restore_context()
1239 prev->params.params[0].update = 0; in omap3isp_preview_restore_context()
1240 prev->params.params[1].update = 0; in omap3isp_preview_restore_context()
1250 static void preview_print_status(struct isp_prev_device *prev) in preview_print_status() argument
1252 struct isp_device *isp = to_isp_device(prev); in preview_print_status()
1300 static void preview_init_params(struct isp_prev_device *prev) in preview_init_params() argument
1305 spin_lock_init(&prev->params.lock); in preview_init_params()
1307 prev->params.active = ~0; in preview_init_params()
1308 prev->params.params[0].busy = 0; in preview_init_params()
1309 prev->params.params[0].update = OMAP3ISP_PREV_FEATURES_END - 1; in preview_init_params()
1310 prev->params.params[1].busy = 0; in preview_init_params()
1311 prev->params.params[1].update = 0; in preview_init_params()
1313 params = &prev->params.params[0]; in preview_init_params()
1364 static unsigned int preview_max_out_width(struct isp_prev_device *prev) in preview_max_out_width() argument
1366 struct isp_device *isp = to_isp_device(prev); in preview_max_out_width()
1381 static void preview_configure(struct isp_prev_device *prev) in preview_configure() argument
1383 struct isp_device *isp = to_isp_device(prev); in preview_configure()
1390 spin_lock_irqsave(&prev->params.lock, flags); in preview_configure()
1392 update = preview_params_lock(prev, 0, false); in preview_configure()
1393 active = prev->params.active; in preview_configure()
1394 spin_unlock_irqrestore(&prev->params.lock, flags); in preview_configure()
1397 format = &prev->formats[PREV_PAD_SINK]; in preview_configure()
1400 preview_adjust_bandwidth(prev); in preview_configure()
1402 preview_config_input_format(prev, info); in preview_configure()
1403 preview_config_input_size(prev, active); in preview_configure()
1405 if (prev->input == PREVIEW_INPUT_CCDC) in preview_configure()
1406 preview_config_inlineoffset(prev, 0); in preview_configure()
1408 preview_config_inlineoffset(prev, ALIGN(format->width, 0x20) * in preview_configure()
1411 preview_setup_hw(prev, update, active); in preview_configure()
1414 format = &prev->formats[PREV_PAD_SOURCE]; in preview_configure()
1416 if (prev->output & PREVIEW_OUTPUT_MEMORY) in preview_configure()
1423 if (prev->output & PREVIEW_OUTPUT_RESIZER) in preview_configure()
1430 if (prev->output & PREVIEW_OUTPUT_MEMORY) in preview_configure()
1431 preview_config_outlineoffset(prev, in preview_configure()
1434 preview_config_averager(prev, 0); in preview_configure()
1435 preview_config_ycpos(prev, format->code); in preview_configure()
1437 spin_lock_irqsave(&prev->params.lock, flags); in preview_configure()
1438 preview_params_unlock(prev, update, false); in preview_configure()
1439 spin_unlock_irqrestore(&prev->params.lock, flags); in preview_configure()
1446 static void preview_enable_oneshot(struct isp_prev_device *prev) in preview_enable_oneshot() argument
1448 struct isp_device *isp = to_isp_device(prev); in preview_enable_oneshot()
1454 if (prev->input == PREVIEW_INPUT_MEMORY) in preview_enable_oneshot()
1462 void omap3isp_preview_isr_frame_sync(struct isp_prev_device *prev) in omap3isp_preview_isr_frame_sync() argument
1470 if (prev->state == ISP_PIPELINE_STREAM_CONTINUOUS && in omap3isp_preview_isr_frame_sync()
1471 prev->video_out.dmaqueue_flags & ISP_VIDEO_DMAQUEUE_QUEUED) { in omap3isp_preview_isr_frame_sync()
1472 preview_enable_oneshot(prev); in omap3isp_preview_isr_frame_sync()
1473 isp_video_dmaqueue_flags_clr(&prev->video_out); in omap3isp_preview_isr_frame_sync()
1477 static void preview_isr_buffer(struct isp_prev_device *prev) in preview_isr_buffer() argument
1479 struct isp_pipeline *pipe = to_isp_pipeline(&prev->subdev.entity); in preview_isr_buffer()
1483 if (prev->input == PREVIEW_INPUT_MEMORY) { in preview_isr_buffer()
1484 buffer = omap3isp_video_buffer_next(&prev->video_in); in preview_isr_buffer()
1486 preview_set_inaddr(prev, buffer->dma); in preview_isr_buffer()
1490 if (prev->output & PREVIEW_OUTPUT_MEMORY) { in preview_isr_buffer()
1491 buffer = omap3isp_video_buffer_next(&prev->video_out); in preview_isr_buffer()
1493 preview_set_outaddr(prev, buffer->dma); in preview_isr_buffer()
1499 switch (prev->state) { in preview_isr_buffer()
1511 preview_enable_oneshot(prev); in preview_isr_buffer()
1525 void omap3isp_preview_isr(struct isp_prev_device *prev) in omap3isp_preview_isr() argument
1531 if (omap3isp_module_sync_is_stopping(&prev->wait, &prev->stopping)) in omap3isp_preview_isr()
1534 spin_lock_irqsave(&prev->params.lock, flags); in omap3isp_preview_isr()
1535 preview_params_switch(prev); in omap3isp_preview_isr()
1536 update = preview_params_lock(prev, 0, false); in omap3isp_preview_isr()
1537 active = prev->params.active; in omap3isp_preview_isr()
1538 spin_unlock_irqrestore(&prev->params.lock, flags); in omap3isp_preview_isr()
1540 preview_setup_hw(prev, update, active); in omap3isp_preview_isr()
1541 preview_config_input_size(prev, active); in omap3isp_preview_isr()
1543 if (prev->input == PREVIEW_INPUT_MEMORY || in omap3isp_preview_isr()
1544 prev->output & PREVIEW_OUTPUT_MEMORY) in omap3isp_preview_isr()
1545 preview_isr_buffer(prev); in omap3isp_preview_isr()
1546 else if (prev->state == ISP_PIPELINE_STREAM_CONTINUOUS) in omap3isp_preview_isr()
1547 preview_enable_oneshot(prev); in omap3isp_preview_isr()
1549 spin_lock_irqsave(&prev->params.lock, flags); in omap3isp_preview_isr()
1550 preview_params_unlock(prev, update, false); in omap3isp_preview_isr()
1551 spin_unlock_irqrestore(&prev->params.lock, flags); in omap3isp_preview_isr()
1561 struct isp_prev_device *prev = &video->isp->isp_prev; in preview_video_queue() local
1564 preview_set_inaddr(prev, buffer->dma); in preview_video_queue()
1567 preview_set_outaddr(prev, buffer->dma); in preview_video_queue()
1586 struct isp_prev_device *prev = in preview_s_ctrl() local
1591 preview_update_brightness(prev, ctrl->val); in preview_s_ctrl()
1594 preview_update_contrast(prev, ctrl->val); in preview_s_ctrl()
1614 struct isp_prev_device *prev = v4l2_get_subdevdata(sd); in preview_ioctl() local
1618 return preview_config(prev, arg); in preview_ioctl()
1633 struct isp_prev_device *prev = v4l2_get_subdevdata(sd); in preview_set_stream() local
1634 struct isp_video *video_out = &prev->video_out; in preview_set_stream()
1635 struct isp_device *isp = to_isp_device(prev); in preview_set_stream()
1636 struct device *dev = to_device(prev); in preview_set_stream()
1638 if (prev->state == ISP_PIPELINE_STREAM_STOPPED) { in preview_set_stream()
1643 preview_configure(prev); in preview_set_stream()
1644 atomic_set(&prev->stopping, 0); in preview_set_stream()
1645 preview_print_status(prev); in preview_set_stream()
1650 if (prev->output & PREVIEW_OUTPUT_MEMORY) in preview_set_stream()
1654 !(prev->output & PREVIEW_OUTPUT_MEMORY)) in preview_set_stream()
1655 preview_enable_oneshot(prev); in preview_set_stream()
1661 if (prev->input == PREVIEW_INPUT_MEMORY) in preview_set_stream()
1663 if (prev->output & PREVIEW_OUTPUT_MEMORY) in preview_set_stream()
1666 preview_enable_oneshot(prev); in preview_set_stream()
1670 if (omap3isp_module_sync_idle(&sd->entity, &prev->wait, in preview_set_stream()
1671 &prev->stopping)) in preview_set_stream()
1680 prev->state = enable; in preview_set_stream()
1685 __preview_get_format(struct isp_prev_device *prev, struct v4l2_subdev_pad_config *cfg, in __preview_get_format() argument
1689 return v4l2_subdev_get_try_format(&prev->subdev, cfg, pad); in __preview_get_format()
1691 return &prev->formats[pad]; in __preview_get_format()
1695 __preview_get_crop(struct isp_prev_device *prev, struct v4l2_subdev_pad_config *cfg, in __preview_get_crop() argument
1699 return v4l2_subdev_get_try_crop(&prev->subdev, cfg, PREV_PAD_SINK); in __preview_get_crop()
1701 return &prev->crop; in __preview_get_crop()
1734 static void preview_try_format(struct isp_prev_device *prev, in preview_try_format() argument
1754 if (prev->input == PREVIEW_INPUT_MEMORY) { in preview_try_format()
1756 preview_max_out_width(prev)); in preview_try_format()
1776 *fmt = *__preview_get_format(prev, cfg, PREV_PAD_SINK, which); in preview_try_format()
1794 crop = __preview_get_crop(prev, cfg, which); in preview_try_format()
1817 static void preview_try_crop(struct isp_prev_device *prev, in preview_try_crop() argument
1831 if (prev->input == PREVIEW_INPUT_CCDC) { in preview_try_crop()
1895 struct isp_prev_device *prev = v4l2_get_subdevdata(sd); in preview_enum_frame_size() local
1904 preview_try_format(prev, cfg, fse->pad, &format, fse->which); in preview_enum_frame_size()
1914 preview_try_format(prev, cfg, fse->pad, &format, fse->which); in preview_enum_frame_size()
1935 struct isp_prev_device *prev = v4l2_get_subdevdata(sd); in preview_get_selection() local
1948 format = __preview_get_format(prev, cfg, PREV_PAD_SINK, in preview_get_selection()
1950 preview_try_crop(prev, format, &sel->r); in preview_get_selection()
1954 sel->r = *__preview_get_crop(prev, cfg, sel->which); in preview_get_selection()
1978 struct isp_prev_device *prev = v4l2_get_subdevdata(sd); in preview_set_selection() local
1986 if (prev->state != ISP_PIPELINE_STREAM_STOPPED) in preview_set_selection()
1994 sel->r = *__preview_get_crop(prev, cfg, sel->which); in preview_set_selection()
1998 format = __preview_get_format(prev, cfg, PREV_PAD_SINK, sel->which); in preview_set_selection()
1999 preview_try_crop(prev, format, &sel->r); in preview_set_selection()
2000 *__preview_get_crop(prev, cfg, sel->which) = sel->r; in preview_set_selection()
2003 format = __preview_get_format(prev, cfg, PREV_PAD_SOURCE, sel->which); in preview_set_selection()
2004 preview_try_format(prev, cfg, PREV_PAD_SOURCE, format, sel->which); in preview_set_selection()
2019 struct isp_prev_device *prev = v4l2_get_subdevdata(sd); in preview_get_format() local
2022 format = __preview_get_format(prev, cfg, fmt->pad, fmt->which); in preview_get_format()
2040 struct isp_prev_device *prev = v4l2_get_subdevdata(sd); in preview_set_format() local
2044 format = __preview_get_format(prev, cfg, fmt->pad, fmt->which); in preview_set_format()
2048 preview_try_format(prev, cfg, fmt->pad, &fmt->format, fmt->which); in preview_set_format()
2054 crop = __preview_get_crop(prev, cfg, fmt->which); in preview_set_format()
2060 preview_try_crop(prev, &fmt->format, crop); in preview_set_format()
2063 format = __preview_get_format(prev, cfg, PREV_PAD_SOURCE, in preview_set_format()
2065 preview_try_format(prev, cfg, PREV_PAD_SOURCE, format, in preview_set_format()
2146 struct isp_prev_device *prev = v4l2_get_subdevdata(sd); in preview_link_setup() local
2152 if (prev->input == PREVIEW_INPUT_CCDC) in preview_link_setup()
2154 prev->input = PREVIEW_INPUT_MEMORY; in preview_link_setup()
2156 if (prev->input == PREVIEW_INPUT_MEMORY) in preview_link_setup()
2157 prev->input = PREVIEW_INPUT_NONE; in preview_link_setup()
2164 if (prev->input == PREVIEW_INPUT_MEMORY) in preview_link_setup()
2166 prev->input = PREVIEW_INPUT_CCDC; in preview_link_setup()
2168 if (prev->input == PREVIEW_INPUT_CCDC) in preview_link_setup()
2169 prev->input = PREVIEW_INPUT_NONE; in preview_link_setup()
2181 if (prev->output & ~PREVIEW_OUTPUT_MEMORY) in preview_link_setup()
2183 prev->output |= PREVIEW_OUTPUT_MEMORY; in preview_link_setup()
2185 prev->output &= ~PREVIEW_OUTPUT_MEMORY; in preview_link_setup()
2192 if (prev->output & ~PREVIEW_OUTPUT_RESIZER) in preview_link_setup()
2194 prev->output |= PREVIEW_OUTPUT_RESIZER; in preview_link_setup()
2196 prev->output &= ~PREVIEW_OUTPUT_RESIZER; in preview_link_setup()
2213 void omap3isp_preview_unregister_entities(struct isp_prev_device *prev) in omap3isp_preview_unregister_entities() argument
2215 v4l2_device_unregister_subdev(&prev->subdev); in omap3isp_preview_unregister_entities()
2216 omap3isp_video_unregister(&prev->video_in); in omap3isp_preview_unregister_entities()
2217 omap3isp_video_unregister(&prev->video_out); in omap3isp_preview_unregister_entities()
2220 int omap3isp_preview_register_entities(struct isp_prev_device *prev, in omap3isp_preview_register_entities() argument
2226 ret = v4l2_device_register_subdev(vdev, &prev->subdev); in omap3isp_preview_register_entities()
2230 ret = omap3isp_video_register(&prev->video_in, vdev); in omap3isp_preview_register_entities()
2234 ret = omap3isp_video_register(&prev->video_out, vdev); in omap3isp_preview_register_entities()
2241 omap3isp_preview_unregister_entities(prev); in omap3isp_preview_register_entities()
2254 static int preview_init_entities(struct isp_prev_device *prev) in preview_init_entities() argument
2256 struct v4l2_subdev *sd = &prev->subdev; in preview_init_entities()
2257 struct media_pad *pads = prev->pads; in preview_init_entities()
2261 prev->input = PREVIEW_INPUT_NONE; in preview_init_entities()
2267 v4l2_set_subdevdata(sd, prev); in preview_init_entities()
2270 v4l2_ctrl_handler_init(&prev->ctrls, 2); in preview_init_entities()
2271 v4l2_ctrl_new_std(&prev->ctrls, &preview_ctrl_ops, V4L2_CID_BRIGHTNESS, in preview_init_entities()
2274 v4l2_ctrl_new_std(&prev->ctrls, &preview_ctrl_ops, V4L2_CID_CONTRAST, in preview_init_entities()
2277 v4l2_ctrl_handler_setup(&prev->ctrls); in preview_init_entities()
2278 sd->ctrl_handler = &prev->ctrls; in preview_init_entities()
2295 prev->video_in.type = V4L2_BUF_TYPE_VIDEO_OUTPUT; in preview_init_entities()
2296 prev->video_in.ops = &preview_video_ops; in preview_init_entities()
2297 prev->video_in.isp = to_isp_device(prev); in preview_init_entities()
2298 prev->video_in.capture_mem = PAGE_ALIGN(4096 * 4096) * 2 * 3; in preview_init_entities()
2299 prev->video_in.bpl_alignment = 64; in preview_init_entities()
2300 prev->video_out.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; in preview_init_entities()
2301 prev->video_out.ops = &preview_video_ops; in preview_init_entities()
2302 prev->video_out.isp = to_isp_device(prev); in preview_init_entities()
2303 prev->video_out.capture_mem = PAGE_ALIGN(4096 * 4096) * 2 * 3; in preview_init_entities()
2304 prev->video_out.bpl_alignment = 32; in preview_init_entities()
2306 ret = omap3isp_video_init(&prev->video_in, "preview"); in preview_init_entities()
2310 ret = omap3isp_video_init(&prev->video_out, "preview"); in preview_init_entities()
2315 ret = media_entity_create_link(&prev->video_in.video.entity, 0, in preview_init_entities()
2316 &prev->subdev.entity, PREV_PAD_SINK, 0); in preview_init_entities()
2320 ret = media_entity_create_link(&prev->subdev.entity, PREV_PAD_SOURCE, in preview_init_entities()
2321 &prev->video_out.video.entity, 0, 0); in preview_init_entities()
2328 omap3isp_video_cleanup(&prev->video_out); in preview_init_entities()
2330 omap3isp_video_cleanup(&prev->video_in); in preview_init_entities()
2332 media_entity_cleanup(&prev->subdev.entity); in preview_init_entities()
2343 struct isp_prev_device *prev = &isp->isp_prev; in omap3isp_preview_init() local
2345 init_waitqueue_head(&prev->wait); in omap3isp_preview_init()
2347 preview_init_params(prev); in omap3isp_preview_init()
2349 return preview_init_entities(prev); in omap3isp_preview_init()
2354 struct isp_prev_device *prev = &isp->isp_prev; in omap3isp_preview_cleanup() local
2356 v4l2_ctrl_handler_free(&prev->ctrls); in omap3isp_preview_cleanup()
2357 omap3isp_video_cleanup(&prev->video_in); in omap3isp_preview_cleanup()
2358 omap3isp_video_cleanup(&prev->video_out); in omap3isp_preview_cleanup()
2359 media_entity_cleanup(&prev->subdev.entity); in omap3isp_preview_cleanup()