Re: [PATCH 14/16] usb: musb: dsps: add MUSB_DEVCTL_SESSION back after removal

From: Bin Liu
Date: Fri Jul 26 2013 - 14:29:33 EST


Sebastian,

On Fri, Jul 26, 2013 at 1:22 PM, Sebastian Andrzej Siewior
<bigeasy@xxxxxxxxxxxxx> wrote:
> On 07/26/2013 08:17 PM, Bin Liu wrote:
>
> Hi Bin.
>
>>> In TI 3.2 kernel, the otg_timer() toggles the SESSION bit in
>>> OTG_STATE_B_IDLE state. So whenever the ID pin is grounded by
>>> connecting a device, the controller will try go into host mode.
>>> But I have no idea why your board is in a_idle not b_idle. The toggle
>>> does not handle a_idle.
>>>
>>> Do you use the AM335x GP EVM, not the smaller StarterKit EVM, right?
>>> the USB0 port on SK EVM is device only.
>>>
>>> But anyway, I have not seen any use case which uses micro-AB
>>> receptacle and requires such dynamic role switching. So I kind of
>>
>> I meant the real customer use cases, not the EVMs ;)
>>
> I am using the about the second port on am335x evm which is used as
> host (not OTG mode (3) but HOST (1)). If I start the timer OTG after
> disconnect I see that it gets back to A mode:
>
> [ 97.570852] musb-hdrc musb-hdrc.1.auto: Poll devctl 19 (a_wait_bcon)
I don't think you are testing with the 3.2 kernel you referred from
the ti.com link you mentioned above.
3.2 kernel should have no '.auto' at the end of the device name.

If it is 3.8 or later, it seems the driver does something wrong,
SESSION bit should not be cleared after the device is unplugged.

> [ 99.570306] musb-hdrc musb-hdrc.1.auto: Poll devctl 98 (a_idle)
>
> [ 209.570259] musb-hdrc musb-hdrc.1.auto: Poll devctl 80 (a_idle)
>
> and now the session bit is missing and never gets back so I can not
> plug any other device. I really have no idea what is missing here…
>
> Sebastian
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/