Lines Matching full:line

33 	container_of(vfe_line_array(ptr_line), struct vfe_device, line)
155 static u32 vfe_src_pad_code(struct vfe_line *line, u32 sink_code, in vfe_src_pad_code() argument
158 struct vfe_device *vfe = to_vfe(line); in vfe_src_pad_code()
324 for (i = 0; i < ARRAY_SIZE(vfe->line); i++) { in vfe_init_outputs()
325 struct vfe_output *output = &vfe->line[i].output; in vfe_init_outputs()
582 static int vfe_get_output(struct vfe_line *line) in vfe_get_output() argument
584 struct vfe_device *vfe = to_vfe(line); in vfe_get_output()
586 struct v4l2_format *f = &line->video_out.active_fmt; in vfe_get_output()
593 output = &line->output; in vfe_get_output()
615 wm_idx = vfe_reserve_wm(vfe, line->id); in vfe_get_output()
639 static int vfe_put_output(struct vfe_line *line) in vfe_put_output() argument
641 struct vfe_device *vfe = to_vfe(line); in vfe_put_output()
642 struct vfe_output *output = &line->output; in vfe_put_output()
657 static int vfe_enable_output(struct vfe_line *line) in vfe_enable_output() argument
659 struct vfe_device *vfe = to_vfe(line); in vfe_enable_output()
660 struct vfe_output *output = &line->output; in vfe_enable_output()
672 sensor = camss_find_sensor(&line->subdev.entity); in vfe_enable_output()
685 ops->reg_update_clear(vfe, line->id); in vfe_enable_output()
729 if (line->id != VFE_LINE_PIX) { in vfe_enable_output()
731 ops->enable_irq_wm_line(vfe, output->wm_idx[0], line->id, 1); in vfe_enable_output()
732 ops->bus_connect_wm_to_rdi(vfe, output->wm_idx[0], line->id); in vfe_enable_output()
734 ops->set_rdi_cid(vfe, line->id, 0); in vfe_enable_output()
749 &line->video_out.active_fmt.fmt.pix_mp, in vfe_enable_output()
754 ops->enable_irq_pix_line(vfe, 0, line->id, 1); in vfe_enable_output()
756 ops->set_camif_cfg(vfe, line); in vfe_enable_output()
757 ops->set_realign_cfg(vfe, line, 1); in vfe_enable_output()
759 ops->set_demux_cfg(vfe, line); in vfe_enable_output()
760 ops->set_scale_cfg(vfe, line); in vfe_enable_output()
761 ops->set_crop_cfg(vfe, line); in vfe_enable_output()
766 ops->reg_update(vfe, line->id); in vfe_enable_output()
773 static int vfe_disable_output(struct vfe_line *line) in vfe_disable_output() argument
775 struct vfe_device *vfe = to_vfe(line); in vfe_disable_output()
776 struct vfe_output *output = &line->output; in vfe_disable_output()
796 ops->reg_update(vfe, line->id); in vfe_disable_output()
807 if (line->id != VFE_LINE_PIX) { in vfe_disable_output()
810 line->id); in vfe_disable_output()
811 ops->enable_irq_wm_line(vfe, output->wm_idx[0], line->id, 0); in vfe_disable_output()
820 ops->enable_irq_pix_line(vfe, 0, line->id, 0); in vfe_disable_output()
822 ops->set_realign_cfg(vfe, line, 0); in vfe_disable_output()
835 * vfe_enable - Enable streaming on VFE line
836 * @line: VFE line
840 static int vfe_enable(struct vfe_line *line) in vfe_enable() argument
842 struct vfe_device *vfe = to_vfe(line); in vfe_enable()
861 ret = vfe_get_output(line); in vfe_enable()
865 ret = vfe_enable_output(line); in vfe_enable()
875 vfe_put_output(line); in vfe_enable()
891 * vfe_disable - Disable streaming on VFE line
892 * @line: VFE line
896 static int vfe_disable(struct vfe_line *line) in vfe_disable() argument
898 struct vfe_device *vfe = to_vfe(line); in vfe_disable()
900 vfe_disable_output(line); in vfe_disable()
902 vfe_put_output(line); in vfe_disable()
919 * @line_id: VFE line
927 output = &vfe->line[line_id].output; in vfe_isr_sof()
938 * @line_id: VFE line
948 output = &vfe->line[line_id].output; in vfe_isr_reg_update()
1025 output = &vfe->line[vfe->wm_output_map[wm]].output; in vfe_isr_wm_done()
1119 ret = camss_get_pixel_clock(&vfe->line[i].subdev.entity, in vfe_set_clock_rates()
1140 struct vfe_line *l = &vfe->line[j]; in vfe_set_clock_rates()
1201 ret = camss_get_pixel_clock(&vfe->line[i].subdev.entity, in vfe_check_clock_rates()
1222 struct vfe_line *l = &vfe->line[j]; in vfe_check_clock_rates()
1346 struct vfe_line *line = container_of(vid, struct vfe_line, video_out); in vfe_queue_buffer() local
1347 struct vfe_device *vfe = to_vfe(line); in vfe_queue_buffer()
1351 output = &line->output; in vfe_queue_buffer()
1375 struct vfe_line *line = container_of(vid, struct vfe_line, video_out); in vfe_flush_buffers() local
1376 struct vfe_device *vfe = to_vfe(line); in vfe_flush_buffers()
1380 output = &line->output; in vfe_flush_buffers()
1411 struct vfe_line *line = v4l2_get_subdevdata(sd); in vfe_set_power() local
1412 struct vfe_device *vfe = to_vfe(line); in vfe_set_power()
1439 struct vfe_line *line = v4l2_get_subdevdata(sd); in vfe_set_stream() local
1440 struct vfe_device *vfe = to_vfe(line); in vfe_set_stream()
1444 ret = vfe_enable(line); in vfe_set_stream()
1449 ret = vfe_disable(line); in vfe_set_stream()
1460 * @line: VFE line
1468 __vfe_get_format(struct vfe_line *line, in __vfe_get_format() argument
1474 return v4l2_subdev_get_try_format(&line->subdev, cfg, pad); in __vfe_get_format()
1476 return &line->fmt[pad]; in __vfe_get_format()
1481 * @line: VFE line
1488 __vfe_get_compose(struct vfe_line *line, in __vfe_get_compose() argument
1493 return v4l2_subdev_get_try_compose(&line->subdev, cfg, in __vfe_get_compose()
1496 return &line->compose; in __vfe_get_compose()
1501 * @line: VFE line
1508 __vfe_get_crop(struct vfe_line *line, in __vfe_get_crop() argument
1513 return v4l2_subdev_get_try_crop(&line->subdev, cfg, in __vfe_get_crop()
1516 return &line->crop; in __vfe_get_crop()
1521 * @line: VFE line
1527 static void vfe_try_format(struct vfe_line *line, in vfe_try_format() argument
1540 for (i = 0; i < line->nformats; i++) in vfe_try_format()
1541 if (fmt->code == line->formats[i].code) in vfe_try_format()
1545 if (i >= line->nformats) in vfe_try_format()
1560 *fmt = *__vfe_get_format(line, cfg, MSM_VFE_PAD_SINK, which); in vfe_try_format()
1562 fmt->code = vfe_src_pad_code(line, fmt->code, 0, code); in vfe_try_format()
1564 if (line->id == VFE_LINE_PIX) { in vfe_try_format()
1567 rect = __vfe_get_crop(line, cfg, which); in vfe_try_format()
1581 * @line: VFE line
1586 static void vfe_try_compose(struct vfe_line *line, in vfe_try_compose() argument
1593 fmt = __vfe_get_format(line, cfg, MSM_VFE_PAD_SINK, which); in vfe_try_compose()
1620 * @line: VFE line
1625 static void vfe_try_crop(struct vfe_line *line, in vfe_try_crop() argument
1632 compose = __vfe_get_compose(line, cfg, which); in vfe_try_crop()
1646 /* wm in line based mode writes multiple of 16 horizontally */ in vfe_try_crop()
1673 struct vfe_line *line = v4l2_get_subdevdata(sd); in vfe_enum_mbus_code() local
1676 if (code->index >= line->nformats) in vfe_enum_mbus_code()
1679 code->code = line->formats[code->index].code; in vfe_enum_mbus_code()
1683 sink_fmt = __vfe_get_format(line, cfg, MSM_VFE_PAD_SINK, in vfe_enum_mbus_code()
1686 code->code = vfe_src_pad_code(line, sink_fmt->code, in vfe_enum_mbus_code()
1707 struct vfe_line *line = v4l2_get_subdevdata(sd); in vfe_enum_frame_size() local
1716 vfe_try_format(line, cfg, fse->pad, &format, fse->which); in vfe_enum_frame_size()
1726 vfe_try_format(line, cfg, fse->pad, &format, fse->which); in vfe_enum_frame_size()
1745 struct vfe_line *line = v4l2_get_subdevdata(sd); in vfe_get_format() local
1748 format = __vfe_get_format(line, cfg, fmt->pad, fmt->which); in vfe_get_format()
1773 struct vfe_line *line = v4l2_get_subdevdata(sd); in vfe_set_format() local
1776 format = __vfe_get_format(line, cfg, fmt->pad, fmt->which); in vfe_set_format()
1780 vfe_try_format(line, cfg, fmt->pad, &fmt->format, fmt->which); in vfe_set_format()
1788 format = __vfe_get_format(line, cfg, MSM_VFE_PAD_SRC, in vfe_set_format()
1792 vfe_try_format(line, cfg, MSM_VFE_PAD_SRC, format, in vfe_set_format()
1795 if (line->id != VFE_LINE_PIX) in vfe_set_format()
1824 struct vfe_line *line = v4l2_get_subdevdata(sd); in vfe_get_selection() local
1829 if (line->id != VFE_LINE_PIX) in vfe_get_selection()
1847 rect = __vfe_get_compose(line, cfg, sel->which); in vfe_get_selection()
1859 rect = __vfe_get_compose(line, cfg, sel->which); in vfe_get_selection()
1869 rect = __vfe_get_crop(line, cfg, sel->which); in vfe_get_selection()
1894 struct vfe_line *line = v4l2_get_subdevdata(sd); in vfe_set_selection() local
1898 if (line->id != VFE_LINE_PIX) in vfe_set_selection()
1905 rect = __vfe_get_compose(line, cfg, sel->which); in vfe_set_selection()
1909 vfe_try_compose(line, cfg, &sel->r, sel->which); in vfe_set_selection()
1922 rect = __vfe_get_crop(line, cfg, sel->which); in vfe_set_selection()
1926 vfe_try_crop(line, cfg, &sel->r, sel->which); in vfe_set_selection()
2082 struct vfe_line *l = &vfe->line[i]; in msm_vfe_subdev_init()
2125 struct vfe_line *line; in msm_vfe_get_vfe_id() local
2129 line = v4l2_get_subdevdata(sd); in msm_vfe_get_vfe_id()
2130 vfe = to_vfe(line); in msm_vfe_get_vfe_id()
2136 * msm_vfe_get_vfe_line_id - Get VFE line id by media entity
2138 * @id: Return VFE line id here
2143 struct vfe_line *line; in msm_vfe_get_vfe_line_id() local
2146 line = v4l2_get_subdevdata(sd); in msm_vfe_get_vfe_line_id()
2148 *id = line->id; in msm_vfe_get_vfe_line_id()
2230 for (i = 0; i < ARRAY_SIZE(vfe->line); i++) { in msm_vfe_register_entities()
2233 sd = &vfe->line[i].subdev; in msm_vfe_register_entities()
2234 pads = vfe->line[i].pads; in msm_vfe_register_entities()
2235 video_out = &vfe->line[i].video_out; in msm_vfe_register_entities()
2247 v4l2_set_subdevdata(sd, &vfe->line[i]); in msm_vfe_register_entities()
2315 sd = &vfe->line[i].subdev; in msm_vfe_register_entities()
2316 video_out = &vfe->line[i].video_out; in msm_vfe_register_entities()
2337 for (i = 0; i < ARRAY_SIZE(vfe->line); i++) { in msm_vfe_unregister_entities()
2338 struct v4l2_subdev *sd = &vfe->line[i].subdev; in msm_vfe_unregister_entities()
2339 struct camss_video *video_out = &vfe->line[i].video_out; in msm_vfe_unregister_entities()