| From 8c6ebb3a7bdd1298f47e6583899fbe66c537bf7c Mon Sep 17 00:00:00 2001 |
| From: Lu Baolu <baolu.lu@linux.intel.com> |
| Date: Mon, 23 Jan 2017 14:20:01 +0200 |
| Subject: [PATCH 190/255] usb: xhci: avoid unnecessary calculation |
| |
| No need to calculate remainder and length_field, if there is |
| no data phase of a control transfer. |
| |
| Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com> |
| Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| (cherry picked from commit fb79a6da459b20554151eed84c991cd9bd35ff15) |
| Signed-off-by: Simon Horman <horms+renesas@verge.net.au> |
| --- |
| drivers/usb/host/xhci-ring.c | 20 ++++++++++---------- |
| 1 file changed, 10 insertions(+), 10 deletions(-) |
| |
| --- a/drivers/usb/host/xhci-ring.c |
| +++ b/drivers/usb/host/xhci-ring.c |
| @@ -3240,7 +3240,7 @@ int xhci_queue_ctrl_tx(struct xhci_hcd * |
| 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; |
| |
| @@ -3313,16 +3313,16 @@ int xhci_queue_ctrl_tx(struct xhci_hcd * |
| 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, |