drivers: usb_device: smartbond: Fix reenable of EP0 When EP0 was disabled EP0 was setup to ignore setup and out packets. In usb_dc_ep_enable() function mask was never cleared. It resulted in USB stop functioning after application disabled endpoint (usb_disable()) and then tried to enable usb again. Signed-off-by: Jerzy Kasenberg <jerzy.kasenberg@codecoup.pl>
diff --git a/drivers/usb/device/usb_dc_smartbond.c b/drivers/usb/device/usb_dc_smartbond.c index e409e45..a6fb8a1 100644 --- a/drivers/usb/device/usb_dc_smartbond.c +++ b/drivers/usb/device/usb_dc_smartbond.c
@@ -1192,6 +1192,8 @@ USB->USB_MAMSK_REG |= USB_USB_MAMSK_REG_USB_M_EP0_TX_Msk; } else if (ep_state->ep_addr == EP0_OUT) { USB->USB_MAMSK_REG |= USB_USB_MAMSK_REG_USB_M_EP0_RX_Msk; + /* Clear USB_IGN_SETUP and USB_IGN_OUT */ + USB->USB_RXC0_REG = 0; ep_state->last_packet_size = 0; ep_state->transferred = 0; ep_state->total_len = 0;