Lines Matching refs:layer

51 			struct vpbe_layer *layer);
72 struct vpbe_layer *layer) in vpbe_isr_even_field() argument
76 if (layer->cur_frm == layer->next_frm) in vpbe_isr_even_field()
79 layer->cur_frm->vb.v4l2_buf.timestamp.tv_sec = in vpbe_isr_even_field()
81 layer->cur_frm->vb.v4l2_buf.timestamp.tv_usec = in vpbe_isr_even_field()
83 vb2_buffer_done(&layer->cur_frm->vb, VB2_BUF_STATE_DONE); in vpbe_isr_even_field()
85 layer->cur_frm = layer->next_frm; in vpbe_isr_even_field()
89 struct vpbe_layer *layer) in vpbe_isr_odd_field() argument
95 if (list_empty(&layer->dma_queue) || in vpbe_isr_odd_field()
96 (layer->cur_frm != layer->next_frm)) { in vpbe_isr_odd_field()
106 layer->next_frm = list_entry(layer->dma_queue.next, in vpbe_isr_odd_field()
109 list_del(&layer->next_frm->list); in vpbe_isr_odd_field()
112 layer->next_frm->vb.state = VB2_BUF_STATE_ACTIVE; in vpbe_isr_odd_field()
113 addr = vb2_dma_contig_plane_dma_addr(&layer->next_frm->vb, 0); in vpbe_isr_odd_field()
115 layer->layer_info.id, in vpbe_isr_odd_field()
124 struct vpbe_layer *layer; in venc_isr() local
154 layer = disp_dev->dev[i]; in venc_isr()
156 if (!vb2_start_streaming_called(&layer->buffer_queue)) in venc_isr()
159 if (layer->layer_first_int) { in venc_isr()
160 layer->layer_first_int = 0; in venc_isr()
164 if ((V4L2_FIELD_NONE == layer->pix_fmt.field) && in venc_isr()
168 vpbe_isr_even_field(disp_dev, layer); in venc_isr()
169 vpbe_isr_odd_field(disp_dev, layer); in venc_isr()
173 layer->field_id ^= 1; in venc_isr()
183 if (fid != layer->field_id) { in venc_isr()
185 layer->field_id = fid; in venc_isr()
193 vpbe_isr_even_field(disp_dev, layer); in venc_isr()
195 vpbe_isr_odd_field(disp_dev, layer); in venc_isr()
211 struct vpbe_layer *layer = vb2_get_drv_priv(q); in vpbe_buffer_prepare() local
212 struct vpbe_device *vpbe_dev = layer->disp_dev->vpbe_dev; in vpbe_buffer_prepare()
218 vb2_set_plane_payload(vb, 0, layer->pix_fmt.sizeimage); in vpbe_buffer_prepare()
242 struct vpbe_layer *layer = vb2_get_drv_priv(vq); in vpbe_buffer_queue_setup() local
243 struct vpbe_device *vpbe_dev = layer->disp_dev->vpbe_dev; in vpbe_buffer_queue_setup()
247 if (fmt && fmt->fmt.pix.sizeimage < layer->pix_fmt.sizeimage) in vpbe_buffer_queue_setup()
255 sizes[0] = fmt ? fmt->fmt.pix.sizeimage : layer->pix_fmt.sizeimage; in vpbe_buffer_queue_setup()
256 alloc_ctxs[0] = layer->alloc_ctx; in vpbe_buffer_queue_setup()
270 struct vpbe_layer *layer = vb2_get_drv_priv(vb->vb2_queue); in vpbe_buffer_queue() local
271 struct vpbe_display *disp = layer->disp_dev; in vpbe_buffer_queue()
272 struct vpbe_device *vpbe_dev = layer->disp_dev->vpbe_dev; in vpbe_buffer_queue()
280 list_add_tail(&buf->list, &layer->dma_queue); in vpbe_buffer_queue()
286 struct vpbe_layer *layer = vb2_get_drv_priv(vq); in vpbe_start_streaming() local
287 struct osd_state *osd_device = layer->disp_dev->osd_device; in vpbe_start_streaming()
290 osd_device->ops.disable_layer(osd_device, layer->layer_info.id); in vpbe_start_streaming()
293 layer->next_frm = layer->cur_frm = list_entry(layer->dma_queue.next, in vpbe_start_streaming()
296 list_del(&layer->cur_frm->list); in vpbe_start_streaming()
298 layer->cur_frm->vb.state = VB2_BUF_STATE_ACTIVE; in vpbe_start_streaming()
300 layer->field_id = 0; in vpbe_start_streaming()
303 ret = vpbe_set_osd_display_params(layer->disp_dev, layer); in vpbe_start_streaming()
307 vb2_buffer_done(&layer->cur_frm->vb, VB2_BUF_STATE_QUEUED); in vpbe_start_streaming()
308 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_STATE_ERROR); in vpbe_stop_streaming()
342 if (layer->cur_frm != NULL) in vpbe_stop_streaming()
343 vb2_buffer_done(&layer->cur_frm->vb, in vpbe_stop_streaming()
345 if (layer->next_frm != NULL) in vpbe_stop_streaming()
346 vb2_buffer_done(&layer->next_frm->vb, in vpbe_stop_streaming()
350 while (!list_empty(&layer->dma_queue)) { in vpbe_stop_streaming()
351 layer->next_frm = list_entry(layer->dma_queue.next, in vpbe_stop_streaming()
353 list_del(&layer->next_frm->list); in vpbe_stop_streaming()
354 vb2_buffer_done(&layer->next_frm->vb, VB2_BUF_STATE_ERROR); in vpbe_stop_streaming()
372 struct vpbe_layer *layer) in _vpbe_display_get_other_win_layer() argument
375 thiswin = layer->device_id; in _vpbe_display_get_other_win_layer()
383 struct vpbe_layer *layer) in vpbe_set_osd_display_params() argument
385 struct osd_layer_config *cfg = &layer->layer_info.config; in vpbe_set_osd_display_params()
391 addr = vb2_dma_contig_plane_dma_addr(&layer->cur_frm->vb, 0); in vpbe_set_osd_display_params()
394 layer->layer_info.id, in vpbe_set_osd_display_params()
399 layer->layer_info.id, 0); in vpbe_set_osd_display_params()
407 layer->layer_info.enable = 1; in vpbe_set_osd_display_params()
410 _vpbe_display_get_other_win_layer(disp_dev, layer); in vpbe_set_osd_display_params()
426 struct vpbe_layer *layer, in vpbe_disp_calculate_scale_factor() argument
429 struct display_layer_info *layer_info = &layer->layer_info; in vpbe_disp_calculate_scale_factor()
430 struct v4l2_pix_format *pixfmt = &layer->pix_fmt; in vpbe_disp_calculate_scale_factor()
431 struct osd_layer_config *cfg = &layer->layer_info.config; in vpbe_disp_calculate_scale_factor()
533 struct vpbe_layer *layer, in vpbe_disp_adj_position() argument
536 struct osd_layer_config *cfg = &layer->layer_info.config; in vpbe_disp_adj_position()
639 struct vpbe_layer *layer = video_drvdata(file); in vpbe_display_querycap() local
640 struct vpbe_device *vpbe_dev = layer->disp_dev->vpbe_dev; in vpbe_display_querycap()
656 struct vpbe_layer *layer = video_drvdata(file); in vpbe_display_s_crop() local
657 struct vpbe_display *disp_dev = layer->disp_dev; in vpbe_display_s_crop()
659 struct osd_layer_config *cfg = &layer->layer_info.config; in vpbe_display_s_crop()
665 "VIDIOC_S_CROP, layer id = %d\n", layer->device_id); in vpbe_display_s_crop()
680 layer->layer_info.id, cfg); in vpbe_display_s_crop()
682 vpbe_disp_calculate_scale_factor(disp_dev, layer, in vpbe_display_s_crop()
685 vpbe_disp_adj_position(disp_dev, layer, rect.top, in vpbe_display_s_crop()
688 layer->layer_info.id, cfg); in vpbe_display_s_crop()
697 layer->layer_info.id, in vpbe_display_s_crop()
698 layer->layer_info.h_zoom, in vpbe_display_s_crop()
699 layer->layer_info.v_zoom); in vpbe_display_s_crop()
701 layer->layer_info.h_exp, in vpbe_display_s_crop()
702 layer->layer_info.v_exp); in vpbe_display_s_crop()
709 if ((layer->layer_info.h_zoom != ZOOM_X1) || in vpbe_display_s_crop()
710 (layer->layer_info.v_zoom != ZOOM_X1) || in vpbe_display_s_crop()
711 (layer->layer_info.h_exp != H_EXP_OFF) || in vpbe_display_s_crop()
712 (layer->layer_info.v_exp != V_EXP_OFF)) in vpbe_display_s_crop()
724 struct vpbe_layer *layer = video_drvdata(file); in vpbe_display_g_crop() local
725 struct osd_layer_config *cfg = &layer->layer_info.config; in vpbe_display_g_crop()
726 struct vpbe_device *vpbe_dev = layer->disp_dev->vpbe_dev; in vpbe_display_g_crop()
727 struct osd_state *osd_device = layer->disp_dev->osd_device; in vpbe_display_g_crop()
732 layer->device_id); in vpbe_display_g_crop()
739 layer->layer_info.id, cfg); in vpbe_display_g_crop()
751 struct vpbe_layer *layer = video_drvdata(file); in vpbe_display_cropcap() local
752 struct vpbe_device *vpbe_dev = layer->disp_dev->vpbe_dev; in vpbe_display_cropcap()
769 struct vpbe_layer *layer = video_drvdata(file); in vpbe_display_g_fmt() local
770 struct vpbe_device *vpbe_dev = layer->disp_dev->vpbe_dev; in vpbe_display_g_fmt()
774 layer->device_id); in vpbe_display_g_fmt()
782 fmt->fmt.pix = layer->pix_fmt; in vpbe_display_g_fmt()
790 struct vpbe_layer *layer = video_drvdata(file); in vpbe_display_enum_fmt() local
791 struct vpbe_device *vpbe_dev = layer->disp_dev->vpbe_dev; in vpbe_display_enum_fmt()
796 layer->device_id); in vpbe_display_enum_fmt()
821 struct vpbe_layer *layer = video_drvdata(file); in vpbe_display_s_fmt() local
822 struct vpbe_display *disp_dev = layer->disp_dev; in vpbe_display_s_fmt()
824 struct osd_layer_config *cfg = &layer->layer_info.config; in vpbe_display_s_fmt()
831 layer->device_id); in vpbe_display_s_fmt()
833 if (vb2_is_busy(&layer->buffer_queue)) in vpbe_display_s_fmt()
848 layer->pix_fmt = *pixfmt; in vpbe_display_s_fmt()
852 otherlayer = _vpbe_display_get_other_win_layer(disp_dev, layer); in vpbe_display_s_fmt()
867 layer->layer_info.id, cfg); in vpbe_display_s_fmt()
884 layer); in vpbe_display_s_fmt()
890 layer->layer_info.id, cfg); in vpbe_display_s_fmt()
899 layer->layer_info.id, cfg); in vpbe_display_s_fmt()
907 struct vpbe_layer *layer = video_drvdata(file); in vpbe_display_try_fmt() local
908 struct vpbe_display *disp_dev = layer->disp_dev; in vpbe_display_try_fmt()
909 struct vpbe_device *vpbe_dev = layer->disp_dev->vpbe_dev; in vpbe_display_try_fmt()
933 struct vpbe_layer *layer = video_drvdata(file); in vpbe_display_s_std() local
934 struct vpbe_device *vpbe_dev = layer->disp_dev->vpbe_dev; in vpbe_display_s_std()
939 if (vb2_is_busy(&layer->buffer_queue)) in vpbe_display_s_std()
965 struct vpbe_layer *layer = video_drvdata(file); in vpbe_display_g_std() local
966 struct vpbe_device *vpbe_dev = layer->disp_dev->vpbe_dev; in vpbe_display_g_std()
988 struct vpbe_layer *layer = video_drvdata(file); in vpbe_display_enum_output() local
989 struct vpbe_device *vpbe_dev = layer->disp_dev->vpbe_dev; in vpbe_display_enum_output()
1016 struct vpbe_layer *layer = video_drvdata(file); in vpbe_display_s_output() local
1017 struct vpbe_device *vpbe_dev = layer->disp_dev->vpbe_dev; in vpbe_display_s_output()
1022 if (vb2_is_busy(&layer->buffer_queue)) in vpbe_display_s_output()
1045 struct vpbe_layer *layer = video_drvdata(file); in vpbe_display_g_output() local
1046 struct vpbe_device *vpbe_dev = layer->disp_dev->vpbe_dev; in vpbe_display_g_output()
1065 struct vpbe_layer *layer = video_drvdata(file); in vpbe_display_enum_dv_timings() local
1066 struct vpbe_device *vpbe_dev = layer->disp_dev->vpbe_dev; in vpbe_display_enum_dv_timings()
1095 struct vpbe_layer *layer = video_drvdata(file); in vpbe_display_s_dv_timings() local
1096 struct vpbe_device *vpbe_dev = layer->disp_dev->vpbe_dev; in vpbe_display_s_dv_timings()
1101 if (vb2_is_busy(&layer->buffer_queue)) in vpbe_display_s_dv_timings()
1128 struct vpbe_layer *layer = video_drvdata(file); in vpbe_display_g_dv_timings() local
1129 struct vpbe_device *vpbe_dev = layer->disp_dev->vpbe_dev; in vpbe_display_g_dv_timings()
1152 struct vpbe_layer *layer = video_drvdata(file); in vpbe_display_open() local
1153 struct vpbe_display *disp_dev = layer->disp_dev; in vpbe_display_open()
1169 if (!layer->usrs) { in vpbe_display_open()
1170 if (mutex_lock_interruptible(&layer->opslock)) in vpbe_display_open()
1174 layer->layer_info.id); in vpbe_display_open()
1175 mutex_unlock(&layer->opslock); in vpbe_display_open()
1185 layer->usrs++; in vpbe_display_open()
1198 struct vpbe_layer *layer = video_drvdata(file); in vpbe_display_release() local
1199 struct osd_layer_config *cfg = &layer->layer_info.config; in vpbe_display_release()
1200 struct vpbe_display *disp_dev = layer->disp_dev; in vpbe_display_release()
1206 mutex_lock(&layer->opslock); in vpbe_display_release()
1209 layer->layer_info.id); in vpbe_display_release()
1211 layer->usrs--; in vpbe_display_release()
1213 if (!layer->usrs) { in vpbe_display_release()
1217 _vpbe_display_get_other_win_layer(disp_dev, layer); in vpbe_display_release()
1224 layer->layer_info.id); in vpbe_display_release()
1226 layer->layer_info.id); in vpbe_display_release()
1230 mutex_unlock(&layer->opslock); in vpbe_display_release()