Lines Matching refs:dev

39 	struct vivid_dev *dev = vb2_get_drv_priv(vq);  in vid_out_queue_setup()  local
40 const struct vivid_fmt *vfmt = dev->fmt_out; in vid_out_queue_setup()
42 unsigned h = dev->fmt_out_rect.height; in vid_out_queue_setup()
43 unsigned size = dev->bytesperline_out[0] * h; in vid_out_queue_setup()
47 size += dev->bytesperline_out[p] * h / vfmt->vdownsampling[p]; in vid_out_queue_setup()
49 if (dev->field_out == V4L2_FIELD_ALTERNATE) { in vid_out_queue_setup()
58 if (dev->queue_setup_error) { in vid_out_queue_setup()
63 dev->queue_setup_error = false; in vid_out_queue_setup()
87 if (sizes[p] < dev->bytesperline_out[p] * h) in vid_out_queue_setup()
92 sizes[p] = p ? dev->bytesperline_out[p] * h : size; in vid_out_queue_setup()
105 dprintk(dev, 1, "%s: count=%d\n", __func__, *nbuffers); in vid_out_queue_setup()
107 dprintk(dev, 1, "%s: size[%u]=%u\n", __func__, p, sizes[p]); in vid_out_queue_setup()
114 struct vivid_dev *dev = vb2_get_drv_priv(vb->vb2_queue); in vid_out_buf_prepare() local
119 dprintk(dev, 1, "%s\n", __func__); in vid_out_buf_prepare()
121 if (WARN_ON(NULL == dev->fmt_out)) in vid_out_buf_prepare()
124 planes = dev->fmt_out->planes; in vid_out_buf_prepare()
126 if (dev->buf_prepare_error) { in vid_out_buf_prepare()
131 dev->buf_prepare_error = false; in vid_out_buf_prepare()
135 if (dev->field_out != V4L2_FIELD_ALTERNATE) in vid_out_buf_prepare()
136 vbuf->field = dev->field_out; in vid_out_buf_prepare()
142 size = dev->bytesperline_out[p] * dev->fmt_out_rect.height + in vid_out_buf_prepare()
146 dprintk(dev, 1, "%s the payload is too small for plane %u (%lu < %lu)\n", in vid_out_buf_prepare()
158 struct vivid_dev *dev = vb2_get_drv_priv(vb->vb2_queue); in vid_out_buf_queue() local
161 dprintk(dev, 1, "%s\n", __func__); in vid_out_buf_queue()
163 spin_lock(&dev->slock); in vid_out_buf_queue()
164 list_add_tail(&buf->list, &dev->vid_out_active); in vid_out_buf_queue()
165 spin_unlock(&dev->slock); in vid_out_buf_queue()
170 struct vivid_dev *dev = vb2_get_drv_priv(vq); in vid_out_start_streaming() local
173 if (vb2_is_streaming(&dev->vb_vid_cap_q)) in vid_out_start_streaming()
174 dev->can_loop_video = vivid_vid_can_loop(dev); in vid_out_start_streaming()
176 if (dev->kthread_vid_out) in vid_out_start_streaming()
179 dev->vid_out_seq_count = 0; in vid_out_start_streaming()
180 dprintk(dev, 1, "%s\n", __func__); in vid_out_start_streaming()
181 if (dev->start_streaming_error) { in vid_out_start_streaming()
182 dev->start_streaming_error = false; in vid_out_start_streaming()
185 err = vivid_start_generating_vid_out(dev, &dev->vid_out_streaming); in vid_out_start_streaming()
190 list_for_each_entry_safe(buf, tmp, &dev->vid_out_active, list) { in vid_out_start_streaming()
202 struct vivid_dev *dev = vb2_get_drv_priv(vq); in vid_out_stop_streaming() local
204 dprintk(dev, 1, "%s\n", __func__); in vid_out_stop_streaming()
205 vivid_stop_generating_vid_out(dev, &dev->vid_out_streaming); in vid_out_stop_streaming()
206 dev->can_loop_video = false; in vid_out_stop_streaming()
223 void vivid_update_format_out(struct vivid_dev *dev) in vivid_update_format_out() argument
225 struct v4l2_bt_timings *bt = &dev->dv_timings_out.bt; in vivid_update_format_out()
228 switch (dev->output_type[dev->output]) { in vivid_update_format_out()
231 dev->field_out = dev->tv_field_out; in vivid_update_format_out()
232 dev->sink_rect.width = 720; in vivid_update_format_out()
233 if (dev->std_out & V4L2_STD_525_60) { in vivid_update_format_out()
234 dev->sink_rect.height = 480; in vivid_update_format_out()
235 dev->timeperframe_vid_out = (struct v4l2_fract) { 1001, 30000 }; in vivid_update_format_out()
236 dev->service_set_out = V4L2_SLICED_CAPTION_525; in vivid_update_format_out()
238 dev->sink_rect.height = 576; in vivid_update_format_out()
239 dev->timeperframe_vid_out = (struct v4l2_fract) { 1000, 25000 }; in vivid_update_format_out()
240 dev->service_set_out = V4L2_SLICED_WSS_625 | V4L2_SLICED_TELETEXT_B; in vivid_update_format_out()
242 dev->colorspace_out = V4L2_COLORSPACE_SMPTE170M; in vivid_update_format_out()
245 dev->sink_rect.width = bt->width; in vivid_update_format_out()
246 dev->sink_rect.height = bt->height; in vivid_update_format_out()
248 dev->timeperframe_vid_out = (struct v4l2_fract) { in vivid_update_format_out()
252 dev->field_out = V4L2_FIELD_ALTERNATE; in vivid_update_format_out()
254 dev->field_out = V4L2_FIELD_NONE; in vivid_update_format_out()
255 if (!dev->dvi_d_out && (bt->flags & V4L2_DV_FL_IS_CE_VIDEO)) { in vivid_update_format_out()
257 dev->colorspace_out = V4L2_COLORSPACE_SMPTE170M; in vivid_update_format_out()
259 dev->colorspace_out = V4L2_COLORSPACE_REC709; in vivid_update_format_out()
261 dev->colorspace_out = V4L2_COLORSPACE_SRGB; in vivid_update_format_out()
265 dev->xfer_func_out = V4L2_XFER_FUNC_DEFAULT; in vivid_update_format_out()
266 dev->ycbcr_enc_out = V4L2_YCBCR_ENC_DEFAULT; in vivid_update_format_out()
267 dev->quantization_out = V4L2_QUANTIZATION_DEFAULT; in vivid_update_format_out()
268 dev->compose_out = dev->sink_rect; in vivid_update_format_out()
269 dev->compose_bounds_out = dev->sink_rect; in vivid_update_format_out()
270 dev->crop_out = dev->compose_out; in vivid_update_format_out()
271 if (V4L2_FIELD_HAS_T_OR_B(dev->field_out)) in vivid_update_format_out()
272 dev->crop_out.height /= 2; in vivid_update_format_out()
273 dev->fmt_out_rect = dev->crop_out; in vivid_update_format_out()
274 for (p = 0; p < dev->fmt_out->planes; p++) in vivid_update_format_out()
275 dev->bytesperline_out[p] = in vivid_update_format_out()
276 (dev->sink_rect.width * dev->fmt_out->bit_depth[p]) / 8; in vivid_update_format_out()
280 static enum v4l2_field vivid_field_out(struct vivid_dev *dev, enum v4l2_field field) in vivid_field_out() argument
282 if (vivid_is_svid_out(dev)) { in vivid_field_out()
295 if (vivid_is_hdmi_out(dev)) in vivid_field_out()
296 return dev->dv_timings_out.bt.interlaced ? V4L2_FIELD_ALTERNATE : in vivid_field_out()
301 static enum tpg_pixel_aspect vivid_get_pixel_aspect(const struct vivid_dev *dev) in vivid_get_pixel_aspect() argument
303 if (vivid_is_svid_out(dev)) in vivid_get_pixel_aspect()
304 return (dev->std_out & V4L2_STD_525_60) ? in vivid_get_pixel_aspect()
307 if (vivid_is_hdmi_out(dev) && in vivid_get_pixel_aspect()
308 dev->sink_rect.width == 720 && dev->sink_rect.height <= 576) in vivid_get_pixel_aspect()
309 return dev->sink_rect.height == 480 ? in vivid_get_pixel_aspect()
318 struct vivid_dev *dev = video_drvdata(file); in vivid_g_fmt_vid_out() local
320 const struct vivid_fmt *fmt = dev->fmt_out; in vivid_g_fmt_vid_out()
323 mp->width = dev->fmt_out_rect.width; in vivid_g_fmt_vid_out()
324 mp->height = dev->fmt_out_rect.height; in vivid_g_fmt_vid_out()
325 mp->field = dev->field_out; in vivid_g_fmt_vid_out()
327 mp->colorspace = dev->colorspace_out; in vivid_g_fmt_vid_out()
328 mp->xfer_func = dev->xfer_func_out; in vivid_g_fmt_vid_out()
329 mp->ycbcr_enc = dev->ycbcr_enc_out; in vivid_g_fmt_vid_out()
330 mp->quantization = dev->quantization_out; in vivid_g_fmt_vid_out()
333 mp->plane_fmt[p].bytesperline = dev->bytesperline_out[p]; in vivid_g_fmt_vid_out()
338 unsigned stride = dev->bytesperline_out[p]; in vivid_g_fmt_vid_out()
349 struct vivid_dev *dev = video_drvdata(file); in vivid_try_fmt_vid_out() local
350 struct v4l2_bt_timings *bt = &dev->dv_timings_out.bt; in vivid_try_fmt_vid_out()
359 fmt = vivid_get_format(dev, mp->pixelformat); in vivid_try_fmt_vid_out()
361 dprintk(dev, 1, "Fourcc format (0x%08x) unknown.\n", in vivid_try_fmt_vid_out()
364 fmt = vivid_get_format(dev, mp->pixelformat); in vivid_try_fmt_vid_out()
367 mp->field = vivid_field_out(dev, mp->field); in vivid_try_fmt_vid_out()
368 if (vivid_is_svid_out(dev)) { in vivid_try_fmt_vid_out()
370 h = (dev->std_out & V4L2_STD_525_60) ? 480 : 576; in vivid_try_fmt_vid_out()
372 w = dev->sink_rect.width; in vivid_try_fmt_vid_out()
373 h = dev->sink_rect.height; in vivid_try_fmt_vid_out()
377 if (!dev->has_scaler_out && !dev->has_crop_out && !dev->has_compose_out) { in vivid_try_fmt_vid_out()
385 if (dev->has_scaler_out && !dev->has_crop_out) { in vivid_try_fmt_vid_out()
389 } else if (!dev->has_scaler_out && dev->has_compose_out && !dev->has_crop_out) { in vivid_try_fmt_vid_out()
390 rect_set_max_size(&r, &dev->sink_rect); in vivid_try_fmt_vid_out()
391 } else if (!dev->has_scaler_out && !dev->has_compose_out) { in vivid_try_fmt_vid_out()
392 rect_set_min_size(&r, &dev->sink_rect); in vivid_try_fmt_vid_out()
419 if (vivid_is_svid_out(dev)) { in vivid_try_fmt_vid_out()
421 } else if (dev->dvi_d_out || !(bt->flags & V4L2_DV_FL_IS_CE_VIDEO)) { in vivid_try_fmt_vid_out()
423 if (dev->dvi_d_out) in vivid_try_fmt_vid_out()
442 struct vivid_dev *dev = video_drvdata(file); in vivid_s_fmt_vid_out() local
443 struct v4l2_rect *crop = &dev->crop_out; in vivid_s_fmt_vid_out()
444 struct v4l2_rect *compose = &dev->compose_out; in vivid_s_fmt_vid_out()
445 struct vb2_queue *q = &dev->vb_vid_out_q; in vivid_s_fmt_vid_out()
454 (vivid_is_svid_out(dev) || in vivid_s_fmt_vid_out()
455 mp->width != dev->fmt_out_rect.width || in vivid_s_fmt_vid_out()
456 mp->height != dev->fmt_out_rect.height || in vivid_s_fmt_vid_out()
457 mp->pixelformat != dev->fmt_out->fourcc || in vivid_s_fmt_vid_out()
458 mp->field != dev->field_out)) { in vivid_s_fmt_vid_out()
459 dprintk(dev, 1, "%s device busy\n", __func__); in vivid_s_fmt_vid_out()
471 dev->fmt_out = vivid_get_format(dev, mp->pixelformat); in vivid_s_fmt_vid_out()
475 if (dev->has_scaler_out || dev->has_crop_out || dev->has_compose_out) { in vivid_s_fmt_vid_out()
478 if (dev->has_scaler_out) { in vivid_s_fmt_vid_out()
479 if (dev->has_crop_out) in vivid_s_fmt_vid_out()
483 if (dev->has_compose_out && !dev->has_crop_out) { in vivid_s_fmt_vid_out()
497 rect_map_inside(compose, &dev->compose_bounds_out); in vivid_s_fmt_vid_out()
498 } else if (dev->has_compose_out) { in vivid_s_fmt_vid_out()
512 rect_map_inside(compose, &dev->compose_bounds_out); in vivid_s_fmt_vid_out()
514 } else if (dev->has_compose_out && !dev->has_crop_out) { in vivid_s_fmt_vid_out()
518 rect_map_inside(compose, &dev->compose_bounds_out); in vivid_s_fmt_vid_out()
519 } else if (!dev->has_compose_out) { in vivid_s_fmt_vid_out()
526 rect_map_inside(compose, &dev->compose_bounds_out); in vivid_s_fmt_vid_out()
542 dev->fmt_out_rect.width = mp->width; in vivid_s_fmt_vid_out()
543 dev->fmt_out_rect.height = mp->height; in vivid_s_fmt_vid_out()
545 dev->bytesperline_out[p] = mp->plane_fmt[p].bytesperline; in vivid_s_fmt_vid_out()
546 for (p = dev->fmt_out->buffers; p < dev->fmt_out->planes; p++) in vivid_s_fmt_vid_out()
547 dev->bytesperline_out[p] = in vivid_s_fmt_vid_out()
548 (dev->bytesperline_out[0] * dev->fmt_out->bit_depth[p]) / in vivid_s_fmt_vid_out()
549 dev->fmt_out->bit_depth[0]; in vivid_s_fmt_vid_out()
550 dev->field_out = mp->field; in vivid_s_fmt_vid_out()
551 if (vivid_is_svid_out(dev)) in vivid_s_fmt_vid_out()
552 dev->tv_field_out = mp->field; in vivid_s_fmt_vid_out()
555 dev->colorspace_out = mp->colorspace; in vivid_s_fmt_vid_out()
556 dev->xfer_func_out = mp->xfer_func; in vivid_s_fmt_vid_out()
557 dev->ycbcr_enc_out = mp->ycbcr_enc; in vivid_s_fmt_vid_out()
558 dev->quantization_out = mp->quantization; in vivid_s_fmt_vid_out()
559 if (dev->loop_video) { in vivid_s_fmt_vid_out()
560 vivid_send_source_change(dev, SVID); in vivid_s_fmt_vid_out()
561 vivid_send_source_change(dev, HDMI); in vivid_s_fmt_vid_out()
569 struct vivid_dev *dev = video_drvdata(file); in vidioc_g_fmt_vid_out_mplane() local
571 if (!dev->multiplanar) in vidioc_g_fmt_vid_out_mplane()
579 struct vivid_dev *dev = video_drvdata(file); in vidioc_try_fmt_vid_out_mplane() local
581 if (!dev->multiplanar) in vidioc_try_fmt_vid_out_mplane()
589 struct vivid_dev *dev = video_drvdata(file); in vidioc_s_fmt_vid_out_mplane() local
591 if (!dev->multiplanar) in vidioc_s_fmt_vid_out_mplane()
599 struct vivid_dev *dev = video_drvdata(file); in vidioc_g_fmt_vid_out() local
601 if (dev->multiplanar) in vidioc_g_fmt_vid_out()
609 struct vivid_dev *dev = video_drvdata(file); in vidioc_try_fmt_vid_out() local
611 if (dev->multiplanar) in vidioc_try_fmt_vid_out()
619 struct vivid_dev *dev = video_drvdata(file); in vidioc_s_fmt_vid_out() local
621 if (dev->multiplanar) in vidioc_s_fmt_vid_out()
629 struct vivid_dev *dev = video_drvdata(file); in vivid_vid_out_g_selection() local
631 if (!dev->has_crop_out && !dev->has_compose_out) in vivid_vid_out_g_selection()
639 if (!dev->has_crop_out) in vivid_vid_out_g_selection()
641 sel->r = dev->crop_out; in vivid_vid_out_g_selection()
644 if (!dev->has_crop_out) in vivid_vid_out_g_selection()
646 sel->r = dev->fmt_out_rect; in vivid_vid_out_g_selection()
649 if (!dev->has_crop_out) in vivid_vid_out_g_selection()
654 if (!dev->has_compose_out) in vivid_vid_out_g_selection()
656 sel->r = dev->compose_out; in vivid_vid_out_g_selection()
660 if (!dev->has_compose_out) in vivid_vid_out_g_selection()
662 sel->r = dev->sink_rect; in vivid_vid_out_g_selection()
672 struct vivid_dev *dev = video_drvdata(file); in vivid_vid_out_s_selection() local
673 struct v4l2_rect *crop = &dev->crop_out; in vivid_vid_out_s_selection()
674 struct v4l2_rect *compose = &dev->compose_out; in vivid_vid_out_s_selection()
675 unsigned factor = V4L2_FIELD_HAS_T_OR_B(dev->field_out) ? 2 : 1; in vivid_vid_out_s_selection()
678 if (!dev->has_crop_out && !dev->has_compose_out) in vivid_vid_out_s_selection()
685 if (!dev->has_crop_out) in vivid_vid_out_s_selection()
691 rect_set_max_size(&s->r, &dev->fmt_out_rect); in vivid_vid_out_s_selection()
692 if (dev->has_scaler_out) { in vivid_vid_out_s_selection()
695 dev->sink_rect.width * MAX_ZOOM, in vivid_vid_out_s_selection()
696 (dev->sink_rect.height / factor) * MAX_ZOOM in vivid_vid_out_s_selection()
700 if (dev->has_compose_out) { in vivid_vid_out_s_selection()
714 rect_map_inside(compose, &dev->compose_bounds_out); in vivid_vid_out_s_selection()
716 } else if (dev->has_compose_out) { in vivid_vid_out_s_selection()
719 rect_set_max_size(&s->r, &dev->sink_rect); in vivid_vid_out_s_selection()
721 rect_map_inside(compose, &dev->compose_bounds_out); in vivid_vid_out_s_selection()
725 rect_set_size_to(&s->r, &dev->sink_rect); in vivid_vid_out_s_selection()
728 rect_map_inside(&s->r, &dev->fmt_out_rect); in vivid_vid_out_s_selection()
732 if (!dev->has_compose_out) in vivid_vid_out_s_selection()
738 rect_set_max_size(&s->r, &dev->sink_rect); in vivid_vid_out_s_selection()
739 rect_map_inside(&s->r, &dev->compose_bounds_out); in vivid_vid_out_s_selection()
742 if (dev->has_scaler_out) { in vivid_vid_out_s_selection()
743 struct v4l2_rect fmt = dev->fmt_out_rect; in vivid_vid_out_s_selection()
756 if (!dev->has_crop_out) in vivid_vid_out_s_selection()
758 if (!rect_same_size(&dev->fmt_out_rect, &fmt) && in vivid_vid_out_s_selection()
759 vb2_is_busy(&dev->vb_vid_out_q)) in vivid_vid_out_s_selection()
761 if (dev->has_crop_out) { in vivid_vid_out_s_selection()
765 dev->fmt_out_rect = fmt; in vivid_vid_out_s_selection()
766 } else if (dev->has_crop_out) { in vivid_vid_out_s_selection()
767 struct v4l2_rect fmt = dev->fmt_out_rect; in vivid_vid_out_s_selection()
770 if (!rect_same_size(&dev->fmt_out_rect, &fmt) && in vivid_vid_out_s_selection()
771 vb2_is_busy(&dev->vb_vid_out_q)) in vivid_vid_out_s_selection()
773 dev->fmt_out_rect = fmt; in vivid_vid_out_s_selection()
775 rect_map_inside(crop, &dev->fmt_out_rect); in vivid_vid_out_s_selection()
777 if (!rect_same_size(&s->r, &dev->fmt_out_rect) && in vivid_vid_out_s_selection()
778 vb2_is_busy(&dev->vb_vid_out_q)) in vivid_vid_out_s_selection()
780 rect_set_size_to(&dev->fmt_out_rect, &s->r); in vivid_vid_out_s_selection()
783 rect_map_inside(crop, &dev->fmt_out_rect); in vivid_vid_out_s_selection()
787 if (dev->bitmap_out && (compose->width != s->r.width || in vivid_vid_out_s_selection()
789 kfree(dev->bitmap_out); in vivid_vid_out_s_selection()
790 dev->bitmap_out = NULL; in vivid_vid_out_s_selection()
804 struct vivid_dev *dev = video_drvdata(file); in vivid_vid_out_cropcap() local
809 switch (vivid_get_pixel_aspect(dev)) { in vivid_vid_out_cropcap()
829 struct vivid_dev *dev = video_drvdata(file); in vidioc_g_fmt_vid_out_overlay() local
830 const struct v4l2_rect *compose = &dev->compose_out; in vidioc_g_fmt_vid_out_overlay()
834 if (!dev->has_fb) in vidioc_g_fmt_vid_out_overlay()
836 win->w.top = dev->overlay_out_top; in vidioc_g_fmt_vid_out_overlay()
837 win->w.left = dev->overlay_out_left; in vidioc_g_fmt_vid_out_overlay()
840 win->clipcount = dev->clipcount_out; in vidioc_g_fmt_vid_out_overlay()
842 win->chromakey = dev->chromakey_out; in vidioc_g_fmt_vid_out_overlay()
843 win->global_alpha = dev->global_alpha_out; in vidioc_g_fmt_vid_out_overlay()
844 if (clipcount > dev->clipcount_out) in vidioc_g_fmt_vid_out_overlay()
845 clipcount = dev->clipcount_out; in vidioc_g_fmt_vid_out_overlay()
846 if (dev->bitmap_out == NULL) in vidioc_g_fmt_vid_out_overlay()
849 if (copy_to_user(win->bitmap, dev->bitmap_out, in vidioc_g_fmt_vid_out_overlay()
850 ((dev->compose_out.width + 7) / 8) * dev->compose_out.height)) in vidioc_g_fmt_vid_out_overlay()
854 if (copy_to_user(win->clips, dev->clips_out, in vidioc_g_fmt_vid_out_overlay()
855 clipcount * sizeof(dev->clips_out[0]))) in vidioc_g_fmt_vid_out_overlay()
864 struct vivid_dev *dev = video_drvdata(file); in vidioc_try_fmt_vid_out_overlay() local
865 const struct v4l2_rect *compose = &dev->compose_out; in vidioc_try_fmt_vid_out_overlay()
869 if (!dev->has_fb) in vidioc_try_fmt_vid_out_overlay()
872 -dev->display_width, dev->display_width); in vidioc_try_fmt_vid_out_overlay()
874 -dev->display_height, dev->display_height); in vidioc_try_fmt_vid_out_overlay()
887 if (copy_from_user(dev->try_clips_out, win->clips, in vidioc_try_fmt_vid_out_overlay()
888 win->clipcount * sizeof(dev->clips_out[0]))) in vidioc_try_fmt_vid_out_overlay()
891 struct v4l2_rect *r = &dev->try_clips_out[i].c; in vidioc_try_fmt_vid_out_overlay()
893 r->top = clamp_t(s32, r->top, 0, dev->display_height - 1); in vidioc_try_fmt_vid_out_overlay()
894 r->height = clamp_t(s32, r->height, 1, dev->display_height - r->top); in vidioc_try_fmt_vid_out_overlay()
895 r->left = clamp_t(u32, r->left, 0, dev->display_width - 1); in vidioc_try_fmt_vid_out_overlay()
896 r->width = clamp_t(u32, r->width, 1, dev->display_width - r->left); in vidioc_try_fmt_vid_out_overlay()
903 struct v4l2_rect *r1 = &dev->try_clips_out[i].c; in vidioc_try_fmt_vid_out_overlay()
906 struct v4l2_rect *r2 = &dev->try_clips_out[j].c; in vidioc_try_fmt_vid_out_overlay()
912 if (copy_to_user(win->clips, dev->try_clips_out, in vidioc_try_fmt_vid_out_overlay()
913 win->clipcount * sizeof(dev->clips_out[0]))) in vidioc_try_fmt_vid_out_overlay()
922 struct vivid_dev *dev = video_drvdata(file); in vidioc_s_fmt_vid_out_overlay() local
923 const struct v4l2_rect *compose = &dev->compose_out; in vidioc_s_fmt_vid_out_overlay()
927 unsigned clips_size = win->clipcount * sizeof(dev->clips_out[0]); in vidioc_s_fmt_vid_out_overlay()
940 dev->overlay_out_top = win->w.top; in vidioc_s_fmt_vid_out_overlay()
941 dev->overlay_out_left = win->w.left; in vidioc_s_fmt_vid_out_overlay()
942 kfree(dev->bitmap_out); in vidioc_s_fmt_vid_out_overlay()
943 dev->bitmap_out = new_bitmap; in vidioc_s_fmt_vid_out_overlay()
944 dev->clipcount_out = win->clipcount; in vidioc_s_fmt_vid_out_overlay()
945 if (dev->clipcount_out) in vidioc_s_fmt_vid_out_overlay()
946 memcpy(dev->clips_out, dev->try_clips_out, clips_size); in vidioc_s_fmt_vid_out_overlay()
947 dev->chromakey_out = win->chromakey; in vidioc_s_fmt_vid_out_overlay()
948 dev->global_alpha_out = win->global_alpha; in vidioc_s_fmt_vid_out_overlay()
954 struct vivid_dev *dev = video_drvdata(file); in vivid_vid_out_overlay() local
956 if (i && !dev->fmt_out->can_do_overlay) { in vivid_vid_out_overlay()
957 dprintk(dev, 1, "unsupported output format for output overlay\n"); in vivid_vid_out_overlay()
961 dev->overlay_out_enabled = i; in vivid_vid_out_overlay()
968 struct vivid_dev *dev = video_drvdata(file); in vivid_vid_out_g_fbuf() local
978 a->flags = V4L2_FBUF_FLAG_OVERLAY | dev->fbuf_out_flags; in vivid_vid_out_g_fbuf()
979 a->base = (void *)dev->video_pbase; in vivid_vid_out_g_fbuf()
980 a->fmt.width = dev->display_width; in vivid_vid_out_g_fbuf()
981 a->fmt.height = dev->display_height; in vivid_vid_out_g_fbuf()
982 if (dev->fb_defined.green.length == 5) in vivid_vid_out_g_fbuf()
986 a->fmt.bytesperline = dev->display_byte_stride; in vivid_vid_out_g_fbuf()
997 struct vivid_dev *dev = video_drvdata(file); in vivid_vid_out_s_fbuf() local
1016 dev->fbuf_out_flags &= ~(chroma_flags | alpha_flags); in vivid_vid_out_s_fbuf()
1017 dev->fbuf_out_flags = a->flags & (chroma_flags | alpha_flags); in vivid_vid_out_s_fbuf()
1029 struct vivid_dev *dev = video_drvdata(file); in vidioc_enum_output() local
1031 if (out->index >= dev->num_outputs) in vidioc_enum_output()
1035 switch (dev->output_type[out->index]) { in vidioc_enum_output()
1038 dev->output_name_counter[out->index]); in vidioc_enum_output()
1040 if (dev->has_audio_outputs) in vidioc_enum_output()
1046 dev->output_name_counter[out->index]); in vidioc_enum_output()
1055 struct vivid_dev *dev = video_drvdata(file); in vidioc_g_output() local
1057 *o = dev->output; in vidioc_g_output()
1063 struct vivid_dev *dev = video_drvdata(file); in vidioc_s_output() local
1065 if (o >= dev->num_outputs) in vidioc_s_output()
1068 if (o == dev->output) in vidioc_s_output()
1071 if (vb2_is_busy(&dev->vb_vid_out_q) || vb2_is_busy(&dev->vb_vbi_out_q)) in vidioc_s_output()
1074 dev->output = o; in vidioc_s_output()
1075 dev->tv_audio_output = 0; in vidioc_s_output()
1076 if (dev->output_type[o] == SVID) in vidioc_s_output()
1077 dev->vid_out_dev.tvnorms = V4L2_STD_ALL; in vidioc_s_output()
1079 dev->vid_out_dev.tvnorms = 0; in vidioc_s_output()
1081 dev->vbi_out_dev.tvnorms = dev->vid_out_dev.tvnorms; in vidioc_s_output()
1082 vivid_update_format_out(dev); in vidioc_s_output()
1096 struct vivid_dev *dev = video_drvdata(file); in vidioc_g_audout() local
1098 if (!vivid_is_svid_out(dev)) in vidioc_g_audout()
1100 *vout = vivid_audio_outputs[dev->tv_audio_output]; in vidioc_g_audout()
1106 struct vivid_dev *dev = video_drvdata(file); in vidioc_s_audout() local
1108 if (!vivid_is_svid_out(dev)) in vidioc_s_audout()
1112 dev->tv_audio_output = vout->index; in vidioc_s_audout()
1118 struct vivid_dev *dev = video_drvdata(file); in vivid_vid_out_s_std() local
1120 if (!vivid_is_svid_out(dev)) in vivid_vid_out_s_std()
1122 if (dev->std_out == id) in vivid_vid_out_s_std()
1124 if (vb2_is_busy(&dev->vb_vid_out_q) || vb2_is_busy(&dev->vb_vbi_out_q)) in vivid_vid_out_s_std()
1126 dev->std_out = id; in vivid_vid_out_s_std()
1127 vivid_update_format_out(dev); in vivid_vid_out_s_std()
1145 struct vivid_dev *dev = video_drvdata(file); in vivid_vid_out_s_dv_timings() local
1146 if (!vivid_is_hdmi_out(dev)) in vivid_vid_out_s_dv_timings()
1152 if (v4l2_match_dv_timings(timings, &dev->dv_timings_out, 0)) in vivid_vid_out_s_dv_timings()
1154 if (vb2_is_busy(&dev->vb_vid_out_q)) in vivid_vid_out_s_dv_timings()
1156 dev->dv_timings_out = *timings; in vivid_vid_out_s_dv_timings()
1157 vivid_update_format_out(dev); in vivid_vid_out_s_dv_timings()
1164 struct vivid_dev *dev = video_drvdata(file); in vivid_vid_out_g_parm() local
1166 if (parm->type != (dev->multiplanar ? in vivid_vid_out_g_parm()
1172 parm->parm.output.timeperframe = dev->timeperframe_vid_out; in vivid_vid_out_g_parm()