Re: [PATCH] Revert "usb: dwc3: gadget: drop unnecessary loop when cleaning up TRBs"

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

 



Hi,

Felipe Balbi <balbi@xxxxxx> writes:
> On Wed, Sep 02, 2015 at 05:09:39PM +0900, Masakazu Mokuno wrote:
>> Hi,
>> 
>> On Mon, 31 Aug 2015 11:54:13 -0500
>> Felipe Balbi <balbi@xxxxxx> wrote:
>> 
>> > On Mon, Aug 31, 2015 at 07:48:28PM +0300, ville.syrjala@xxxxxxxxxxxxxxx wrote:
>> > > From: Ville Syrj舁・<ville.syrjala@xxxxxxxxxxxxxxx>
>> > > 
>> > > This reverts commit 8f2c9544aba636134303105ecb164190a39dece4.
>> > > 
>> > > As it breaks g_ether on my Baytrail FFRD8 device. Everything starts out
>> > > fine, but after a bit of data has been transferred it just stops
>> > > flowing.
>> > > 
>> > > Note that I do get a bunch of these "NOHZ: local_softirq_pending 08"
>> > > when booting the machine, but I'm not really sure if they're related
>> > > to this problem.
>> > 
>> > I have a feeling your problem is elsewhere. We *are* completing one TRB
>> > at a time. 
>> 
>> If usb_request.no_interrupt is flagged, it seems dwc3 does not set IOC
>> on the corresponding TRB.  Does it break the assumption every TRB
>> (without SG) will trigger one corresponding EP event?
>> u_ether is the function module that utilizes 'no_interrupt' flag.
>
> XferInProgress should still trigger. Besides, I tested with the exact
> same setup (different SoC though), just look at the thread.

I found a way to reproduce this on my end. What I was missing was the
use of request.no_interrupt. We won't get XferInProgress for all TRBs if
IOC isn't set in all of them.

I'll apply this patch ASAP as it fixes the problem I managed to
reproduce (ping -s 40000 makes it fail here)

-- 
balbi

Attachment: signature.asc
Description: PGP signature


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

  Powered by Linux