summaryrefslogtreecommitdiffstats
path: root/drivers/usb/host/xhci.h
diff options
context:
space:
mode:
authorAlexandr Ivanov <alexandr.sky@gmail.com>2016-04-22 13:17:09 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2016-04-26 16:08:02 -0700
commitd2510342fe93d5ac8b807bc1d44b613eb5d9c64d (patch)
treeba156a049060f81a32cc6546e5d589ddd8472756 /drivers/usb/host/xhci.h
parent5f2e5fb873e269fcb806165715d237f0de4ecf1d (diff)
downloadtalos-obmc-linux-d2510342fe93d5ac8b807bc1d44b613eb5d9c64d.tar.gz
talos-obmc-linux-d2510342fe93d5ac8b807bc1d44b613eb5d9c64d.zip
usb: xhci: merge xhci_queue_bulk_tx and queue_bulk_sg_tx functions
In drivers/usb/host/xhci-ring.c there are two functions (xhci_queue_bulk_tx and queue_bulk_sg_tx) that are very similar, so a lot of code duplication. This patch merges these functions into to one xhci_queue_bulk_tx. Also counting the needed TRBs is merged and refactored. Signed-off-by: Alexandr Ivanov <alexandr.sky@gmail.com> Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb/host/xhci.h')
-rw-r--r--drivers/usb/host/xhci.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h
index 6c629c97f8ad..8fd35a65913d 100644
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
@@ -1338,6 +1338,9 @@ union xhci_trb {
/* TRB buffer pointers can't cross 64KB boundaries */
#define TRB_MAX_BUFF_SHIFT 16
#define TRB_MAX_BUFF_SIZE (1 << TRB_MAX_BUFF_SHIFT)
+/* How much data is left before the 64KB boundary? */
+#define TRB_BUFF_LEN_UP_TO_BOUNDARY(addr) (TRB_MAX_BUFF_SIZE - \
+ (addr & (TRB_MAX_BUFF_SIZE - 1)))
struct xhci_segment {
union xhci_trb *trbs;
OpenPOWER on IntegriCloud