On Fri, Feb 19, 2016 at 12:13 PM, Felipe Balbi <bal...@gmail.com> 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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to