> Subject: Bugged initial state with Chipidea driver
> Hi,
> In the Chipidea driver the extcon state is read early in the initialization 
> and
> notifications for extcon events are only enabled at the end of the 
> initialization. If the
> extcon state changes in between the driver will miss the change in extcon 
> state and
> be a bad state.

Yes, it is the limitation, we need to move ci_extcon_register and update extcon 
state in chipidea driver
before we read ID or VBUS value (through extcon) 

> Here is what happens in my case:

Why the two events are both 1 at same time?

> 2. USB driver reads initial extcon state
> 4. USB driver choses initial role
> 5. USB driver enables extcon notifiers then the USB driver is stuck
> in host mode until the EXTCON_USB_HOST value cycles again, when it should be
> in gadget mode. This happens every other boot because my EXTCON_USB_HOST
> value is unreliable during init.
> I have implemented a temporary solution for myself but if you propose a proper
> solution I can implement it and submit a patch.

Feel free to submit your patch.
> Additionally, I guess this could technically happen without extcon, but it is 
> much less
> likely.

For non-extcon solution, the register (otgsc) reflect real-time vbus and id 
value, so it
should be without problem you meet.


Reply via email to