Lines Matching defs:itv

80 void ivtv_udma_alloc(struct ivtv *itv)
82 if (itv->udma.SG_handle == 0) {
84 itv->udma.SG_handle = pci_map_single(itv->pdev, itv->udma.SGarray,
85 sizeof(itv->udma.SGarray), PCI_DMA_TODEVICE);
86 ivtv_udma_sync_for_cpu(itv);
90 int ivtv_udma_setup(struct ivtv *itv, unsigned long ivtv_dest_addr,
94 struct ivtv_user_dma *dma = &itv->udma;
138 dma->SG_length = pci_map_sg(itv->pdev, dma->SGlist, dma->page_count, PCI_DMA_TODEVICE);
146 ivtv_udma_sync_for_device(itv);
150 void ivtv_udma_unmap(struct ivtv *itv)
152 struct ivtv_user_dma *dma = &itv->udma;
162 pci_unmap_sg(itv->pdev, dma->SGlist, dma->page_count, PCI_DMA_TODEVICE);
166 ivtv_udma_sync_for_cpu(itv);
172 void ivtv_udma_free(struct ivtv *itv)
177 if (itv->udma.SG_handle) {
178 pci_unmap_single(itv->pdev, itv->udma.SG_handle,
179 sizeof(itv->udma.SGarray), PCI_DMA_TODEVICE);
183 if (itv->udma.SG_length) {
184 pci_unmap_sg(itv->pdev, itv->udma.SGlist, itv->udma.page_count, PCI_DMA_TODEVICE);
188 if (itv->udma.bouncemap[i])
189 __free_page(itv->udma.bouncemap[i]);
193 void ivtv_udma_start(struct ivtv *itv)
196 write_reg(itv->udma.SG_handle, IVTV_REG_DECDMAADDR);
198 set_bit(IVTV_F_I_DMA, &itv->i_flags);
199 set_bit(IVTV_F_I_UDMA, &itv->i_flags);
200 clear_bit(IVTV_F_I_UDMA_PENDING, &itv->i_flags);
203 void ivtv_udma_prepare(struct ivtv *itv)
207 spin_lock_irqsave(&itv->dma_reg_lock, flags);
208 if (!test_bit(IVTV_F_I_DMA, &itv->i_flags))
209 ivtv_udma_start(itv);
211 set_bit(IVTV_F_I_UDMA_PENDING, &itv->i_flags);
212 spin_unlock_irqrestore(&itv->dma_reg_lock, flags);