• Home
  • Raw
  • Download

Lines Matching refs:vout

28 static int omap_vout_allocate_vrfb_buffers(struct omap_vout_device *vout,  in omap_vout_allocate_vrfb_buffers()  argument
34 if (!vout->smsshado_virt_addr[i]) { in omap_vout_allocate_vrfb_buffers()
35 vout->smsshado_virt_addr[i] = in omap_vout_allocate_vrfb_buffers()
36 omap_vout_alloc_buffer(vout->smsshado_size, in omap_vout_allocate_vrfb_buffers()
37 &vout->smsshado_phy_addr[i]); in omap_vout_allocate_vrfb_buffers()
39 if (!vout->smsshado_virt_addr[i] && startindex != -1) { in omap_vout_allocate_vrfb_buffers()
40 if (V4L2_MEMORY_MMAP == vout->memory && i >= startindex) in omap_vout_allocate_vrfb_buffers()
43 if (!vout->smsshado_virt_addr[i]) { in omap_vout_allocate_vrfb_buffers()
46 vout->smsshado_virt_addr[j], in omap_vout_allocate_vrfb_buffers()
47 vout->smsshado_size); in omap_vout_allocate_vrfb_buffers()
48 vout->smsshado_virt_addr[j] = 0; in omap_vout_allocate_vrfb_buffers()
49 vout->smsshado_phy_addr[j] = 0; in omap_vout_allocate_vrfb_buffers()
54 memset((void *) vout->smsshado_virt_addr[i], 0, in omap_vout_allocate_vrfb_buffers()
55 vout->smsshado_size); in omap_vout_allocate_vrfb_buffers()
74 void omap_vout_free_vrfb_buffers(struct omap_vout_device *vout) in omap_vout_free_vrfb_buffers() argument
79 omap_vout_free_buffer(vout->smsshado_virt_addr[j], in omap_vout_free_vrfb_buffers()
80 vout->smsshado_size); in omap_vout_free_vrfb_buffers()
81 vout->smsshado_virt_addr[j] = 0; in omap_vout_free_vrfb_buffers()
82 vout->smsshado_phy_addr[j] = 0; in omap_vout_free_vrfb_buffers()
90 struct omap_vout_device *vout; in omap_vout_setup_vrfb_bufs() local
98 vout = vid_dev->vouts[vid_num]; in omap_vout_setup_vrfb_bufs()
99 vfd = vout->vfd; in omap_vout_setup_vrfb_bufs()
102 if (omap_vrfb_request_ctx(&vout->vrfb_context[i])) { in omap_vout_setup_vrfb_bufs()
105 omap_vrfb_release_ctx(&vout->vrfb_context[j]); in omap_vout_setup_vrfb_bufs()
124 vout->smsshado_size = PAGE_ALIGN(image_width * image_height * 2 * 2); in omap_vout_setup_vrfb_bufs()
129 vout->vrfb_dma_tx.dev_id = OMAP_DMA_NO_DEVICE; in omap_vout_setup_vrfb_bufs()
130 vout->vrfb_dma_tx.dma_ch = -1; in omap_vout_setup_vrfb_bufs()
131 vout->vrfb_dma_tx.req_status = DMA_CHAN_ALLOTED; in omap_vout_setup_vrfb_bufs()
132 ret = omap_request_dma(vout->vrfb_dma_tx.dev_id, "VRFB DMA TX", in omap_vout_setup_vrfb_bufs()
134 (void *) &vout->vrfb_dma_tx, &vout->vrfb_dma_tx.dma_ch); in omap_vout_setup_vrfb_bufs()
136 vout->vrfb_dma_tx.req_status = DMA_CHAN_NOT_ALLOTED; in omap_vout_setup_vrfb_bufs()
140 init_waitqueue_head(&vout->vrfb_dma_tx.wait); in omap_vout_setup_vrfb_bufs()
145 if (omap_vout_allocate_vrfb_buffers(vout, &vrfb_num_bufs, -1)) { in omap_vout_setup_vrfb_bufs()
149 vout->vrfb_static_allocation = 1; in omap_vout_setup_vrfb_bufs()
155 omap_vrfb_release_ctx(&vout->vrfb_context[j]); in omap_vout_setup_vrfb_bufs()
157 omap_vout_free_buffers(vout); in omap_vout_setup_vrfb_bufs()
165 void omap_vout_release_vrfb(struct omap_vout_device *vout) in omap_vout_release_vrfb() argument
170 omap_vrfb_release_ctx(&vout->vrfb_context[i]); in omap_vout_release_vrfb()
172 if (vout->vrfb_dma_tx.req_status == DMA_CHAN_ALLOTED) { in omap_vout_release_vrfb()
173 vout->vrfb_dma_tx.req_status = DMA_CHAN_NOT_ALLOTED; in omap_vout_release_vrfb()
174 omap_free_dma(vout->vrfb_dma_tx.dma_ch); in omap_vout_release_vrfb()
182 int omap_vout_vrfb_buffer_setup(struct omap_vout_device *vout, in omap_vout_vrfb_buffer_setup() argument
188 if (!is_rotation_enabled(vout)) in omap_vout_vrfb_buffer_setup()
197 if (!vout->vrfb_static_allocation) in omap_vout_vrfb_buffer_setup()
198 if (omap_vout_allocate_vrfb_buffers(vout, count, startindex)) in omap_vout_vrfb_buffer_setup()
201 if (vout->dss_mode == OMAP_DSS_COLOR_YUV2 || in omap_vout_vrfb_buffer_setup()
202 vout->dss_mode == OMAP_DSS_COLOR_UYVY) in omap_vout_vrfb_buffer_setup()
208 omap_vrfb_setup(&vout->vrfb_context[i], in omap_vout_vrfb_buffer_setup()
209 vout->smsshado_phy_addr[i], vout->pix.width, in omap_vout_vrfb_buffer_setup()
210 vout->pix.height, vout->bpp, yuv_mode); in omap_vout_vrfb_buffer_setup()
215 int omap_vout_prepare_vrfb(struct omap_vout_device *vout, in omap_vout_prepare_vrfb() argument
225 if (!is_rotation_enabled(vout)) in omap_vout_prepare_vrfb()
228 dmabuf = vout->buf_phy_addr[vb->i]; in omap_vout_prepare_vrfb()
234 pixsize = vout->bpp * vout->vrfb_bpp; in omap_vout_prepare_vrfb()
241 (vout->pix.width * vout->bpp)) + 1; in omap_vout_prepare_vrfb()
248 elem_count = vout->pix.width * vout->bpp; in omap_vout_prepare_vrfb()
249 frame_count = vout->pix.height; in omap_vout_prepare_vrfb()
250 tx = &vout->vrfb_dma_tx; in omap_vout_prepare_vrfb()
260 rotation = calc_rotation(vout); in omap_vout_prepare_vrfb()
264 vout->vrfb_context[vb->i].paddr[0], dest_element_index, in omap_vout_prepare_vrfb()
279 vout->queued_buf_addr[vb->i] = (u8 *) in omap_vout_prepare_vrfb()
280 vout->vrfb_context[vb->i].paddr[rotation]; in omap_vout_prepare_vrfb()
289 void omap_vout_calculate_vrfb_offset(struct omap_vout_device *vout) in omap_vout_calculate_vrfb_offset() argument
292 bool mirroring = vout->mirror; in omap_vout_calculate_vrfb_offset()
293 struct v4l2_rect *crop = &vout->crop; in omap_vout_calculate_vrfb_offset()
294 struct v4l2_pix_format *pix = &vout->pix; in omap_vout_calculate_vrfb_offset()
295 int *cropped_offset = &vout->cropped_offset; in omap_vout_calculate_vrfb_offset()
299 rotation = calc_rotation(vout); in omap_vout_calculate_vrfb_offset()
303 if (is_rotation_enabled(vout)) { in omap_vout_calculate_vrfb_offset()
320 vout->ps = ps; in omap_vout_calculate_vrfb_offset()
321 vout->vr_ps = vr_ps; in omap_vout_calculate_vrfb_offset()
323 if (is_rotation_enabled(vout)) { in omap_vout_calculate_vrfb_offset()
330 vout->line_length = line_length; in omap_vout_calculate_vrfb_offset()
333 offset = vout->vrfb_context[0].yoffset * in omap_vout_calculate_vrfb_offset()
334 vout->vrfb_context[0].bytespp; in omap_vout_calculate_vrfb_offset()
346 offset = ((MAX_PIXELS_PER_LINE * vout->vrfb_context[0].yoffset * in omap_vout_calculate_vrfb_offset()
347 vout->vrfb_context[0].bytespp) + in omap_vout_calculate_vrfb_offset()
348 (vout->vrfb_context[0].xoffset * in omap_vout_calculate_vrfb_offset()
349 vout->vrfb_context[0].bytespp)); in omap_vout_calculate_vrfb_offset()
361 offset = MAX_PIXELS_PER_LINE * vout->vrfb_context[0].xoffset * in omap_vout_calculate_vrfb_offset()
362 vout->vrfb_context[0].bytespp; in omap_vout_calculate_vrfb_offset()