Merge 5.17-rc6 into char-misc-next
[linux-2.6-microblaze.git] / drivers / usb / dwc2 / drd.c
index 1b39c47..d8d6493 100644 (file)
@@ -130,8 +130,10 @@ static int dwc2_drd_role_sw_set(struct usb_role_switch *sw, enum usb_role role)
                already = dwc2_ovr_avalid(hsotg, true);
        } else if (role == USB_ROLE_DEVICE) {
                already = dwc2_ovr_bvalid(hsotg, true);
-               /* This clear DCTL.SFTDISCON bit */
-               dwc2_hsotg_core_connect(hsotg);
+               if (dwc2_is_device_enabled(hsotg)) {
+                       /* This clear DCTL.SFTDISCON bit */
+                       dwc2_hsotg_core_connect(hsotg);
+               }
        } else {
                if (dwc2_is_device_mode(hsotg)) {
                        if (!dwc2_ovr_bvalid(hsotg, false))