On 08.04.2013 12:38, B, Ravi wrote:
> Felipe
> 
>> Hi,
>> 
>> On Mon, Apr 08, 2013 at 12:25:38PM +0200, B, Ravi wrote:
>>> Daniel
>>> 
>>>> On 08.04.2013 09:57, B, Ravi wrote:
>>>>>> Hi all,
>>>>>> 
>>>>>> here are some patches to separate the HCD and gadget part
>>>>>> of the
>> musb
>>>>>> driver so they can be deselected in Kconfig. They also make
>>>>>> the
>> driver
>>>>>> keep track of the configured port mode that is set from DT,
>>>>>> so the actual runtime configuration can be selected
>>>>>> dynamically.
>>>>>> 
>>>>>> One thing that is still broken is that once pm_suspend()
>>>>>> was called
>> on
>>>>>> a musb device on a USB disconnect, the port won't wake up
>>>>>> again
>> when a
>>>>>> device is plugged back in.
>>>>> 
>>>>> This could be due to SESSION bit removal when root port is
>> disconnected
>>>> in otg_timer function.
>>>> 
>>>> Not sure if we are thinking about the same details, but after
>>>> debuging this a further, turns out that
>>>> musb_platform_try_idle() eventually switches off the entire
>>>> controller, which then leads to DRVBUS going
>> low
>>>> on the board. That, in turn, prevents the interrupt from being
>> triggered
>>>> on reconnect, because the host port is not powered anymore.
>>>> 
>>>> I don't know yet how to cope with that, but for now, I simply
>>>> disabled the call from musb_stage0_irq() to
>>>> musb_platform_try_idle() locally.
>>> 
>>> The otg_timer() gets invoked, which removes the session when no
>>> device connected to root controller, this is required in otg or
>>> dual role mode (Not for host-only mode). Because otg state is
>>> un-defined till user's connected a-side of b-side of cable.
>> 
>> Embedded hosts might also want this to save some power while no
>> devices are connected. I guess most of those devices would rely on
>> SRP or on a polling method to enable VBUS.
> 
> Yes, in case of true otg, SRP wakesup the device to enable VBUS.
> 
> By 'polling' I mean that e.g. every 2
>> seconds turn vbus on, if no device are enumerated in 200ms, then
>> sleep for another 2 seconds.
> 
> Yes, we had this workaround mechanism enabled on some earlier davinci
> platform by setting the session periodically to check any device
> connected for host or otg/dual-role controller to save VBUS power
> when no device connected.

However, this workaround doesn't seem to work anymore.

Anyway, I think we can address this issue separately from the patch set
I submitted.


Thanks,
Daniel
--
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