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], FOLL_FORCE);
70 uv_dma.page_count, &dma->map[y_pages],
83 unpin_user_pages(&dma->map[y_pages], uv_pages);
94 unpin_user_pages(dma->map, y_pages);
107 dma->page_count = y_pages + uv_pages;
110 if (ivtv_udma_fill_sg_list (dma, &uv_dma, ivtv_udma_fill_sg_list (dma, &y_dma, 0)) < 0) {
112 unpin_user_pages(dma->map, dma->page_count);
113 dma->page_count = 0;
116 dma->SG_length = pci_map_sg(itv->pdev, dma->SGlist, dma->page_count, PCI_DMA_TODEVICE);
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);
1129 /* Attempt to dma a frame from a user buffer */