UPSTREAM: usb: dwc3: gadget: Add the suspend state checking when stopping gadget
authorBaolin Wang <baolin.wang@linaro.org>
Mon, 20 Jun 2016 08:19:48 +0000 (16:19 +0800)
committerHuang, Tao <huangtao@rock-chips.com>
Tue, 16 Aug 2016 12:48:19 +0000 (20:48 +0800)
It will be crash to stop gadget when the dwc3 device had been into suspend
state, thus we need to check if the dwc3 device had been into suspend state
when UDC try to stop gadget.

Change-Id: I1a49d4c52131ef4b4357d4a12b5da55e8127d750
Signed-off-by: Baolin Wang <baolin.wang@linaro.org>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
Signed-off-by: Wu Liang feng <wulf@rock-chips.com>
(cherry picked from commit da1410be21bfedd16740aee6d772e669cf4e852f)

drivers/usb/dwc3/gadget.c

index fd37110ad6e3a512c07bd34c3a4144d81491e6d2..5f29061faa97a08f31a82e493bd548ff432b3288 100644 (file)
@@ -1807,6 +1807,9 @@ err0:
 
 static void __dwc3_gadget_stop(struct dwc3 *dwc)
 {
+       if (pm_runtime_suspended(dwc->dev))
+               return;
+
        dwc3_gadget_disable_irq(dwc);
        __dwc3_gadget_ep_disable(dwc->eps[0]);
        __dwc3_gadget_ep_disable(dwc->eps[1]);