Lines Matching refs:layer

54 			struct vpbe_layer *layer);
75 struct vpbe_layer *layer) in vpbe_isr_even_field() argument
77 if (layer->cur_frm == layer->next_frm) in vpbe_isr_even_field()
80 layer->cur_frm->vb.vb2_buf.timestamp = ktime_get_ns(); in vpbe_isr_even_field()
81 vb2_buffer_done(&layer->cur_frm->vb.vb2_buf, VB2_BUF_STATE_DONE); in vpbe_isr_even_field()
83 layer->cur_frm = layer->next_frm; in vpbe_isr_even_field()
87 struct vpbe_layer *layer) in vpbe_isr_odd_field() argument
93 if (list_empty(&layer->dma_queue) || in vpbe_isr_odd_field()
94 (layer->cur_frm != layer->next_frm)) { in vpbe_isr_odd_field()
104 layer->next_frm = list_entry(layer->dma_queue.next, in vpbe_isr_odd_field()
107 list_del(&layer->next_frm->list); in vpbe_isr_odd_field()
110 layer->next_frm->vb.vb2_buf.state = VB2_BUF_STATE_ACTIVE; in vpbe_isr_odd_field()
111 addr = vb2_dma_contig_plane_dma_addr(&layer->next_frm->vb.vb2_buf, 0); in vpbe_isr_odd_field()
113 layer->layer_info.id, in vpbe_isr_odd_field()
122 struct vpbe_layer *layer; in venc_isr() local
152 layer = disp_dev->dev[i]; in venc_isr()
154 if (!vb2_start_streaming_called(&layer->buffer_queue)) in venc_isr()
157 if (layer->layer_first_int) { in venc_isr()
158 layer->layer_first_int = 0; in venc_isr()
162 if ((V4L2_FIELD_NONE == layer->pix_fmt.field) && in venc_isr()
166 vpbe_isr_even_field(disp_dev, layer); in venc_isr()
167 vpbe_isr_odd_field(disp_dev, layer); in venc_isr()
171 layer->field_id ^= 1; in venc_isr()
181 if (fid != layer->field_id) { in venc_isr()
183 layer->field_id = fid; in venc_isr()
191 vpbe_isr_even_field(disp_dev, layer); in venc_isr()
193 vpbe_isr_odd_field(disp_dev, layer); in venc_isr()
209 struct vpbe_layer *layer = vb2_get_drv_priv(q); in vpbe_buffer_prepare() local
210 struct vpbe_device *vpbe_dev = layer->disp_dev->vpbe_dev; in vpbe_buffer_prepare()
216 vb2_set_plane_payload(vb, 0, layer->pix_fmt.sizeimage); in vpbe_buffer_prepare()
240 struct vpbe_layer *layer = vb2_get_drv_priv(vq); in vpbe_buffer_queue_setup() local
241 struct vpbe_device *vpbe_dev = layer->disp_dev->vpbe_dev; in vpbe_buffer_queue_setup()
250 return sizes[0] < layer->pix_fmt.sizeimage ? -EINVAL : 0; in vpbe_buffer_queue_setup()
253 sizes[0] = layer->pix_fmt.sizeimage; in vpbe_buffer_queue_setup()
268 struct vpbe_layer *layer = vb2_get_drv_priv(vb->vb2_queue); in vpbe_buffer_queue() local
269 struct vpbe_display *disp = layer->disp_dev; in vpbe_buffer_queue()
270 struct vpbe_device *vpbe_dev = layer->disp_dev->vpbe_dev; in vpbe_buffer_queue()
278 list_add_tail(&buf->list, &layer->dma_queue); in vpbe_buffer_queue()
284 struct vpbe_layer *layer = vb2_get_drv_priv(vq); in vpbe_start_streaming() local
285 struct osd_state *osd_device = layer->disp_dev->osd_device; in vpbe_start_streaming()
288 osd_device->ops.disable_layer(osd_device, layer->layer_info.id); in vpbe_start_streaming()
291 layer->next_frm = layer->cur_frm = list_entry(layer->dma_queue.next, in vpbe_start_streaming()
294 list_del(&layer->cur_frm->list); in vpbe_start_streaming()
296 layer->cur_frm->vb.vb2_buf.state = VB2_BUF_STATE_ACTIVE; in vpbe_start_streaming()
298 layer->field_id = 0; in vpbe_start_streaming()
301 ret = vpbe_set_osd_display_params(layer->disp_dev, layer); in vpbe_start_streaming()
305 vb2_buffer_done(&layer->cur_frm->vb.vb2_buf, in vpbe_start_streaming()
307 list_for_each_entry_safe(buf, tmp, &layer->dma_queue, list) { in vpbe_start_streaming()
320 layer->layer_first_int = 1; in vpbe_start_streaming()
327 struct vpbe_layer *layer = vb2_get_drv_priv(vq); in vpbe_stop_streaming() local
328 struct osd_state *osd_device = layer->disp_dev->osd_device; in vpbe_stop_streaming()
329 struct vpbe_display *disp = layer->disp_dev; in vpbe_stop_streaming()
335 osd_device->ops.disable_layer(osd_device, layer->layer_info.id); in vpbe_stop_streaming()
339 if (layer->cur_frm == layer->next_frm) { in vpbe_stop_streaming()
340 vb2_buffer_done(&layer->cur_frm->vb.vb2_buf, in vpbe_stop_streaming()
343 if (layer->cur_frm) in vpbe_stop_streaming()
344 vb2_buffer_done(&layer->cur_frm->vb.vb2_buf, in vpbe_stop_streaming()
346 if (layer->next_frm) in vpbe_stop_streaming()
347 vb2_buffer_done(&layer->next_frm->vb.vb2_buf, in vpbe_stop_streaming()
351 while (!list_empty(&layer->dma_queue)) { in vpbe_stop_streaming()
352 layer->next_frm = list_entry(layer->dma_queue.next, in vpbe_stop_streaming()
354 list_del(&layer->next_frm->list); in vpbe_stop_streaming()
355 vb2_buffer_done(&layer->next_frm->vb.vb2_buf, in vpbe_stop_streaming()
374 struct vpbe_layer *layer) in _vpbe_display_get_other_win_layer() argument
377 thiswin = layer->device_id; in _vpbe_display_get_other_win_layer()
385 struct vpbe_layer *layer) in vpbe_set_osd_display_params() argument
387 struct osd_layer_config *cfg = &layer->layer_info.config; in vpbe_set_osd_display_params()
393 addr = vb2_dma_contig_plane_dma_addr(&layer->cur_frm->vb.vb2_buf, 0); in vpbe_set_osd_display_params()
396 layer->layer_info.id, in vpbe_set_osd_display_params()
401 layer->layer_info.id, 0); in vpbe_set_osd_display_params()
409 layer->layer_info.enable = 1; in vpbe_set_osd_display_params()
412 _vpbe_display_get_other_win_layer(disp_dev, layer); in vpbe_set_osd_display_params()
428 struct vpbe_layer *layer, in vpbe_disp_calculate_scale_factor() argument
431 struct display_layer_info *layer_info = &layer->layer_info; in vpbe_disp_calculate_scale_factor()
432 struct v4l2_pix_format *pixfmt = &layer->pix_fmt; in vpbe_disp_calculate_scale_factor()
433 struct osd_layer_config *cfg = &layer->layer_info.config; in vpbe_disp_calculate_scale_factor()
535 struct vpbe_layer *layer, in vpbe_disp_adj_position() argument
538 struct osd_layer_config *cfg = &layer->layer_info.config; in vpbe_disp_adj_position()
641 struct vpbe_layer *layer = video_drvdata(file); in vpbe_display_querycap() local
642 struct vpbe_device *vpbe_dev = layer->disp_dev->vpbe_dev; in vpbe_display_querycap()
658 struct vpbe_layer *layer = video_drvdata(file); in vpbe_display_s_selection() local
659 struct vpbe_display *disp_dev = layer->disp_dev; in vpbe_display_s_selection()
661 struct osd_layer_config *cfg = &layer->layer_info.config; in vpbe_display_s_selection()
667 "VIDIOC_S_SELECTION, layer id = %d\n", layer->device_id); in vpbe_display_s_selection()
681 layer->layer_info.id, cfg); in vpbe_display_s_selection()
683 vpbe_disp_calculate_scale_factor(disp_dev, layer, in vpbe_display_s_selection()
686 vpbe_disp_adj_position(disp_dev, layer, rect.top, in vpbe_display_s_selection()
689 layer->layer_info.id, cfg); in vpbe_display_s_selection()
698 layer->layer_info.id, in vpbe_display_s_selection()
699 layer->layer_info.h_zoom, in vpbe_display_s_selection()
700 layer->layer_info.v_zoom); in vpbe_display_s_selection()
702 layer->layer_info.h_exp, in vpbe_display_s_selection()
703 layer->layer_info.v_exp); in vpbe_display_s_selection()
710 if ((layer->layer_info.h_zoom != ZOOM_X1) || in vpbe_display_s_selection()
711 (layer->layer_info.v_zoom != ZOOM_X1) || in vpbe_display_s_selection()
712 (layer->layer_info.h_exp != H_EXP_OFF) || in vpbe_display_s_selection()
713 (layer->layer_info.v_exp != V_EXP_OFF)) in vpbe_display_s_selection()
726 struct vpbe_layer *layer = video_drvdata(file); in vpbe_display_g_selection() local
727 struct osd_layer_config *cfg = &layer->layer_info.config; in vpbe_display_g_selection()
728 struct vpbe_device *vpbe_dev = layer->disp_dev->vpbe_dev; in vpbe_display_g_selection()
729 struct osd_state *osd_device = layer->disp_dev->osd_device; in vpbe_display_g_selection()
734 layer->device_id); in vpbe_display_g_selection()
742 layer->layer_info.id, cfg); in vpbe_display_g_selection()
765 struct vpbe_layer *layer = video_drvdata(file); in vpbe_display_cropcap() local
766 struct vpbe_device *vpbe_dev = layer->disp_dev->vpbe_dev; in vpbe_display_cropcap()
780 struct vpbe_layer *layer = video_drvdata(file); in vpbe_display_g_fmt() local
781 struct vpbe_device *vpbe_dev = layer->disp_dev->vpbe_dev; in vpbe_display_g_fmt()
785 layer->device_id); in vpbe_display_g_fmt()
793 fmt->fmt.pix = layer->pix_fmt; in vpbe_display_g_fmt()
801 struct vpbe_layer *layer = video_drvdata(file); in vpbe_display_enum_fmt() local
802 struct vpbe_device *vpbe_dev = layer->disp_dev->vpbe_dev; in vpbe_display_enum_fmt()
807 layer->device_id); in vpbe_display_enum_fmt()
832 struct vpbe_layer *layer = video_drvdata(file); in vpbe_display_s_fmt() local
833 struct vpbe_display *disp_dev = layer->disp_dev; in vpbe_display_s_fmt()
835 struct osd_layer_config *cfg = &layer->layer_info.config; in vpbe_display_s_fmt()
842 layer->device_id); in vpbe_display_s_fmt()
844 if (vb2_is_busy(&layer->buffer_queue)) in vpbe_display_s_fmt()
859 layer->pix_fmt = *pixfmt; in vpbe_display_s_fmt()
863 otherlayer = _vpbe_display_get_other_win_layer(disp_dev, layer); in vpbe_display_s_fmt()
878 layer->layer_info.id, cfg); in vpbe_display_s_fmt()
895 layer); in vpbe_display_s_fmt()
901 layer->layer_info.id, cfg); in vpbe_display_s_fmt()
910 layer->layer_info.id, cfg); in vpbe_display_s_fmt()
918 struct vpbe_layer *layer = video_drvdata(file); in vpbe_display_try_fmt() local
919 struct vpbe_display *disp_dev = layer->disp_dev; in vpbe_display_try_fmt()
920 struct vpbe_device *vpbe_dev = layer->disp_dev->vpbe_dev; in vpbe_display_try_fmt()
944 struct vpbe_layer *layer = video_drvdata(file); in vpbe_display_s_std() local
945 struct vpbe_device *vpbe_dev = layer->disp_dev->vpbe_dev; in vpbe_display_s_std()
950 if (vb2_is_busy(&layer->buffer_queue)) in vpbe_display_s_std()
976 struct vpbe_layer *layer = video_drvdata(file); in vpbe_display_g_std() local
977 struct vpbe_device *vpbe_dev = layer->disp_dev->vpbe_dev; in vpbe_display_g_std()
999 struct vpbe_layer *layer = video_drvdata(file); in vpbe_display_enum_output() local
1000 struct vpbe_device *vpbe_dev = layer->disp_dev->vpbe_dev; in vpbe_display_enum_output()
1026 struct vpbe_layer *layer = video_drvdata(file); in vpbe_display_s_output() local
1027 struct vpbe_device *vpbe_dev = layer->disp_dev->vpbe_dev; in vpbe_display_s_output()
1032 if (vb2_is_busy(&layer->buffer_queue)) in vpbe_display_s_output()
1055 struct vpbe_layer *layer = video_drvdata(file); in vpbe_display_g_output() local
1056 struct vpbe_device *vpbe_dev = layer->disp_dev->vpbe_dev; in vpbe_display_g_output()
1075 struct vpbe_layer *layer = video_drvdata(file); in vpbe_display_enum_dv_timings() local
1076 struct vpbe_device *vpbe_dev = layer->disp_dev->vpbe_dev; in vpbe_display_enum_dv_timings()
1105 struct vpbe_layer *layer = video_drvdata(file); in vpbe_display_s_dv_timings() local
1106 struct vpbe_device *vpbe_dev = layer->disp_dev->vpbe_dev; in vpbe_display_s_dv_timings()
1111 if (vb2_is_busy(&layer->buffer_queue)) in vpbe_display_s_dv_timings()
1138 struct vpbe_layer *layer = video_drvdata(file); in vpbe_display_g_dv_timings() local
1139 struct vpbe_device *vpbe_dev = layer->disp_dev->vpbe_dev; in vpbe_display_g_dv_timings()
1162 struct vpbe_layer *layer = video_drvdata(file); in vpbe_display_open() local
1163 struct vpbe_display *disp_dev = layer->disp_dev; in vpbe_display_open()
1179 if (!layer->usrs) { in vpbe_display_open()
1180 if (mutex_lock_interruptible(&layer->opslock)) in vpbe_display_open()
1184 layer->layer_info.id); in vpbe_display_open()
1185 mutex_unlock(&layer->opslock); in vpbe_display_open()
1195 layer->usrs++; in vpbe_display_open()
1208 struct vpbe_layer *layer = video_drvdata(file); in vpbe_display_release() local
1209 struct osd_layer_config *cfg = &layer->layer_info.config; in vpbe_display_release()
1210 struct vpbe_display *disp_dev = layer->disp_dev; in vpbe_display_release()
1216 mutex_lock(&layer->opslock); in vpbe_display_release()
1219 layer->layer_info.id); in vpbe_display_release()
1221 layer->usrs--; in vpbe_display_release()
1223 if (!layer->usrs) { in vpbe_display_release()
1227 _vpbe_display_get_other_win_layer(disp_dev, layer); in vpbe_display_release()
1234 layer->layer_info.id); in vpbe_display_release()
1236 layer->layer_info.id); in vpbe_display_release()
1240 mutex_unlock(&layer->opslock); in vpbe_display_release()