usb: gadget: udc: renesas_usb3: Fix PN_INT_ENA disabling timing
authorYoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Wed, 26 Apr 2017 11:50:10 +0000 (20:50 +0900)
committerFelipe Balbi <felipe.balbi@linux.intel.com>
Fri, 2 Jun 2017 09:45:02 +0000 (12:45 +0300)
The PN_INT_ENA register should be used after usb3_pn_change() is called.
So, this patch moves the access from renesas_usb3_stop_controller() to
usb3_disable_pipe_n().

Fixes: 746bfe63bba3 ("usb: gadget: renesas_usb3: add support for Renesas USB3.0 peripheral controller")
Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
drivers/usb/gadget/udc/renesas_usb3.c

index c05097b5661eb432f4ad1fc31df4d6b31efade79..cd4c885297213bd3e1a5b024d0f2fdde3e6232d6 100644 (file)
@@ -623,7 +623,6 @@ static void renesas_usb3_stop_controller(struct renesas_usb3 *usb3)
 {
        usb3_disconnect(usb3);
        usb3_write(usb3, 0, USB3_P0_INT_ENA);
-       usb3_write(usb3, 0, USB3_PN_INT_ENA);
        usb3_write(usb3, 0, USB3_USB_OTG_INT_ENA);
        usb3_write(usb3, 0, USB3_USB_INT_ENA_1);
        usb3_write(usb3, 0, USB3_USB_INT_ENA_2);
@@ -1682,6 +1681,7 @@ static int usb3_disable_pipe_n(struct renesas_usb3_ep *usb3_ep)
 
        spin_lock_irqsave(&usb3->lock, flags);
        if (!usb3_pn_change(usb3, usb3_ep->num)) {
+               usb3_write(usb3, 0, USB3_PN_INT_ENA);
                usb3_write(usb3, 0, USB3_PN_RAMMAP);
                usb3_clear_bit(usb3, PN_CON_EN, USB3_PN_CON);
        }