Hi,

Fabio Estevam <feste...@gmail.com> writes:
> On Fri, Feb 19, 2016 at 11:33 AM, Felipe Balbi <bal...@gmail.com> 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

Reply via email to