| From 3879a4ff1bcd8b45b90f152ba64a975c68ec61e4 Mon Sep 17 00:00:00 2001 |
| From: Bo He <bo.he@intel.com> |
| Date: Mon, 14 Jan 2019 09:48:32 +0200 |
| Subject: usb: dwc3: gadget: synchronize_irq dwc irq in suspend |
| |
| [ Upstream commit 01c10880d24291a96a4ab0da773e3c5ce4d12da8 ] |
| |
| We see dwc3 endpoint stopped by unwanted irq during |
| suspend resume test, which is caused dwc3 ep can't be started |
| with error "No Resource". |
| |
| Here, add synchronize_irq before suspend to sync the |
| pending IRQ handlers complete. |
| |
| Signed-off-by: Bo He <bo.he@intel.com> |
| Signed-off-by: Yu Wang <yu.y.wang@intel.com> |
| Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/usb/dwc3/gadget.c | 2 ++ |
| 1 file changed, 2 insertions(+) |
| |
| diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c |
| index 0db90f6f4aa81..f6cd7feeb1c4f 100644 |
| --- a/drivers/usb/dwc3/gadget.c |
| +++ b/drivers/usb/dwc3/gadget.c |
| @@ -3274,6 +3274,8 @@ int dwc3_gadget_suspend(struct dwc3 *dwc) |
| dwc3_disconnect_gadget(dwc); |
| __dwc3_gadget_stop(dwc); |
| |
| + synchronize_irq(dwc->irq_gadget); |
| + |
| return 0; |
| } |
| |
| -- |
| 2.19.1 |
| |