[PATCH v2 2/3] musb: sunxi: Remove custom babble handling

Hans de Goede hdegoede at redhat.com
Thu Sep 22 07:03:39 PDT 2016


Hi,

On 09/22/2016 04:54 PM, Bin Liu wrote:
> Hi,
>
> On Thu, Sep 22, 2016 at 02:19:00PM +0300, Hans de Goede wrote:
>> The musb-core now a days always treats babble errors in host mode
>
> I don't think this statement is accurate. You might want to change it to
> "The musb core already handles babble interrupt" or something else.

It is accurate if you look in the history at drivers/usb/musb
commits around 15-03-10 you will see 2 relevant commits:

https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/drivers/usb/musb?id=b4dc38fd45b63e3da2bc98db5d283a15a637a2fa

"usb: musb: core: simplify musb_recover_work()"

This commits introduces calling musb_root_disconnect(musb)
on babble errors, that was not happening before which is why
I added the custom babble error handling. to the sunxi glue.

And:

"usb: musb: core: always try to recover from babble"

Where the title says it all.

Take these together and I believe that my commit msg:

"The musb-core now a days always treats babble errors in host mode
as disconnects, so there is no need for the sunxi specific handling
of this anymore."

Is quite accurate.

Regards,

Hans


>>
>> Signed-off-by: Hans de Goede <hdegoede at redhat.com>
>> ---
>> Changes in v2:
>> -This is a new patch in v2 of this patch series
>> ---
>>  drivers/usb/musb/sunxi.c | 10 ----------
>>  1 file changed, 10 deletions(-)
>>
>> diff --git a/drivers/usb/musb/sunxi.c b/drivers/usb/musb/sunxi.c
>> index 1408245..82eba92 100644
>> --- a/drivers/usb/musb/sunxi.c
>> +++ b/drivers/usb/musb/sunxi.c
>> @@ -186,16 +186,6 @@ static irqreturn_t sunxi_musb_interrupt(int irq, void *__hci)
>>  	if (musb->int_usb)
>>  		writeb(musb->int_usb, musb->mregs + SUNXI_MUSB_INTRUSB);
>>
>> -	/*
>> -	 * sunxi musb often signals babble on low / full speed device
>> -	 * disconnect, without ever raising MUSB_INTR_DISCONNECT, since
>> -	 * normally babble never happens treat it as disconnect.
>> -	 */
>> -	if ((musb->int_usb & MUSB_INTR_BABBLE) && is_host_active(musb)) {
>> -		musb->int_usb &= ~MUSB_INTR_BABBLE;
>> -		musb->int_usb |= MUSB_INTR_DISCONNECT;
>> -	}
>> -
>>  	if ((musb->int_usb & MUSB_INTR_RESET) && !is_host_active(musb)) {
>>  		/* ep0 FADDR must be 0 when (re)entering peripheral mode */
>>  		musb_ep_select(musb->mregs, 0);
>> --
>> 2.9.3
>>



More information about the linux-arm-kernel mailing list