staging: dwc2: optimize dwc2_hc_handle_tt_clear() a bit
authorPaul Zimmerman <Paul.Zimmerman@synopsys.com>
Sat, 13 Jul 2013 21:53:50 +0000 (14:53 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 23 Jul 2013 21:54:48 +0000 (14:54 -0700)
Make dwc2_hc_handle_tt_clear() return early if the device is
hi-speed.

Signed-off-by: Paul Zimmerman <paulz@synopsys.com>
Tested-by: Stephen Warren <swarren@wwwdotorg.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/dwc2/hcd_intr.c

index 22836f5f7ff66c663ea71681ee96bb0b1fb2f8cd..093a75c3d0db60317ea3e0b20f9411f26e9f8ed4 100644 (file)
@@ -89,15 +89,20 @@ static void dwc2_hc_handle_tt_clear(struct dwc2_hsotg *hsotg,
 {
        struct urb *usb_urb;
 
-       if (!chan->qh || !qtd->urb)
+       if (!chan->qh)
+               return;
+
+       if (chan->qh->dev_speed == USB_SPEED_HIGH)
+               return;
+
+       if (!qtd->urb)
                return;
 
        usb_urb = qtd->urb->priv;
-       if (!usb_urb || !usb_urb->dev)
+       if (!usb_urb || !usb_urb->dev || !usb_urb->dev->tt)
                return;
 
-       if (chan->qh->dev_speed != USB_SPEED_HIGH &&
-           qtd->urb->status != -EPIPE && qtd->urb->status != -EREMOTEIO) {
+       if (qtd->urb->status != -EPIPE && qtd->urb->status != -EREMOTEIO) {
                chan->qh->tt_buffer_dirty = 1;
                if (usb_hub_clear_tt_buffer(usb_urb))
                        /* Clear failed; let's hope things work anyway */