]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blobdiff - drivers/usb/gadget/udc/renesas_usb3.c
usb: gadget: udc: renesas_usb3: fix double phy_put()
[mirror_ubuntu-bionic-kernel.git] / drivers / usb / gadget / udc / renesas_usb3.c
index 6e87af2483679aac59f23e942dde9367a30d35e4..2b9ee7ebd7cbf01ad979bd758f6f39a5fc18fcd6 100644 (file)
@@ -622,6 +622,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);
@@ -2408,9 +2415,7 @@ static int renesas_usb3_remove(struct platform_device *pdev)
        renesas_usb3_dma_free_prd(usb3, &pdev->dev);
 
        __renesas_usb3_ep_free_request(usb3->ep0_req);
-       if (usb3->phy)
-               phy_put(usb3->phy);
-       pm_runtime_disable(usb3_to_dev(usb3));
+       pm_runtime_disable(&pdev->dev);
 
        return 0;
 }