On Fri, Feb 19, 2016 at 12:13 PM, Felipe Balbi <balbif@xxxxxxxxx> wrote: > ooooh, okay. So you have another problem, actually. Seems like ci_hdrc > just shouldn't call your phy->suspend(), or your phy->suspend() > shouldn't do anything. How about below? > > @@ -370,6 +370,9 @@ static int mxs_phy_suspend(struct usb_phy *x, int suspend) > struct mxs_phy *mxs_phy = to_mxs_phy(x); > bool low_speed_connection, vbus_is_on; > > + if (mxs_phy->data->flags & MXS_PHY_ABNORMAL_IN_SUSPEND) > + return 0; /* or should we return -EBUSY ? */ > + Tested with 0 and also -EBUSY. This code is called now, but it does not fix the problem. Same log: [ 3.005881] hub 1-1:1.0: USB hub found [ 3.010341] hub 1-1:1.0: 2 ports detected [ 3.536362] usb 1-1: USB disconnect, device number 2 [ 3.582732] usb usb1-port1: cannot reset (err = -32) [ 3.588289] usb usb1-port1: cannot reset (err = -32) [ 3.593546] usb usb1-port1: cannot reset (err = -32) [ 3.598929] usb usb1-port1: cannot reset (err = -32) [ 3.604188] usb usb1-port1: cannot reset (err = -32) [ 3.609339] usb usb1-port1: Cannot enable. Maybe the USB cable is bad? -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html