Lines Matching full:cap

66 	void (*config)(struct rkisp1_capture *cap);
67 void (*stop)(struct rkisp1_capture *cap);
68 void (*enable)(struct rkisp1_capture *cap);
69 void (*disable)(struct rkisp1_capture *cap);
70 void (*set_data_path)(struct rkisp1_capture *cap);
71 bool (*is_stopped)(struct rkisp1_capture *cap);
418 int rkisp1_cap_enum_mbus_codes(struct rkisp1_capture *cap, in rkisp1_cap_enum_mbus_codes() argument
421 const struct rkisp1_capture_fmt_cfg *fmts = cap->config->fmts; in rkisp1_cap_enum_mbus_codes()
429 for (i = 0; i < cap->config->fmt_size; i++) { in rkisp1_cap_enum_mbus_codes()
446 static void rkisp1_mi_config_ctrl(struct rkisp1_capture *cap) in rkisp1_mi_config_ctrl() argument
448 u32 mi_ctrl = rkisp1_read(cap->rkisp1, RKISP1_CIF_MI_CTRL); in rkisp1_mi_config_ctrl()
459 rkisp1_write(cap->rkisp1, RKISP1_CIF_MI_CTRL, mi_ctrl); in rkisp1_mi_config_ctrl()
475 static void rkisp1_irq_frame_end_enable(struct rkisp1_capture *cap) in rkisp1_irq_frame_end_enable() argument
477 u32 mi_imsc = rkisp1_read(cap->rkisp1, RKISP1_CIF_MI_IMSC); in rkisp1_irq_frame_end_enable()
479 mi_imsc |= RKISP1_CIF_MI_FRAME(cap); in rkisp1_irq_frame_end_enable()
480 rkisp1_write(cap->rkisp1, RKISP1_CIF_MI_IMSC, mi_imsc); in rkisp1_irq_frame_end_enable()
483 static void rkisp1_mp_config(struct rkisp1_capture *cap) in rkisp1_mp_config() argument
485 const struct v4l2_pix_format_mplane *pixm = &cap->pix.fmt; in rkisp1_mp_config()
486 struct rkisp1_device *rkisp1 = cap->rkisp1; in rkisp1_mp_config()
489 rkisp1_write(rkisp1, cap->config->mi.y_size_init, in rkisp1_mp_config()
491 rkisp1_write(rkisp1, cap->config->mi.cb_size_init, in rkisp1_mp_config()
493 rkisp1_write(rkisp1, cap->config->mi.cr_size_init, in rkisp1_mp_config()
497 rkisp1_write(rkisp1, RKISP1_CIF_MI_MP_Y_LLENGTH, cap->stride); in rkisp1_mp_config()
501 cap->stride * pixm->height); in rkisp1_mp_config()
504 rkisp1_irq_frame_end_enable(cap); in rkisp1_mp_config()
507 if (cap->pix.info->comp_planes == 2) { in rkisp1_mp_config()
509 if (cap->pix.cfg->uv_swap) in rkisp1_mp_config()
523 if (cap->pix.cfg->yc_swap || cap->pix.cfg->byte_swap) in rkisp1_mp_config()
532 cap->pix.cfg->output_format); in rkisp1_mp_config()
535 rkisp1_mi_config_ctrl(cap); in rkisp1_mp_config()
539 reg |= cap->pix.cfg->write_format; in rkisp1_mp_config()
547 static void rkisp1_sp_config(struct rkisp1_capture *cap) in rkisp1_sp_config() argument
549 const struct v4l2_pix_format_mplane *pixm = &cap->pix.fmt; in rkisp1_sp_config()
550 struct rkisp1_device *rkisp1 = cap->rkisp1; in rkisp1_sp_config()
553 rkisp1_write(rkisp1, cap->config->mi.y_size_init, in rkisp1_sp_config()
555 rkisp1_write(rkisp1, cap->config->mi.cb_size_init, in rkisp1_sp_config()
557 rkisp1_write(rkisp1, cap->config->mi.cr_size_init, in rkisp1_sp_config()
560 rkisp1_write(rkisp1, RKISP1_CIF_MI_SP_Y_LLENGTH, cap->stride); in rkisp1_sp_config()
564 cap->stride * pixm->height); in rkisp1_sp_config()
566 rkisp1_irq_frame_end_enable(cap); in rkisp1_sp_config()
569 if (cap->pix.info->comp_planes == 2) { in rkisp1_sp_config()
571 if (cap->pix.cfg->uv_swap) in rkisp1_sp_config()
585 if (cap->pix.cfg->yc_swap) in rkisp1_sp_config()
592 rkisp1_mi_config_ctrl(cap); in rkisp1_sp_config()
596 mi_ctrl |= cap->pix.cfg->write_format | in rkisp1_sp_config()
598 cap->pix.cfg->output_format | in rkisp1_sp_config()
603 static void rkisp1_mp_disable(struct rkisp1_capture *cap) in rkisp1_mp_disable() argument
605 u32 mi_ctrl = rkisp1_read(cap->rkisp1, RKISP1_CIF_MI_CTRL); in rkisp1_mp_disable()
609 rkisp1_write(cap->rkisp1, RKISP1_CIF_MI_CTRL, mi_ctrl); in rkisp1_mp_disable()
612 static void rkisp1_sp_disable(struct rkisp1_capture *cap) in rkisp1_sp_disable() argument
614 u32 mi_ctrl = rkisp1_read(cap->rkisp1, RKISP1_CIF_MI_CTRL); in rkisp1_sp_disable()
617 rkisp1_write(cap->rkisp1, RKISP1_CIF_MI_CTRL, mi_ctrl); in rkisp1_sp_disable()
620 static void rkisp1_mp_enable(struct rkisp1_capture *cap) in rkisp1_mp_enable() argument
624 rkisp1_mp_disable(cap); in rkisp1_mp_enable()
626 mi_ctrl = rkisp1_read(cap->rkisp1, RKISP1_CIF_MI_CTRL); in rkisp1_mp_enable()
627 if (v4l2_is_format_bayer(cap->pix.info)) in rkisp1_mp_enable()
633 rkisp1_write(cap->rkisp1, RKISP1_CIF_MI_CTRL, mi_ctrl); in rkisp1_mp_enable()
636 static void rkisp1_sp_enable(struct rkisp1_capture *cap) in rkisp1_sp_enable() argument
638 u32 mi_ctrl = rkisp1_read(cap->rkisp1, RKISP1_CIF_MI_CTRL); in rkisp1_sp_enable()
641 rkisp1_write(cap->rkisp1, RKISP1_CIF_MI_CTRL, mi_ctrl); in rkisp1_sp_enable()
644 static void rkisp1_mp_sp_stop(struct rkisp1_capture *cap) in rkisp1_mp_sp_stop() argument
646 if (!cap->is_streaming) in rkisp1_mp_sp_stop()
648 rkisp1_write(cap->rkisp1, RKISP1_CIF_MI_ICR, RKISP1_CIF_MI_FRAME(cap)); in rkisp1_mp_sp_stop()
649 cap->ops->disable(cap); in rkisp1_mp_sp_stop()
652 static bool rkisp1_mp_is_stopped(struct rkisp1_capture *cap) in rkisp1_mp_is_stopped() argument
657 return !(rkisp1_read(cap->rkisp1, RKISP1_CIF_MI_CTRL_SHD) & en); in rkisp1_mp_is_stopped()
660 static bool rkisp1_sp_is_stopped(struct rkisp1_capture *cap) in rkisp1_sp_is_stopped() argument
662 return !(rkisp1_read(cap->rkisp1, RKISP1_CIF_MI_CTRL_SHD) & in rkisp1_sp_is_stopped()
666 static void rkisp1_mp_set_data_path(struct rkisp1_capture *cap) in rkisp1_mp_set_data_path() argument
668 u32 dpcl = rkisp1_read(cap->rkisp1, RKISP1_CIF_VI_DPCL); in rkisp1_mp_set_data_path()
672 rkisp1_write(cap->rkisp1, RKISP1_CIF_VI_DPCL, dpcl); in rkisp1_mp_set_data_path()
675 static void rkisp1_sp_set_data_path(struct rkisp1_capture *cap) in rkisp1_sp_set_data_path() argument
677 u32 dpcl = rkisp1_read(cap->rkisp1, RKISP1_CIF_VI_DPCL); in rkisp1_sp_set_data_path()
680 rkisp1_write(cap->rkisp1, RKISP1_CIF_VI_DPCL, dpcl); in rkisp1_sp_set_data_path()
705 static int rkisp1_dummy_buf_create(struct rkisp1_capture *cap) in rkisp1_dummy_buf_create() argument
707 const struct v4l2_pix_format_mplane *pixm = &cap->pix.fmt; in rkisp1_dummy_buf_create()
708 struct rkisp1_dummy_buffer *dummy_buf = &cap->buf.dummy; in rkisp1_dummy_buf_create()
715 dummy_buf->vaddr = dma_alloc_attrs(cap->rkisp1->dev, in rkisp1_dummy_buf_create()
726 static void rkisp1_dummy_buf_destroy(struct rkisp1_capture *cap) in rkisp1_dummy_buf_destroy() argument
728 dma_free_attrs(cap->rkisp1->dev, in rkisp1_dummy_buf_destroy()
729 cap->buf.dummy.size, cap->buf.dummy.vaddr, in rkisp1_dummy_buf_destroy()
730 cap->buf.dummy.dma_addr, DMA_ATTR_NO_KERNEL_MAPPING); in rkisp1_dummy_buf_destroy()
733 static void rkisp1_set_next_buf(struct rkisp1_capture *cap) in rkisp1_set_next_buf() argument
735 u8 shift = rkisp1_has_feature(cap->rkisp1, DMA_34BIT) ? 2 : 0; in rkisp1_set_next_buf()
737 cap->buf.curr = cap->buf.next; in rkisp1_set_next_buf()
738 cap->buf.next = NULL; in rkisp1_set_next_buf()
740 if (!list_empty(&cap->buf.queue)) { in rkisp1_set_next_buf()
743 cap->buf.next = list_first_entry(&cap->buf.queue, struct rkisp1_buffer, queue); in rkisp1_set_next_buf()
744 list_del(&cap->buf.next->queue); in rkisp1_set_next_buf()
746 buff_addr = cap->buf.next->buff_addr; in rkisp1_set_next_buf()
748 rkisp1_write(cap->rkisp1, cap->config->mi.y_base_ad_init, in rkisp1_set_next_buf()
755 if (cap->pix.cfg->fourcc == V4L2_PIX_FMT_GREY) { in rkisp1_set_next_buf()
756 rkisp1_write(cap->rkisp1, in rkisp1_set_next_buf()
757 cap->config->mi.cb_base_ad_init, in rkisp1_set_next_buf()
758 cap->buf.dummy.dma_addr >> shift); in rkisp1_set_next_buf()
759 rkisp1_write(cap->rkisp1, in rkisp1_set_next_buf()
760 cap->config->mi.cr_base_ad_init, in rkisp1_set_next_buf()
761 cap->buf.dummy.dma_addr >> shift); in rkisp1_set_next_buf()
763 rkisp1_write(cap->rkisp1, in rkisp1_set_next_buf()
764 cap->config->mi.cb_base_ad_init, in rkisp1_set_next_buf()
766 rkisp1_write(cap->rkisp1, in rkisp1_set_next_buf()
767 cap->config->mi.cr_base_ad_init, in rkisp1_set_next_buf()
775 rkisp1_write(cap->rkisp1, cap->config->mi.y_base_ad_init, in rkisp1_set_next_buf()
776 cap->buf.dummy.dma_addr >> shift); in rkisp1_set_next_buf()
777 rkisp1_write(cap->rkisp1, cap->config->mi.cb_base_ad_init, in rkisp1_set_next_buf()
778 cap->buf.dummy.dma_addr >> shift); in rkisp1_set_next_buf()
779 rkisp1_write(cap->rkisp1, cap->config->mi.cr_base_ad_init, in rkisp1_set_next_buf()
780 cap->buf.dummy.dma_addr >> shift); in rkisp1_set_next_buf()
784 rkisp1_write(cap->rkisp1, cap->config->mi.y_offs_cnt_init, 0); in rkisp1_set_next_buf()
785 rkisp1_write(cap->rkisp1, cap->config->mi.cb_offs_cnt_init, 0); in rkisp1_set_next_buf()
786 rkisp1_write(cap->rkisp1, cap->config->mi.cr_offs_cnt_init, 0); in rkisp1_set_next_buf()
794 static void rkisp1_handle_buffer(struct rkisp1_capture *cap) in rkisp1_handle_buffer() argument
796 struct rkisp1_isp *isp = &cap->rkisp1->isp; in rkisp1_handle_buffer()
799 spin_lock(&cap->buf.lock); in rkisp1_handle_buffer()
800 curr_buf = cap->buf.curr; in rkisp1_handle_buffer()
808 cap->rkisp1->debug.frame_drop[cap->id]++; in rkisp1_handle_buffer()
811 rkisp1_set_next_buf(cap); in rkisp1_handle_buffer()
812 spin_unlock(&cap->buf.lock); in rkisp1_handle_buffer()
833 struct rkisp1_capture *cap = &rkisp1->capture_devs[i]; in rkisp1_capture_isr() local
835 if (!(status & RKISP1_CIF_MI_FRAME(cap))) in rkisp1_capture_isr()
837 if (!cap->is_stopping) { in rkisp1_capture_isr()
838 rkisp1_handle_buffer(cap); in rkisp1_capture_isr()
849 if (!cap->ops->is_stopped(cap)) { in rkisp1_capture_isr()
850 cap->ops->stop(cap); in rkisp1_capture_isr()
853 cap->is_stopping = false; in rkisp1_capture_isr()
854 cap->is_streaming = false; in rkisp1_capture_isr()
855 wake_up(&cap->done); in rkisp1_capture_isr()
871 struct rkisp1_capture *cap = queue->drv_priv; in rkisp1_vb2_queue_setup() local
872 const struct v4l2_pix_format_mplane *pixm = &cap->pix.fmt; in rkisp1_vb2_queue_setup()
896 struct rkisp1_capture *cap = vb->vb2_queue->drv_priv; in rkisp1_vb2_buf_init() local
897 const struct v4l2_pix_format_mplane *pixm = &cap->pix.fmt; in rkisp1_vb2_buf_init()
918 if (cap->pix.info->comp_planes == 3 && cap->pix.cfg->uv_swap) in rkisp1_vb2_buf_init()
929 struct rkisp1_capture *cap = vb->vb2_queue->drv_priv; in rkisp1_vb2_buf_queue() local
931 spin_lock_irq(&cap->buf.lock); in rkisp1_vb2_buf_queue()
932 list_add_tail(&ispbuf->queue, &cap->buf.queue); in rkisp1_vb2_buf_queue()
933 spin_unlock_irq(&cap->buf.lock); in rkisp1_vb2_buf_queue()
938 struct rkisp1_capture *cap = vb->vb2_queue->drv_priv; in rkisp1_vb2_buf_prepare() local
941 for (i = 0; i < cap->pix.fmt.num_planes; i++) { in rkisp1_vb2_buf_prepare()
942 unsigned long size = cap->pix.fmt.plane_fmt[i].sizeimage; in rkisp1_vb2_buf_prepare()
945 dev_err(cap->rkisp1->dev, in rkisp1_vb2_buf_prepare()
956 static void rkisp1_return_all_buffers(struct rkisp1_capture *cap, in rkisp1_return_all_buffers() argument
961 spin_lock_irq(&cap->buf.lock); in rkisp1_return_all_buffers()
962 if (cap->buf.curr) { in rkisp1_return_all_buffers()
963 vb2_buffer_done(&cap->buf.curr->vb.vb2_buf, state); in rkisp1_return_all_buffers()
964 cap->buf.curr = NULL; in rkisp1_return_all_buffers()
966 if (cap->buf.next) { in rkisp1_return_all_buffers()
967 vb2_buffer_done(&cap->buf.next->vb.vb2_buf, state); in rkisp1_return_all_buffers()
968 cap->buf.next = NULL; in rkisp1_return_all_buffers()
970 while (!list_empty(&cap->buf.queue)) { in rkisp1_return_all_buffers()
971 buf = list_first_entry(&cap->buf.queue, in rkisp1_return_all_buffers()
976 spin_unlock_irq(&cap->buf.lock); in rkisp1_return_all_buffers()
985 static void rkisp1_cap_stream_enable(struct rkisp1_capture *cap) in rkisp1_cap_stream_enable() argument
987 struct rkisp1_device *rkisp1 = cap->rkisp1; in rkisp1_cap_stream_enable()
988 struct rkisp1_capture *other = &rkisp1->capture_devs[cap->id ^ 1]; in rkisp1_cap_stream_enable()
991 cap->ops->set_data_path(cap); in rkisp1_cap_stream_enable()
992 cap->ops->config(cap); in rkisp1_cap_stream_enable()
995 spin_lock_irq(&cap->buf.lock); in rkisp1_cap_stream_enable()
996 rkisp1_set_next_buf(cap); in rkisp1_cap_stream_enable()
997 cap->ops->enable(cap); in rkisp1_cap_stream_enable()
1032 rkisp1_set_next_buf(cap); in rkisp1_cap_stream_enable()
1034 spin_unlock_irq(&cap->buf.lock); in rkisp1_cap_stream_enable()
1035 cap->is_streaming = true; in rkisp1_cap_stream_enable()
1038 static void rkisp1_cap_stream_disable(struct rkisp1_capture *cap) in rkisp1_cap_stream_disable() argument
1043 cap->is_stopping = true; in rkisp1_cap_stream_disable()
1044 ret = wait_event_timeout(cap->done, in rkisp1_cap_stream_disable()
1045 !cap->is_streaming, in rkisp1_cap_stream_disable()
1048 cap->rkisp1->debug.stop_timeout[cap->id]++; in rkisp1_cap_stream_disable()
1049 cap->ops->stop(cap); in rkisp1_cap_stream_disable()
1050 cap->is_stopping = false; in rkisp1_cap_stream_disable()
1051 cap->is_streaming = false; in rkisp1_cap_stream_disable()
1062 static void rkisp1_pipeline_stream_disable(struct rkisp1_capture *cap) in rkisp1_pipeline_stream_disable() argument
1063 __must_hold(&cap->rkisp1->stream_lock) in rkisp1_pipeline_stream_disable()
1065 struct rkisp1_device *rkisp1 = cap->rkisp1; in rkisp1_pipeline_stream_disable()
1067 rkisp1_cap_stream_disable(cap); in rkisp1_pipeline_stream_disable()
1076 v4l2_subdev_call(&rkisp1->resizer_devs[cap->id].sd, video, s_stream, in rkisp1_pipeline_stream_disable()
1086 static int rkisp1_pipeline_stream_enable(struct rkisp1_capture *cap) in rkisp1_pipeline_stream_enable() argument
1087 __must_hold(&cap->rkisp1->stream_lock) in rkisp1_pipeline_stream_enable()
1089 struct rkisp1_device *rkisp1 = cap->rkisp1; in rkisp1_pipeline_stream_enable()
1092 rkisp1_cap_stream_enable(cap); in rkisp1_pipeline_stream_enable()
1094 ret = v4l2_subdev_call(&rkisp1->resizer_devs[cap->id].sd, video, in rkisp1_pipeline_stream_enable()
1113 v4l2_subdev_call(&rkisp1->resizer_devs[cap->id].sd, video, s_stream, in rkisp1_pipeline_stream_enable()
1116 rkisp1_cap_stream_disable(cap); in rkisp1_pipeline_stream_enable()
1123 struct rkisp1_capture *cap = queue->drv_priv; in rkisp1_vb2_stop_streaming() local
1124 struct rkisp1_vdev_node *node = &cap->vnode; in rkisp1_vb2_stop_streaming()
1125 struct rkisp1_device *rkisp1 = cap->rkisp1; in rkisp1_vb2_stop_streaming()
1128 mutex_lock(&cap->rkisp1->stream_lock); in rkisp1_vb2_stop_streaming()
1130 rkisp1_pipeline_stream_disable(cap); in rkisp1_vb2_stop_streaming()
1132 rkisp1_return_all_buffers(cap, VB2_BUF_STATE_ERROR); in rkisp1_vb2_stop_streaming()
1139 rkisp1_dummy_buf_destroy(cap); in rkisp1_vb2_stop_streaming()
1143 mutex_unlock(&cap->rkisp1->stream_lock); in rkisp1_vb2_stop_streaming()
1149 struct rkisp1_capture *cap = queue->drv_priv; in rkisp1_vb2_start_streaming() local
1150 struct media_entity *entity = &cap->vnode.vdev.entity; in rkisp1_vb2_start_streaming()
1153 mutex_lock(&cap->rkisp1->stream_lock); in rkisp1_vb2_start_streaming()
1155 ret = video_device_pipeline_start(&cap->vnode.vdev, &cap->rkisp1->pipe); in rkisp1_vb2_start_streaming()
1157 dev_err(cap->rkisp1->dev, "start pipeline failed %d\n", ret); in rkisp1_vb2_start_streaming()
1161 ret = rkisp1_dummy_buf_create(cap); in rkisp1_vb2_start_streaming()
1165 ret = pm_runtime_resume_and_get(cap->rkisp1->dev); in rkisp1_vb2_start_streaming()
1167 dev_err(cap->rkisp1->dev, "power up failed %d\n", ret); in rkisp1_vb2_start_streaming()
1172 dev_err(cap->rkisp1->dev, "open cif pipeline failed %d\n", ret); in rkisp1_vb2_start_streaming()
1176 ret = rkisp1_pipeline_stream_enable(cap); in rkisp1_vb2_start_streaming()
1180 mutex_unlock(&cap->rkisp1->stream_lock); in rkisp1_vb2_start_streaming()
1187 pm_runtime_put(cap->rkisp1->dev); in rkisp1_vb2_start_streaming()
1189 rkisp1_dummy_buf_destroy(cap); in rkisp1_vb2_start_streaming()
1191 video_device_pipeline_stop(&cap->vnode.vdev); in rkisp1_vb2_start_streaming()
1193 rkisp1_return_all_buffers(cap, VB2_BUF_STATE_QUEUED); in rkisp1_vb2_start_streaming()
1194 mutex_unlock(&cap->rkisp1->stream_lock); in rkisp1_vb2_start_streaming()
1213 rkisp1_fill_pixfmt(const struct rkisp1_capture *cap, in rkisp1_fill_pixfmt() argument
1232 if (cap->id == RKISP1_SELFPATH || in rkisp1_fill_pixfmt()
1233 rkisp1_has_feature(cap->rkisp1, MAIN_STRIDE)) in rkisp1_fill_pixfmt()
1266 rkisp1_find_fmt_cfg(const struct rkisp1_capture *cap, const u32 pixelfmt) in rkisp1_find_fmt_cfg() argument
1268 bool yc_swap_support = rkisp1_has_feature(cap->rkisp1, MAIN_STRIDE); in rkisp1_find_fmt_cfg()
1271 for (i = 0; i < cap->config->fmt_size; i++) { in rkisp1_find_fmt_cfg()
1272 const struct rkisp1_capture_fmt_cfg *fmt = &cap->config->fmts[i]; in rkisp1_find_fmt_cfg()
1276 return &cap->config->fmts[i]; in rkisp1_find_fmt_cfg()
1281 static void rkisp1_try_fmt(const struct rkisp1_capture *cap, in rkisp1_try_fmt() argument
1286 const struct rkisp1_capture_config *config = cap->config; in rkisp1_try_fmt()
1296 fmt = rkisp1_find_fmt_cfg(cap, pixm->pixelformat); in rkisp1_try_fmt()
1303 RKISP1_RSZ_SRC_MIN_WIDTH, max_widths[cap->id]); in rkisp1_try_fmt()
1305 RKISP1_RSZ_SRC_MIN_HEIGHT, max_heights[cap->id]); in rkisp1_try_fmt()
1312 info = rkisp1_fill_pixfmt(cap, pixm); in rkisp1_try_fmt()
1320 static void rkisp1_set_fmt(struct rkisp1_capture *cap, in rkisp1_set_fmt() argument
1323 rkisp1_try_fmt(cap, pixm, &cap->pix.cfg, &cap->pix.info); in rkisp1_set_fmt()
1325 cap->pix.fmt = *pixm; in rkisp1_set_fmt()
1326 cap->stride = pixm->plane_fmt[0].bytesperline / cap->pix.info->bpp[0]; in rkisp1_set_fmt()
1332 struct rkisp1_capture *cap = video_drvdata(file); in rkisp1_try_fmt_vid_cap_mplane() local
1334 rkisp1_try_fmt(cap, &f->fmt.pix_mp, NULL, NULL); in rkisp1_try_fmt_vid_cap_mplane()
1342 struct rkisp1_capture *cap = video_drvdata(file); in rkisp1_enum_fmt_vid_cap_mplane() local
1344 bool yc_swap_support = rkisp1_has_feature(cap->rkisp1, MAIN_STRIDE); in rkisp1_enum_fmt_vid_cap_mplane()
1347 if (f->index >= cap->config->fmt_size) in rkisp1_enum_fmt_vid_cap_mplane()
1351 fmt = &cap->config->fmts[f->index]; in rkisp1_enum_fmt_vid_cap_mplane()
1356 for (i = 0; i < cap->config->fmt_size; i++) { in rkisp1_enum_fmt_vid_cap_mplane()
1357 fmt = &cap->config->fmts[i]; in rkisp1_enum_fmt_vid_cap_mplane()
1384 struct rkisp1_capture *cap = video_drvdata(file); in rkisp1_enum_framesizes() local
1392 fsize->stepwise.max_width = max_widths[cap->id]; in rkisp1_enum_framesizes()
1396 fsize->stepwise.max_height = max_heights[cap->id]; in rkisp1_enum_framesizes()
1405 struct rkisp1_capture *cap = video_drvdata(file); in rkisp1_s_fmt_vid_cap_mplane() local
1407 rkisp1_vdev_to_node(&cap->vnode.vdev); in rkisp1_s_fmt_vid_cap_mplane()
1412 rkisp1_set_fmt(cap, &f->fmt.pix_mp); in rkisp1_s_fmt_vid_cap_mplane()
1420 struct rkisp1_capture *cap = video_drvdata(file); in rkisp1_g_fmt_vid_cap_mplane() local
1422 f->fmt.pix_mp = cap->pix.fmt; in rkisp1_g_fmt_vid_cap_mplane()
1428 rkisp1_querycap(struct file *file, void *priv, struct v4l2_capability *cap) in rkisp1_querycap() argument
1430 strscpy(cap->driver, RKISP1_DRIVER_NAME, sizeof(cap->driver)); in rkisp1_querycap()
1431 strscpy(cap->card, RKISP1_DRIVER_NAME, sizeof(cap->card)); in rkisp1_querycap()
1432 strscpy(cap->bus_info, RKISP1_BUS_INFO, sizeof(cap->bus_info)); in rkisp1_querycap()
1463 struct rkisp1_capture *cap = video_get_drvdata(vdev); in rkisp1_capture_link_validate() local
1465 rkisp1_find_fmt_cfg(cap, cap->pix.fmt.pixelformat); in rkisp1_capture_link_validate()
1476 if (sd_fmt.format.height != cap->pix.fmt.height || in rkisp1_capture_link_validate()
1477 sd_fmt.format.width != cap->pix.fmt.width || in rkisp1_capture_link_validate()
1479 dev_dbg(cap->rkisp1->dev, in rkisp1_capture_link_validate()
1484 sd_fmt.format.height, fmt->mbus, cap->pix.fmt.width, in rkisp1_capture_link_validate()
1485 cap->pix.fmt.height); in rkisp1_capture_link_validate()
1508 static void rkisp1_unregister_capture(struct rkisp1_capture *cap) in rkisp1_unregister_capture() argument
1510 if (!video_is_registered(&cap->vnode.vdev)) in rkisp1_unregister_capture()
1513 media_entity_cleanup(&cap->vnode.vdev.entity); in rkisp1_unregister_capture()
1514 vb2_video_unregister_device(&cap->vnode.vdev); in rkisp1_unregister_capture()
1515 mutex_destroy(&cap->vnode.vlock); in rkisp1_unregister_capture()
1527 static int rkisp1_register_capture(struct rkisp1_capture *cap) in rkisp1_register_capture() argument
1532 struct v4l2_device *v4l2_dev = &cap->rkisp1->v4l2_dev; in rkisp1_register_capture()
1533 struct video_device *vdev = &cap->vnode.vdev; in rkisp1_register_capture()
1538 strscpy(vdev->name, dev_names[cap->id], sizeof(vdev->name)); in rkisp1_register_capture()
1551 video_set_drvdata(vdev, cap); in rkisp1_register_capture()
1558 q->drv_priv = cap; in rkisp1_register_capture()
1565 q->dev = cap->rkisp1->dev; in rkisp1_register_capture()
1568 dev_err(cap->rkisp1->dev, in rkisp1_register_capture()
1581 dev_err(cap->rkisp1->dev, in rkisp1_register_capture()
1600 struct rkisp1_capture *cap = &rkisp1->capture_devs[id]; in rkisp1_capture_init() local
1603 memset(cap, 0, sizeof(*cap)); in rkisp1_capture_init()
1604 cap->id = id; in rkisp1_capture_init()
1605 cap->rkisp1 = rkisp1; in rkisp1_capture_init()
1607 INIT_LIST_HEAD(&cap->buf.queue); in rkisp1_capture_init()
1608 init_waitqueue_head(&cap->done); in rkisp1_capture_init()
1609 spin_lock_init(&cap->buf.lock); in rkisp1_capture_init()
1610 if (cap->id == RKISP1_SELFPATH) { in rkisp1_capture_init()
1611 cap->ops = &rkisp1_capture_ops_sp; in rkisp1_capture_init()
1612 cap->config = &rkisp1_capture_config_sp; in rkisp1_capture_init()
1614 cap->ops = &rkisp1_capture_ops_mp; in rkisp1_capture_init()
1615 cap->config = &rkisp1_capture_config_mp; in rkisp1_capture_init()
1618 cap->is_streaming = false; in rkisp1_capture_init()
1624 rkisp1_set_fmt(cap, &pixm); in rkisp1_capture_init()
1634 struct rkisp1_capture *cap = &rkisp1->capture_devs[i]; in rkisp1_capture_devs_register() local
1638 ret = rkisp1_register_capture(cap); in rkisp1_capture_devs_register()