]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
usb: dwc3: warn on once when no trbs
authorJanusz Dziedzic <januszx.dziedzic@linux.intel.com>
Wed, 9 Nov 2016 10:01:35 +0000 (11:01 +0100)
committerFelipe Balbi <felipe.balbi@linux.intel.com>
Fri, 18 Nov 2016 11:54:15 +0000 (13:54 +0200)
Seems last time we hit few issues where
we get trb_left = 0, mainly because of
HWO bit still set in previous TRB.
Add warn on once to catch/fix such
problems much faster.

Signed-off-by: Janusz Dziedzic <januszx.dziedzic@linux.intel.com>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
drivers/usb/dwc3/gadget.c

index 37d3de41123c12e7135983240425e85e7b1b30de..7e465ea6a2117df9da25fceb0253f76e74613961 100644 (file)
@@ -937,6 +937,7 @@ static struct dwc3_trb *dwc3_ep_prev_trb(struct dwc3_ep *dep, u8 index)
 static u32 dwc3_calc_trbs_left(struct dwc3_ep *dep)
 {
        struct dwc3_trb         *tmp;
+       struct dwc3             *dwc = dep->dwc;
        u8                      trbs_left;
 
        /*
@@ -948,7 +949,8 @@ static u32 dwc3_calc_trbs_left(struct dwc3_ep *dep)
         */
        if (dep->trb_enqueue == dep->trb_dequeue) {
                tmp = dwc3_ep_prev_trb(dep, dep->trb_enqueue);
-               if (tmp->ctrl & DWC3_TRB_CTRL_HWO)
+               if (dev_WARN_ONCE(dwc->dev, tmp->ctrl & DWC3_TRB_CTRL_HWO,
+                                 "%s No TRBS left\n", dep->name))
                        return 0;
 
                return DWC3_TRB_NUM - 1;