Commit fe375774 authored by Venu Byravarasu's avatar Venu Byravarasu Committed by Greg Kroah-Hartman

usb: host: tegra: code clean up

With this patch:
	1. Renamed structure and function names to be more meaningful.
	2. Removed unnecessary local variables.
Signed-off-by: default avatarVenu Byravarasu <vbyravarasu@nvidia.com>
Acked-by: default avatarAlan Stern <stern@rowland.harvard.edu>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 259b83a3
...@@ -462,26 +462,23 @@ static int tegra_ehci_bus_resume(struct usb_hcd *hcd) ...@@ -462,26 +462,23 @@ static int tegra_ehci_bus_resume(struct usb_hcd *hcd)
} }
#endif #endif
struct temp_buffer { struct dma_aligned_buffer {
void *kmalloc_ptr; void *kmalloc_ptr;
void *old_xfer_buffer; void *old_xfer_buffer;
u8 data[0]; u8 data[0];
}; };
static void free_temp_buffer(struct urb *urb) static void free_dma_aligned_buffer(struct urb *urb)
{ {
enum dma_data_direction dir; struct dma_aligned_buffer *temp;
struct temp_buffer *temp;
if (!(urb->transfer_flags & URB_ALIGNED_TEMP_BUFFER)) if (!(urb->transfer_flags & URB_ALIGNED_TEMP_BUFFER))
return; return;
dir = usb_urb_dir_in(urb) ? DMA_FROM_DEVICE : DMA_TO_DEVICE; temp = container_of(urb->transfer_buffer,
struct dma_aligned_buffer, data);
temp = container_of(urb->transfer_buffer, struct temp_buffer, if (usb_urb_dir_in(urb))
data);
if (dir == DMA_FROM_DEVICE)
memcpy(temp->old_xfer_buffer, temp->data, memcpy(temp->old_xfer_buffer, temp->data,
urb->transfer_buffer_length); urb->transfer_buffer_length);
urb->transfer_buffer = temp->old_xfer_buffer; urb->transfer_buffer = temp->old_xfer_buffer;
...@@ -490,10 +487,9 @@ static void free_temp_buffer(struct urb *urb) ...@@ -490,10 +487,9 @@ static void free_temp_buffer(struct urb *urb)
urb->transfer_flags &= ~URB_ALIGNED_TEMP_BUFFER; urb->transfer_flags &= ~URB_ALIGNED_TEMP_BUFFER;
} }
static int alloc_temp_buffer(struct urb *urb, gfp_t mem_flags) static int alloc_dma_aligned_buffer(struct urb *urb, gfp_t mem_flags)
{ {
enum dma_data_direction dir; struct dma_aligned_buffer *temp, *kmalloc_ptr;
struct temp_buffer *temp, *kmalloc_ptr;
size_t kmalloc_size; size_t kmalloc_size;
if (urb->num_sgs || urb->sg || if (urb->num_sgs || urb->sg ||
...@@ -501,22 +497,19 @@ static int alloc_temp_buffer(struct urb *urb, gfp_t mem_flags) ...@@ -501,22 +497,19 @@ static int alloc_temp_buffer(struct urb *urb, gfp_t mem_flags)
!((uintptr_t)urb->transfer_buffer & (TEGRA_USB_DMA_ALIGN - 1))) !((uintptr_t)urb->transfer_buffer & (TEGRA_USB_DMA_ALIGN - 1)))
return 0; return 0;
dir = usb_urb_dir_in(urb) ? DMA_FROM_DEVICE : DMA_TO_DEVICE;
/* Allocate a buffer with enough padding for alignment */ /* Allocate a buffer with enough padding for alignment */
kmalloc_size = urb->transfer_buffer_length + kmalloc_size = urb->transfer_buffer_length +
sizeof(struct temp_buffer) + TEGRA_USB_DMA_ALIGN - 1; sizeof(struct dma_aligned_buffer) + TEGRA_USB_DMA_ALIGN - 1;
kmalloc_ptr = kmalloc(kmalloc_size, mem_flags); kmalloc_ptr = kmalloc(kmalloc_size, mem_flags);
if (!kmalloc_ptr) if (!kmalloc_ptr)
return -ENOMEM; return -ENOMEM;
/* Position our struct temp_buffer such that data is aligned */ /* Position our struct dma_aligned_buffer such that data is aligned */
temp = PTR_ALIGN(kmalloc_ptr + 1, TEGRA_USB_DMA_ALIGN) - 1; temp = PTR_ALIGN(kmalloc_ptr + 1, TEGRA_USB_DMA_ALIGN) - 1;
temp->kmalloc_ptr = kmalloc_ptr; temp->kmalloc_ptr = kmalloc_ptr;
temp->old_xfer_buffer = urb->transfer_buffer; temp->old_xfer_buffer = urb->transfer_buffer;
if (dir == DMA_TO_DEVICE) if (usb_urb_dir_out(urb))
memcpy(temp->data, urb->transfer_buffer, memcpy(temp->data, urb->transfer_buffer,
urb->transfer_buffer_length); urb->transfer_buffer_length);
urb->transfer_buffer = temp->data; urb->transfer_buffer = temp->data;
...@@ -531,13 +524,13 @@ static int tegra_ehci_map_urb_for_dma(struct usb_hcd *hcd, struct urb *urb, ...@@ -531,13 +524,13 @@ static int tegra_ehci_map_urb_for_dma(struct usb_hcd *hcd, struct urb *urb,
{ {
int ret; int ret;
ret = alloc_temp_buffer(urb, mem_flags); ret = alloc_dma_aligned_buffer(urb, mem_flags);
if (ret) if (ret)
return ret; return ret;
ret = usb_hcd_map_urb_for_dma(hcd, urb, mem_flags); ret = usb_hcd_map_urb_for_dma(hcd, urb, mem_flags);
if (ret) if (ret)
free_temp_buffer(urb); free_dma_aligned_buffer(urb);
return ret; return ret;
} }
...@@ -545,7 +538,7 @@ static int tegra_ehci_map_urb_for_dma(struct usb_hcd *hcd, struct urb *urb, ...@@ -545,7 +538,7 @@ static int tegra_ehci_map_urb_for_dma(struct usb_hcd *hcd, struct urb *urb,
static void tegra_ehci_unmap_urb_for_dma(struct usb_hcd *hcd, struct urb *urb) static void tegra_ehci_unmap_urb_for_dma(struct usb_hcd *hcd, struct urb *urb)
{ {
usb_hcd_unmap_urb_for_dma(hcd, urb); usb_hcd_unmap_urb_for_dma(hcd, urb);
free_temp_buffer(urb); free_dma_aligned_buffer(urb);
} }
static const struct hc_driver tegra_ehci_hc_driver = { static const struct hc_driver tegra_ehci_hc_driver = {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment