Lines Matching refs:urb
304 static void free_dma_aligned_buffer(struct urb *urb) in free_dma_aligned_buffer() argument
308 if (!(urb->transfer_flags & URB_ALIGNED_TEMP_BUFFER)) in free_dma_aligned_buffer()
311 temp = container_of(urb->transfer_buffer, in free_dma_aligned_buffer()
314 if (usb_urb_dir_in(urb)) in free_dma_aligned_buffer()
316 urb->transfer_buffer_length); in free_dma_aligned_buffer()
317 urb->transfer_buffer = temp->old_xfer_buffer; in free_dma_aligned_buffer()
320 urb->transfer_flags &= ~URB_ALIGNED_TEMP_BUFFER; in free_dma_aligned_buffer()
323 static int alloc_dma_aligned_buffer(struct urb *urb, gfp_t mem_flags) in alloc_dma_aligned_buffer() argument
328 if (urb->num_sgs || urb->sg || in alloc_dma_aligned_buffer()
329 urb->transfer_buffer_length == 0 || in alloc_dma_aligned_buffer()
330 !((uintptr_t)urb->transfer_buffer & (TEGRA_USB_DMA_ALIGN - 1))) in alloc_dma_aligned_buffer()
334 kmalloc_size = urb->transfer_buffer_length + in alloc_dma_aligned_buffer()
344 temp->old_xfer_buffer = urb->transfer_buffer; in alloc_dma_aligned_buffer()
345 if (usb_urb_dir_out(urb)) in alloc_dma_aligned_buffer()
346 memcpy(temp->data, urb->transfer_buffer, in alloc_dma_aligned_buffer()
347 urb->transfer_buffer_length); in alloc_dma_aligned_buffer()
348 urb->transfer_buffer = temp->data; in alloc_dma_aligned_buffer()
350 urb->transfer_flags |= URB_ALIGNED_TEMP_BUFFER; in alloc_dma_aligned_buffer()
355 static int tegra_ehci_map_urb_for_dma(struct usb_hcd *hcd, struct urb *urb, in tegra_ehci_map_urb_for_dma() argument
360 ret = alloc_dma_aligned_buffer(urb, mem_flags); in tegra_ehci_map_urb_for_dma()
364 ret = usb_hcd_map_urb_for_dma(hcd, urb, mem_flags); in tegra_ehci_map_urb_for_dma()
366 free_dma_aligned_buffer(urb); in tegra_ehci_map_urb_for_dma()
371 static void tegra_ehci_unmap_urb_for_dma(struct usb_hcd *hcd, struct urb *urb) in tegra_ehci_unmap_urb_for_dma() argument
373 usb_hcd_unmap_urb_for_dma(hcd, urb); in tegra_ehci_unmap_urb_for_dma()
374 free_dma_aligned_buffer(urb); in tegra_ehci_unmap_urb_for_dma()