Lines Matching refs:urb

304 static void free_dma_aligned_buffer(struct urb *urb)  in free_dma_aligned_buffer()  argument
309 if (!(urb->transfer_flags & URB_ALIGNED_TEMP_BUFFER)) in free_dma_aligned_buffer()
312 temp = container_of(urb->transfer_buffer, in free_dma_aligned_buffer()
315 if (usb_urb_dir_in(urb)) { in free_dma_aligned_buffer()
316 if (usb_pipeisoc(urb->pipe)) in free_dma_aligned_buffer()
317 length = urb->transfer_buffer_length; in free_dma_aligned_buffer()
319 length = urb->actual_length; in free_dma_aligned_buffer()
323 urb->transfer_buffer = temp->old_xfer_buffer; in free_dma_aligned_buffer()
326 urb->transfer_flags &= ~URB_ALIGNED_TEMP_BUFFER; in free_dma_aligned_buffer()
329 static int alloc_dma_aligned_buffer(struct urb *urb, gfp_t mem_flags) in alloc_dma_aligned_buffer() argument
334 if (urb->num_sgs || urb->sg || in alloc_dma_aligned_buffer()
335 urb->transfer_buffer_length == 0 || in alloc_dma_aligned_buffer()
336 !((uintptr_t)urb->transfer_buffer & (TEGRA_USB_DMA_ALIGN - 1))) in alloc_dma_aligned_buffer()
340 kmalloc_size = urb->transfer_buffer_length + in alloc_dma_aligned_buffer()
350 temp->old_xfer_buffer = urb->transfer_buffer; in alloc_dma_aligned_buffer()
351 if (usb_urb_dir_out(urb)) in alloc_dma_aligned_buffer()
352 memcpy(temp->data, urb->transfer_buffer, in alloc_dma_aligned_buffer()
353 urb->transfer_buffer_length); in alloc_dma_aligned_buffer()
354 urb->transfer_buffer = temp->data; in alloc_dma_aligned_buffer()
356 urb->transfer_flags |= URB_ALIGNED_TEMP_BUFFER; in alloc_dma_aligned_buffer()
361 static int tegra_ehci_map_urb_for_dma(struct usb_hcd *hcd, struct urb *urb, in tegra_ehci_map_urb_for_dma() argument
366 ret = alloc_dma_aligned_buffer(urb, mem_flags); in tegra_ehci_map_urb_for_dma()
370 ret = usb_hcd_map_urb_for_dma(hcd, urb, mem_flags); in tegra_ehci_map_urb_for_dma()
372 free_dma_aligned_buffer(urb); in tegra_ehci_map_urb_for_dma()
377 static void tegra_ehci_unmap_urb_for_dma(struct usb_hcd *hcd, struct urb *urb) in tegra_ehci_unmap_urb_for_dma() argument
379 usb_hcd_unmap_urb_for_dma(hcd, urb); in tegra_ehci_unmap_urb_for_dma()
380 free_dma_aligned_buffer(urb); in tegra_ehci_unmap_urb_for_dma()