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
937 features = (prev->params.params[0].features & active) in preview_setup_hw()
938 | (prev->params.params[1].features & ~active); in preview_setup_hw()
948 params = &prev->params.params[!(active & bit)]; in preview_setup_hw()
952 attr->config(prev, params); in preview_setup_hw()
954 attr->enable(prev, true); in preview_setup_hw()
957 attr->enable(prev, false); in preview_setup_hw()
967 static void preview_config_ycpos(struct isp_prev_device *prev, u32 pixelcode) in preview_config_ycpos() argument
969 struct isp_device *isp = to_isp_device(prev); in preview_config_ycpos()
992 static void preview_config_averager(struct isp_prev_device *prev, u8 average) in preview_config_averager() argument
994 struct isp_device *isp = to_isp_device(prev); in preview_config_averager()
1015 static void preview_config_input_format(struct isp_prev_device *prev, in preview_config_input_format() argument
1018 struct isp_device *isp = to_isp_device(prev); in preview_config_input_format()
1030 prev->params.cfa_order = 0; in preview_config_input_format()
1033 prev->params.cfa_order = 1; in preview_config_input_format()
1036 prev->params.cfa_order = 2; in preview_config_input_format()
1039 prev->params.cfa_order = 3; in preview_config_input_format()
1052 params = (prev->params.active & OMAP3ISP_PREV_CFA) in preview_config_input_format()
1053 ? &prev->params.params[0] : &prev->params.params[1]; in preview_config_input_format()
1055 preview_config_cfa(prev, params); in preview_config_input_format()
1069 static void preview_config_input_size(struct isp_prev_device *prev, u32 active) in preview_config_input_size() argument
1071 const struct v4l2_mbus_framefmt *format = &prev->formats[PREV_PAD_SINK]; in preview_config_input_size()
1072 struct isp_device *isp = to_isp_device(prev); in preview_config_input_size()
1073 unsigned int sph = prev->crop.left; in preview_config_input_size()
1074 unsigned int eph = prev->crop.left + prev->crop.width - 1; in preview_config_input_size()
1075 unsigned int slv = prev->crop.top; in preview_config_input_size()
1076 unsigned int elv = prev->crop.top + prev->crop.height - 1; in preview_config_input_size()
1087 features = (prev->params.params[0].features & active) in preview_config_input_size()
1088 | (prev->params.params[1].features & ~active); in preview_config_input_size()
1120 preview_config_inlineoffset(struct isp_prev_device *prev, u32 offset) in preview_config_inlineoffset() argument
1122 struct isp_device *isp = to_isp_device(prev); in preview_config_inlineoffset()
1134 static void preview_set_inaddr(struct isp_prev_device *prev, u32 addr) in preview_set_inaddr() argument
1136 struct isp_device *isp = to_isp_device(prev); in preview_set_inaddr()
1147 static void preview_config_outlineoffset(struct isp_prev_device *prev, in preview_config_outlineoffset() argument
1150 struct isp_device *isp = to_isp_device(prev); in preview_config_outlineoffset()
1162 static void preview_set_outaddr(struct isp_prev_device *prev, u32 addr) in preview_set_outaddr() argument
1164 struct isp_device *isp = to_isp_device(prev); in preview_set_outaddr()
1169 static void preview_adjust_bandwidth(struct isp_prev_device *prev) in preview_adjust_bandwidth() argument
1171 struct isp_pipeline *pipe = to_isp_pipeline(&prev->subdev.entity); in preview_adjust_bandwidth()
1172 struct isp_device *isp = to_isp_device(prev); in preview_adjust_bandwidth()
1173 const struct v4l2_mbus_framefmt *ifmt = &prev->formats[PREV_PAD_SINK]; in preview_adjust_bandwidth()
1183 if (prev->input != PREVIEW_INPUT_MEMORY) { in preview_adjust_bandwidth()
1222 int omap3isp_preview_busy(struct isp_prev_device *prev) in omap3isp_preview_busy() argument
1224 struct isp_device *isp = to_isp_device(prev); in omap3isp_preview_busy()
1235 struct isp_prev_device *prev = &isp->isp_prev; in omap3isp_preview_restore_context() local
1238 prev->params.params[0].update = prev->params.active & update; in omap3isp_preview_restore_context()
1239 prev->params.params[1].update = ~prev->params.active & update; in omap3isp_preview_restore_context()
1241 preview_setup_hw(prev, update, prev->params.active); in omap3isp_preview_restore_context()
1243 prev->params.params[0].update = 0; in omap3isp_preview_restore_context()
1244 prev->params.params[1].update = 0; in omap3isp_preview_restore_context()
1254 static void preview_print_status(struct isp_prev_device *prev) in preview_print_status() argument
1256 struct isp_device *isp = to_isp_device(prev); in preview_print_status()
1304 static void preview_init_params(struct isp_prev_device *prev) in preview_init_params() argument
1309 spin_lock_init(&prev->params.lock); in preview_init_params()
1311 prev->params.active = ~0; in preview_init_params()
1312 prev->params.params[0].busy = 0; in preview_init_params()
1313 prev->params.params[0].update = OMAP3ISP_PREV_FEATURES_END - 1; in preview_init_params()
1314 prev->params.params[1].busy = 0; in preview_init_params()
1315 prev->params.params[1].update = 0; in preview_init_params()
1317 params = &prev->params.params[0]; in preview_init_params()
1368 static unsigned int preview_max_out_width(struct isp_prev_device *prev) in preview_max_out_width() argument
1370 struct isp_device *isp = to_isp_device(prev); in preview_max_out_width()
1385 static void preview_configure(struct isp_prev_device *prev) in preview_configure() argument
1387 struct isp_device *isp = to_isp_device(prev); in preview_configure()
1394 spin_lock_irqsave(&prev->params.lock, flags); in preview_configure()
1396 update = preview_params_lock(prev, 0, false); in preview_configure()
1397 active = prev->params.active; in preview_configure()
1398 spin_unlock_irqrestore(&prev->params.lock, flags); in preview_configure()
1401 format = &prev->formats[PREV_PAD_SINK]; in preview_configure()
1404 preview_adjust_bandwidth(prev); in preview_configure()
1406 preview_config_input_format(prev, info); in preview_configure()
1407 preview_config_input_size(prev, active); in preview_configure()
1409 if (prev->input == PREVIEW_INPUT_CCDC) in preview_configure()
1410 preview_config_inlineoffset(prev, 0); in preview_configure()
1412 preview_config_inlineoffset(prev, ALIGN(format->width, 0x20) * in preview_configure()
1415 preview_setup_hw(prev, update, active); in preview_configure()
1418 format = &prev->formats[PREV_PAD_SOURCE]; in preview_configure()
1420 if (prev->output & PREVIEW_OUTPUT_MEMORY) in preview_configure()
1427 if (prev->output & PREVIEW_OUTPUT_RESIZER) in preview_configure()
1434 if (prev->output & PREVIEW_OUTPUT_MEMORY) in preview_configure()
1435 preview_config_outlineoffset(prev, in preview_configure()
1438 preview_config_averager(prev, 0); in preview_configure()
1439 preview_config_ycpos(prev, format->code); in preview_configure()
1441 spin_lock_irqsave(&prev->params.lock, flags); in preview_configure()
1442 preview_params_unlock(prev, update, false); in preview_configure()
1443 spin_unlock_irqrestore(&prev->params.lock, flags); in preview_configure()
1450 static void preview_enable_oneshot(struct isp_prev_device *prev) in preview_enable_oneshot() argument
1452 struct isp_device *isp = to_isp_device(prev); in preview_enable_oneshot()
1458 if (prev->input == PREVIEW_INPUT_MEMORY) in preview_enable_oneshot()
1466 void omap3isp_preview_isr_frame_sync(struct isp_prev_device *prev) in omap3isp_preview_isr_frame_sync() argument
1474 if (prev->state == ISP_PIPELINE_STREAM_CONTINUOUS && in omap3isp_preview_isr_frame_sync()
1475 prev->video_out.dmaqueue_flags & ISP_VIDEO_DMAQUEUE_QUEUED) { in omap3isp_preview_isr_frame_sync()
1476 preview_enable_oneshot(prev); in omap3isp_preview_isr_frame_sync()
1477 isp_video_dmaqueue_flags_clr(&prev->video_out); in omap3isp_preview_isr_frame_sync()
1481 static void preview_isr_buffer(struct isp_prev_device *prev) in preview_isr_buffer() argument
1483 struct isp_pipeline *pipe = to_isp_pipeline(&prev->subdev.entity); in preview_isr_buffer()
1487 if (prev->input == PREVIEW_INPUT_MEMORY) { in preview_isr_buffer()
1488 buffer = omap3isp_video_buffer_next(&prev->video_in); in preview_isr_buffer()
1490 preview_set_inaddr(prev, buffer->dma); in preview_isr_buffer()
1494 if (prev->output & PREVIEW_OUTPUT_MEMORY) { in preview_isr_buffer()
1495 buffer = omap3isp_video_buffer_next(&prev->video_out); in preview_isr_buffer()
1497 preview_set_outaddr(prev, buffer->dma); in preview_isr_buffer()
1503 switch (prev->state) { in preview_isr_buffer()
1515 preview_enable_oneshot(prev); in preview_isr_buffer()
1529 void omap3isp_preview_isr(struct isp_prev_device *prev) in omap3isp_preview_isr() argument
1535 if (omap3isp_module_sync_is_stopping(&prev->wait, &prev->stopping)) in omap3isp_preview_isr()
1538 spin_lock_irqsave(&prev->params.lock, flags); in omap3isp_preview_isr()
1539 preview_params_switch(prev); in omap3isp_preview_isr()
1540 update = preview_params_lock(prev, 0, false); in omap3isp_preview_isr()
1541 active = prev->params.active; in omap3isp_preview_isr()
1542 spin_unlock_irqrestore(&prev->params.lock, flags); in omap3isp_preview_isr()
1544 preview_setup_hw(prev, update, active); in omap3isp_preview_isr()
1545 preview_config_input_size(prev, active); in omap3isp_preview_isr()
1547 if (prev->input == PREVIEW_INPUT_MEMORY || in omap3isp_preview_isr()
1548 prev->output & PREVIEW_OUTPUT_MEMORY) in omap3isp_preview_isr()
1549 preview_isr_buffer(prev); in omap3isp_preview_isr()
1550 else if (prev->state == ISP_PIPELINE_STREAM_CONTINUOUS) in omap3isp_preview_isr()
1551 preview_enable_oneshot(prev); in omap3isp_preview_isr()
1553 spin_lock_irqsave(&prev->params.lock, flags); in omap3isp_preview_isr()
1554 preview_params_unlock(prev, update, false); in omap3isp_preview_isr()
1555 spin_unlock_irqrestore(&prev->params.lock, flags); in omap3isp_preview_isr()
1565 struct isp_prev_device *prev = &video->isp->isp_prev; in preview_video_queue() local
1568 preview_set_inaddr(prev, buffer->dma); in preview_video_queue()
1571 preview_set_outaddr(prev, buffer->dma); in preview_video_queue()
1590 struct isp_prev_device *prev = in preview_s_ctrl() local
1595 preview_update_brightness(prev, ctrl->val); in preview_s_ctrl()
1598 preview_update_contrast(prev, ctrl->val); in preview_s_ctrl()
1618 struct isp_prev_device *prev = v4l2_get_subdevdata(sd); in preview_ioctl() local
1622 return preview_config(prev, arg); in preview_ioctl()
1637 struct isp_prev_device *prev = v4l2_get_subdevdata(sd); in preview_set_stream() local
1638 struct isp_video *video_out = &prev->video_out; in preview_set_stream()
1639 struct isp_device *isp = to_isp_device(prev); in preview_set_stream()
1640 struct device *dev = to_device(prev); in preview_set_stream()
1642 if (prev->state == ISP_PIPELINE_STREAM_STOPPED) { in preview_set_stream()
1647 preview_configure(prev); in preview_set_stream()
1648 atomic_set(&prev->stopping, 0); in preview_set_stream()
1649 preview_print_status(prev); in preview_set_stream()
1654 if (prev->output & PREVIEW_OUTPUT_MEMORY) in preview_set_stream()
1658 !(prev->output & PREVIEW_OUTPUT_MEMORY)) in preview_set_stream()
1659 preview_enable_oneshot(prev); in preview_set_stream()
1665 if (prev->input == PREVIEW_INPUT_MEMORY) in preview_set_stream()
1667 if (prev->output & PREVIEW_OUTPUT_MEMORY) in preview_set_stream()
1670 preview_enable_oneshot(prev); in preview_set_stream()
1674 if (omap3isp_module_sync_idle(&sd->entity, &prev->wait, in preview_set_stream()
1675 &prev->stopping)) in preview_set_stream()
1684 prev->state = enable; in preview_set_stream()
1689 __preview_get_format(struct isp_prev_device *prev, struct v4l2_subdev_pad_config *cfg, in __preview_get_format() argument
1693 return v4l2_subdev_get_try_format(&prev->subdev, cfg, pad); in __preview_get_format()
1695 return &prev->formats[pad]; in __preview_get_format()
1699 __preview_get_crop(struct isp_prev_device *prev, struct v4l2_subdev_pad_config *cfg, in __preview_get_crop() argument
1703 return v4l2_subdev_get_try_crop(&prev->subdev, cfg, PREV_PAD_SINK); in __preview_get_crop()
1705 return &prev->crop; in __preview_get_crop()
1738 static void preview_try_format(struct isp_prev_device *prev, in preview_try_format() argument
1758 if (prev->input == PREVIEW_INPUT_MEMORY) { in preview_try_format()
1760 preview_max_out_width(prev)); in preview_try_format()
1780 *fmt = *__preview_get_format(prev, cfg, PREV_PAD_SINK, which); in preview_try_format()
1798 crop = __preview_get_crop(prev, cfg, which); in preview_try_format()
1821 static void preview_try_crop(struct isp_prev_device *prev, in preview_try_crop() argument
1835 if (prev->input == PREVIEW_INPUT_CCDC) { in preview_try_crop()
1899 struct isp_prev_device *prev = v4l2_get_subdevdata(sd); in preview_enum_frame_size() local
1908 preview_try_format(prev, cfg, fse->pad, &format, fse->which); in preview_enum_frame_size()
1918 preview_try_format(prev, cfg, fse->pad, &format, fse->which); in preview_enum_frame_size()
1939 struct isp_prev_device *prev = v4l2_get_subdevdata(sd); in preview_get_selection() local
1952 format = __preview_get_format(prev, cfg, PREV_PAD_SINK, in preview_get_selection()
1954 preview_try_crop(prev, format, &sel->r); in preview_get_selection()
1958 sel->r = *__preview_get_crop(prev, cfg, sel->which); in preview_get_selection()
1982 struct isp_prev_device *prev = v4l2_get_subdevdata(sd); in preview_set_selection() local
1990 if (prev->state != ISP_PIPELINE_STREAM_STOPPED) in preview_set_selection()
1998 sel->r = *__preview_get_crop(prev, cfg, sel->which); in preview_set_selection()
2002 format = __preview_get_format(prev, cfg, PREV_PAD_SINK, sel->which); in preview_set_selection()
2003 preview_try_crop(prev, format, &sel->r); in preview_set_selection()
2004 *__preview_get_crop(prev, cfg, sel->which) = sel->r; in preview_set_selection()
2007 format = __preview_get_format(prev, cfg, PREV_PAD_SOURCE, sel->which); in preview_set_selection()
2008 preview_try_format(prev, cfg, PREV_PAD_SOURCE, format, sel->which); in preview_set_selection()
2023 struct isp_prev_device *prev = v4l2_get_subdevdata(sd); in preview_get_format() local
2026 format = __preview_get_format(prev, cfg, fmt->pad, fmt->which); in preview_get_format()
2044 struct isp_prev_device *prev = v4l2_get_subdevdata(sd); in preview_set_format() local
2048 format = __preview_get_format(prev, cfg, fmt->pad, fmt->which); in preview_set_format()
2052 preview_try_format(prev, cfg, fmt->pad, &fmt->format, fmt->which); in preview_set_format()
2058 crop = __preview_get_crop(prev, cfg, fmt->which); in preview_set_format()
2064 preview_try_crop(prev, &fmt->format, crop); in preview_set_format()
2067 format = __preview_get_format(prev, cfg, PREV_PAD_SOURCE, in preview_set_format()
2069 preview_try_format(prev, cfg, PREV_PAD_SOURCE, format, in preview_set_format()
2150 struct isp_prev_device *prev = v4l2_get_subdevdata(sd); in preview_link_setup() local
2156 if (prev->input == PREVIEW_INPUT_CCDC) in preview_link_setup()
2158 prev->input = PREVIEW_INPUT_MEMORY; in preview_link_setup()
2160 if (prev->input == PREVIEW_INPUT_MEMORY) in preview_link_setup()
2161 prev->input = PREVIEW_INPUT_NONE; in preview_link_setup()
2168 if (prev->input == PREVIEW_INPUT_MEMORY) in preview_link_setup()
2170 prev->input = PREVIEW_INPUT_CCDC; in preview_link_setup()
2172 if (prev->input == PREVIEW_INPUT_CCDC) in preview_link_setup()
2173 prev->input = PREVIEW_INPUT_NONE; in preview_link_setup()
2185 if (prev->output & ~PREVIEW_OUTPUT_MEMORY) in preview_link_setup()
2187 prev->output |= PREVIEW_OUTPUT_MEMORY; in preview_link_setup()
2189 prev->output &= ~PREVIEW_OUTPUT_MEMORY; in preview_link_setup()
2196 if (prev->output & ~PREVIEW_OUTPUT_RESIZER) in preview_link_setup()
2198 prev->output |= PREVIEW_OUTPUT_RESIZER; in preview_link_setup()
2200 prev->output &= ~PREVIEW_OUTPUT_RESIZER; in preview_link_setup()
2217 void omap3isp_preview_unregister_entities(struct isp_prev_device *prev) in omap3isp_preview_unregister_entities() argument
2219 v4l2_device_unregister_subdev(&prev->subdev); in omap3isp_preview_unregister_entities()
2220 omap3isp_video_unregister(&prev->video_in); in omap3isp_preview_unregister_entities()
2221 omap3isp_video_unregister(&prev->video_out); in omap3isp_preview_unregister_entities()
2224 int omap3isp_preview_register_entities(struct isp_prev_device *prev, in omap3isp_preview_register_entities() argument
2230 ret = v4l2_device_register_subdev(vdev, &prev->subdev); in omap3isp_preview_register_entities()
2234 ret = omap3isp_video_register(&prev->video_in, vdev); in omap3isp_preview_register_entities()
2238 ret = omap3isp_video_register(&prev->video_out, vdev); in omap3isp_preview_register_entities()
2245 omap3isp_preview_unregister_entities(prev); in omap3isp_preview_register_entities()
2258 static int preview_init_entities(struct isp_prev_device *prev) in preview_init_entities() argument
2260 struct v4l2_subdev *sd = &prev->subdev; in preview_init_entities()
2261 struct media_pad *pads = prev->pads; in preview_init_entities()
2265 prev->input = PREVIEW_INPUT_NONE; in preview_init_entities()
2271 v4l2_set_subdevdata(sd, prev); in preview_init_entities()
2274 v4l2_ctrl_handler_init(&prev->ctrls, 2); in preview_init_entities()
2275 v4l2_ctrl_new_std(&prev->ctrls, &preview_ctrl_ops, V4L2_CID_BRIGHTNESS, in preview_init_entities()
2278 v4l2_ctrl_new_std(&prev->ctrls, &preview_ctrl_ops, V4L2_CID_CONTRAST, in preview_init_entities()
2281 v4l2_ctrl_handler_setup(&prev->ctrls); in preview_init_entities()
2282 sd->ctrl_handler = &prev->ctrls; in preview_init_entities()
2299 prev->video_in.type = V4L2_BUF_TYPE_VIDEO_OUTPUT; in preview_init_entities()
2300 prev->video_in.ops = &preview_video_ops; in preview_init_entities()
2301 prev->video_in.isp = to_isp_device(prev); in preview_init_entities()
2302 prev->video_in.capture_mem = PAGE_ALIGN(4096 * 4096) * 2 * 3; in preview_init_entities()
2303 prev->video_in.bpl_alignment = 64; in preview_init_entities()
2304 prev->video_out.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; in preview_init_entities()
2305 prev->video_out.ops = &preview_video_ops; in preview_init_entities()
2306 prev->video_out.isp = to_isp_device(prev); in preview_init_entities()
2307 prev->video_out.capture_mem = PAGE_ALIGN(4096 * 4096) * 2 * 3; in preview_init_entities()
2308 prev->video_out.bpl_alignment = 32; in preview_init_entities()
2310 ret = omap3isp_video_init(&prev->video_in, "preview"); in preview_init_entities()
2314 ret = omap3isp_video_init(&prev->video_out, "preview"); in preview_init_entities()
2319 ret = media_entity_create_link(&prev->video_in.video.entity, 0, in preview_init_entities()
2320 &prev->subdev.entity, PREV_PAD_SINK, 0); in preview_init_entities()
2324 ret = media_entity_create_link(&prev->subdev.entity, PREV_PAD_SOURCE, in preview_init_entities()
2325 &prev->video_out.video.entity, 0, 0); in preview_init_entities()
2332 omap3isp_video_cleanup(&prev->video_out); in preview_init_entities()
2334 omap3isp_video_cleanup(&prev->video_in); in preview_init_entities()
2336 media_entity_cleanup(&prev->subdev.entity); in preview_init_entities()
2347 struct isp_prev_device *prev = &isp->isp_prev; in omap3isp_preview_init() local
2349 init_waitqueue_head(&prev->wait); in omap3isp_preview_init()
2351 preview_init_params(prev); in omap3isp_preview_init()
2353 return preview_init_entities(prev); in omap3isp_preview_init()
2358 struct isp_prev_device *prev = &isp->isp_prev; in omap3isp_preview_cleanup() local
2360 v4l2_ctrl_handler_free(&prev->ctrls); in omap3isp_preview_cleanup()
2361 omap3isp_video_cleanup(&prev->video_in); in omap3isp_preview_cleanup()
2362 omap3isp_video_cleanup(&prev->video_out); in omap3isp_preview_cleanup()
2363 media_entity_cleanup(&prev->subdev.entity); in omap3isp_preview_cleanup()