mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-27 12:32:50 +00:00
usb: gadget: udc: renesas_usb3: disable the controller's irqs for reconnecting
commitbd6bce004dupstream. This patch fixes an issue that reconnection is possible to fail because unexpected state handling happens by the irqs. To fix the issue, the driver disables the controller's irqs when disconnected. Fixes:746bfe63bb("usb: gadget: renesas_usb3: add support for Renesas USB3.0 peripheral controller") Cc: <stable@vger.kernel.org> # v4.5+ Reviewed-by: Simon Horman <horms+renesas@verge.net.au> Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com> Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
a1b6b51fab
commit
cde4abc367
@@ -623,6 +623,13 @@ static void usb3_disconnect(struct renesas_usb3 *usb3)
|
||||
usb3_usb2_pullup(usb3, 0);
|
||||
usb3_clear_bit(usb3, USB30_CON_B3_CONNECT, USB3_USB30_CON);
|
||||
usb3_reset_epc(usb3);
|
||||
usb3_disable_irq_1(usb3, USB_INT_1_B2_RSUM | USB_INT_1_B3_PLLWKUP |
|
||||
USB_INT_1_B3_LUPSUCS | USB_INT_1_B3_DISABLE |
|
||||
USB_INT_1_SPEED | USB_INT_1_B3_WRMRST |
|
||||
USB_INT_1_B3_HOTRST | USB_INT_1_B2_SPND |
|
||||
USB_INT_1_B2_L1SPND | USB_INT_1_B2_USBRST);
|
||||
usb3_clear_bit(usb3, USB_COM_CON_SPD_MODE, USB3_USB_COM_CON);
|
||||
usb3_init_epc_registers(usb3);
|
||||
|
||||
if (usb3->driver)
|
||||
usb3->driver->disconnect(&usb3->gadget);
|
||||
|
||||
Reference in New Issue
Block a user