Hi, Fabio Estevam <festevam@xxxxxxxxx> writes: > On Fri, Feb 19, 2016 at 11:33 AM, Felipe Balbi <balbif@xxxxxxxxx> wrote: > >> alright, in which sense doesn't it help ? Which platform did you use ? > > USB devices are not recognized with your patch applied on a mx28 board > with an on-board USB hub and if I remove 'usbcore.autosuspend=-1' from > the kernel command line. > >> mx23 or mx28 ? Did you check that mxs_phy_runtime_idle() got called ? > > mxs_phy_runtime_idle() is not being called on my mx28 board. 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 ? */ + low_speed_connection = mxs_phy_is_low_speed_connection(mxs_phy); vbus_is_on = mxs_phy_get_vbus_status(mxs_phy); -- balbi
Attachment:
signature.asc
Description: PGP signature