| From 061a8f44430c7be41c541a35e8993150e0412248 Mon Sep 17 00:00:00 2001 |
| From: Peter Chen <peter.chen@nxp.com> |
| Date: Wed, 19 Apr 2017 16:55:51 +0300 |
| Subject: [PATCH 205/286] usb: host: xhci: delete sp_dma_buffers for scratchpad |
| |
| We already have sp_array to store each scratch buffer address for xHC, |
| it doesn't need another sp_dma_buffers array to store it. |
| |
| Signed-off-by: Peter Chen <peter.chen@nxp.com> |
| Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| (cherry picked from commit 314eaf7dec13b975e51c8faf980f7b0f4e20b3e9) |
| Signed-off-by: Simon Horman <horms+renesas@verge.net.au> |
| --- |
| drivers/usb/host/xhci-mem.c | 18 ++++-------------- |
| drivers/usb/host/xhci.h | 1 - |
| 2 files changed, 4 insertions(+), 15 deletions(-) |
| |
| --- a/drivers/usb/host/xhci-mem.c |
| +++ b/drivers/usb/host/xhci-mem.c |
| @@ -1735,36 +1735,27 @@ static int scratchpad_alloc(struct xhci_ |
| if (!xhci->scratchpad->sp_buffers) |
| goto fail_sp3; |
| |
| - xhci->scratchpad->sp_dma_buffers = |
| - kzalloc(sizeof(dma_addr_t) * num_sp, flags); |
| - |
| - if (!xhci->scratchpad->sp_dma_buffers) |
| - goto fail_sp4; |
| - |
| xhci->dcbaa->dev_context_ptrs[0] = cpu_to_le64(xhci->scratchpad->sp_dma); |
| for (i = 0; i < num_sp; i++) { |
| dma_addr_t dma; |
| void *buf = dma_zalloc_coherent(dev, xhci->page_size, &dma, |
| flags); |
| if (!buf) |
| - goto fail_sp5; |
| + goto fail_sp4; |
| |
| xhci->scratchpad->sp_array[i] = dma; |
| xhci->scratchpad->sp_buffers[i] = buf; |
| - xhci->scratchpad->sp_dma_buffers[i] = dma; |
| } |
| |
| return 0; |
| |
| - fail_sp5: |
| + fail_sp4: |
| for (i = i - 1; i >= 0; i--) { |
| dma_free_coherent(dev, xhci->page_size, |
| xhci->scratchpad->sp_buffers[i], |
| - xhci->scratchpad->sp_dma_buffers[i]); |
| + xhci->scratchpad->sp_array[i]); |
| } |
| - kfree(xhci->scratchpad->sp_dma_buffers); |
| |
| - fail_sp4: |
| kfree(xhci->scratchpad->sp_buffers); |
| |
| fail_sp3: |
| @@ -1794,9 +1785,8 @@ static void scratchpad_free(struct xhci_ |
| for (i = 0; i < num_sp; i++) { |
| dma_free_coherent(dev, xhci->page_size, |
| xhci->scratchpad->sp_buffers[i], |
| - xhci->scratchpad->sp_dma_buffers[i]); |
| + xhci->scratchpad->sp_array[i]); |
| } |
| - kfree(xhci->scratchpad->sp_dma_buffers); |
| kfree(xhci->scratchpad->sp_buffers); |
| dma_free_coherent(dev, num_sp * sizeof(u64), |
| xhci->scratchpad->sp_array, |
| --- a/drivers/usb/host/xhci.h |
| +++ b/drivers/usb/host/xhci.h |
| @@ -1606,7 +1606,6 @@ struct xhci_scratchpad { |
| u64 *sp_array; |
| dma_addr_t sp_dma; |
| void **sp_buffers; |
| - dma_addr_t *sp_dma_buffers; |
| }; |
| |
| struct urb_priv { |