usb: dwc3: gadget: remove duplicated missed isoc handling
authorFelipe Balbi <felipe.balbi@linux.intel.com>
Thu, 29 Mar 2018 10:07:16 +0000 (13:07 +0300)
committerFelipe Balbi <felipe.balbi@linux.intel.com>
Mon, 21 May 2018 07:00:53 +0000 (10:00 +0300)
Now, this part of the code is duplicated and brings no extra value to
the driver. Let's remove it.

Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
Documentation/driver-api/usb/dwc3.rst
drivers/usb/dwc3/core.h
drivers/usb/dwc3/gadget.c
drivers/usb/dwc3/trace.h

index 33f65d2..8b36ff1 100644 (file)
@@ -676,7 +676,6 @@ operations, both of which can be traced. Format is::
        __entry->flags & DWC3_EP_WEDGE ? 'W' : 'w',
        __entry->flags & DWC3_EP_TRANSFER_STARTED ? 'B' : 'b',
        __entry->flags & DWC3_EP_PENDING_REQUEST ? 'P' : 'p',
-       __entry->flags & DWC3_EP_MISSED_ISOC ? 'M' : 'm',
        __entry->flags & DWC3_EP_END_TRANSFER_PENDING ? 'E' : 'e',
        __entry->direction ? '<' : '>'
   )
index 499e086..285ce0e 100644 (file)
@@ -664,7 +664,6 @@ struct dwc3_ep {
 #define DWC3_EP_WEDGE          BIT(2)
 #define DWC3_EP_TRANSFER_STARTED BIT(3)
 #define DWC3_EP_PENDING_REQUEST        BIT(5)
-#define DWC3_EP_MISSED_ISOC    BIT(6)
 #define DWC3_EP_END_TRANSFER_PENDING   BIT(7)
 
        /* This last one is specific to EP0 */
index d378f3e..452f76e 100644 (file)
@@ -1333,8 +1333,7 @@ static int __dwc3_gadget_ep_queue(struct dwc3_ep *dep, struct dwc3_request *req)
                        return 0;
                }
 
-               if ((dep->flags & DWC3_EP_TRANSFER_STARTED) &&
-                   !(dep->flags & DWC3_EP_MISSED_ISOC))
+               if (dep->flags & DWC3_EP_TRANSFER_STARTED)
                        goto out;
 
                return 0;
@@ -2229,7 +2228,6 @@ static int dwc3_gadget_ep_reclaim_completed_trb(struct dwc3_ep *dep,
 {
        unsigned int            count;
        unsigned int            s_pkt = 0;
-       unsigned int            trb_status;
 
        dwc3_ep_inc_deq(dep);
 
@@ -2264,35 +2262,7 @@ static int dwc3_gadget_ep_reclaim_completed_trb(struct dwc3_ep *dep,
        if ((trb->ctrl & DWC3_TRB_CTRL_HWO) && status != -ESHUTDOWN)
                return 1;
 
-       if (dep->direction) {
-               if (count) {
-                       trb_status = DWC3_TRB_SIZE_TRBSTS(trb->size);
-                       if (trb_status == DWC3_TRBSTS_MISSED_ISOC) {
-                               /*
-                                * If missed isoc occurred and there is
-                                * no request queued then issue END
-                                * TRANSFER, so that core generates
-                                * next xfernotready and we will issue
-                                * a fresh START TRANSFER.
-                                * If there are still queued request
-                                * then wait, do not issue either END
-                                * or UPDATE TRANSFER, just attach next
-                                * request in pending_list during
-                                * giveback.If any future queued request
-                                * is successfully transferred then we
-                                * will issue UPDATE TRANSFER for all
-                                * request in the pending_list.
-                                */
-                               dep->flags |= DWC3_EP_MISSED_ISOC;
-                       } else {
-                               dev_err(dep->dwc->dev, "incomplete IN transfer %s\n",
-                                               dep->name);
-                               status = -ECONNRESET;
-                       }
-               } else {
-                       dep->flags &= ~DWC3_EP_MISSED_ISOC;
-               }
-       } else {
+       if (!dep->direction) {
                if (count && (event->status & DEPEVT_STATUS_SHORT))
                        s_pkt = 1;
        }
index f91461b..f22714c 100644 (file)
@@ -303,7 +303,7 @@ DECLARE_EVENT_CLASS(dwc3_log_ep,
                __entry->trb_enqueue = dep->trb_enqueue;
                __entry->trb_dequeue = dep->trb_dequeue;
        ),
-       TP_printk("%s: mps %d/%d streams %d burst %d ring %d/%d flags %c:%c%c%c%c%c:%c:%c",
+       TP_printk("%s: mps %d/%d streams %d burst %d ring %d/%d flags %c:%c%c%c%c:%c:%c",
                __get_str(name), __entry->maxpacket,
                __entry->maxpacket_limit, __entry->max_streams,
                __entry->maxburst, __entry->trb_enqueue,
@@ -313,7 +313,6 @@ DECLARE_EVENT_CLASS(dwc3_log_ep,
                __entry->flags & DWC3_EP_WEDGE ? 'W' : 'w',
                __entry->flags & DWC3_EP_TRANSFER_STARTED ? 'B' : 'b',
                __entry->flags & DWC3_EP_PENDING_REQUEST ? 'P' : 'p',
-               __entry->flags & DWC3_EP_MISSED_ISOC ? 'M' : 'm',
                __entry->flags & DWC3_EP_END_TRANSFER_PENDING ? 'E' : 'e',
                __entry->direction ? '<' : '>'
        )