Lines Matching refs:dma
25 static int ivtv_yuv_prep_user_dma(struct ivtv *itv, struct ivtv_user_dma *dma,
54 if (dma->SG_length || dma->page_count) {
57 dma->SG_length, dma->page_count);
66 y_dma.page_count, &dma->map[0], 0);
70 uv_dma.page_count, &dma->map[y_pages], 0);
82 unpin_user_pages(&dma->map[y_pages], uv_pages);
93 unpin_user_pages(dma->map, y_pages);
106 dma->page_count = y_pages + uv_pages;
109 if (ivtv_udma_fill_sg_list (dma, &uv_dma, ivtv_udma_fill_sg_list (dma, &y_dma, 0)) < 0) {
111 unpin_user_pages(dma->map, dma->page_count);
112 dma->page_count = 0;
115 dma->SG_length = dma_map_sg(&itv->pdev->dev, dma->SGlist,
116 dma->page_count, DMA_TO_DEVICE);
119 ivtv_udma_fill_sg_array(dma, y_buffer_offset, uv_buffer_offset, y_size);
123 dma->SGarray[dma->SG_length].size = cpu_to_le32(720*16);
124 dma->SGarray[dma->SG_length].src = cpu_to_le32(yi->blanking_dmaptr);
125 dma->SGarray[dma->SG_length].dst = cpu_to_le32(IVTV_DECODER_OFFSET + yuv_offset[frame]);
126 dma->SG_length++;
130 dma->SGarray[dma->SG_length - 1].size |= cpu_to_le32(0x80000000);
1131 /* Attempt to dma a frame from a user buffer */