From: Lu Baolu <baolu...@linux.intel.com>

No need to calculate remainder and length_field, if there is
no data phase of a control transfer.

Signed-off-by: Lu Baolu <baolu...@linux.intel.com>
Signed-off-by: Mathias Nyman <mathias.ny...@linux.intel.com>
---
 drivers/usb/host/xhci-ring.c | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c
index 61b5fea..2374a13 100644
--- a/drivers/usb/host/xhci-ring.c
+++ b/drivers/usb/host/xhci-ring.c
@@ -3237,7 +3237,7 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *xhci, gfp_t 
mem_flags,
        struct usb_ctrlrequest *setup;
        struct xhci_generic_trb *start_trb;
        int start_cycle;
-       u32 field, length_field, remainder;
+       u32 field;
        struct urb_priv *urb_priv;
        struct xhci_td *td;
 
@@ -3310,16 +3310,16 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *xhci, gfp_t 
mem_flags,
        else
                field = TRB_TYPE(TRB_DATA);
 
-       remainder = xhci_td_remainder(xhci, 0,
-                                  urb->transfer_buffer_length,
-                                  urb->transfer_buffer_length,
-                                  urb, 1);
-
-       length_field = TRB_LEN(urb->transfer_buffer_length) |
-               TRB_TD_SIZE(remainder) |
-               TRB_INTR_TARGET(0);
-
        if (urb->transfer_buffer_length > 0) {
+               u32 length_field, remainder;
+
+               remainder = xhci_td_remainder(xhci, 0,
+                               urb->transfer_buffer_length,
+                               urb->transfer_buffer_length,
+                               urb, 1);
+               length_field = TRB_LEN(urb->transfer_buffer_length) |
+                               TRB_TD_SIZE(remainder) |
+                               TRB_INTR_TARGET(0);
                if (setup->bRequestType & USB_DIR_IN)
                        field |= TRB_DIR_IN;
                queue_trb(xhci, ep_ring, true,
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to