RE: Bugged initial state with Chipidea driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



 
> 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:
> 1. EXTCON_USB_HOST=1, EXTCON_USB=1

Why the two events are both 1 at same time?

> 2. USB driver reads initial extcon state
> 3. EXTCON_USB_HOST=0
> 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.

Peter
��.n��������+%������w��{.n�����{���)��jg��������ݢj����G�������j:+v���w�m������w�������h�����٥




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux