Re: Errata for Freescale root-hub TT?

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

 



On Wed, Mar 25, 2015 at 10:11:27AM -0400, Alan Stern wrote:
> On Wed, 25 Mar 2015, Peter Chen wrote:
> 
> > > > How do you know the frame has filled already at that time? The software
> > > > makes sure it fills frame in time before next time frame?
> > > 
> > > I'm not sure I understand the question.
> > > 
> > > The USB analyzer log showed something like this (this is a rough 
> > > approximation because I didn't keep the original analyzer output file):
> > > 
> > > 	Timestamp		Transaction
> > > 	s.mmm uuu
> > > 	-----------------------------------
> > > 	0.000 000		SOF
> > > 	0.000 030		Isoc OUT
> > > 	0.000 091		Isoc OUT
> > > 	0.000 162		Isoc OUT
> > > 	0.000 224		Isoc OUT
> > > 	0.001 000		SOF
> > > 
> > > In this example, there are 4 OUT transfers taking about 290 us and then
> > > nothing else for the rest of the frame.
> > > 
> > > I also know, from looking at the "periodic" file in the EHCI debugfs 
> > > directory, that each frame was linked to 8 siTDs:
> > > 
> > > 	siTD OUT, Smask = 0x01, Cmask = 0x00, transfer length = 64
> > > 	siTD OUT, Smask = 0x01, Cmask = 0x00, transfer length = 64
> > > 	siTD OUT, Smask = 0x02, Cmask = 0x00, transfer length = 64
> > > 	siTD OUT, Smask = 0x02, Cmask = 0x00, transfer length = 64
> > > 	siTD IN,  Smask = 0x04, Cmask = 0x70, transfer length = 64
> > > 	siTD IN,  Smask = 0x04, Cmask = 0x70, transfer length = 64
> > > 	siTD IN,  Smask = 0x08, Cmask = 0xe0, transfer length = 64
> > > 	siTD IN,  Smask = 0x08, Cmask = 0xe0, transfer length = 64
> > > 
> > 
> > I did not debug too many for Host ISOC, I just want to make sure the
> > siTD is ready before the controller read it? 
> 
> Yes, all the siTDs were ready before the controller read them.  I know
> because it worked perfectly when I used a high-speed hub instead of a
> full-speed hub.
> 
> > Does it fail at the beginning or running several cycles?
> 
> The isochronous streams did not all start at the same time.  First one
> isoc-OUT stream started, then the second stream, then the third stream,
> then the fourth stream.  After that, the isoc-IN streams started, one
> by one.
> 
> The controller worked okay up until the time the isoc-IN streams began.  
> Before that, it transmitted the OUT packets correctly.  After the
> isoc-IN streams started, the controller sometimes transmitted only the
> four OUT packets (like in the example above), sometimes a mixture of
> OUT and IN packets, and sometimes only one or two IN packets.  The
> behavior was very erratic.
> 

Hi Alan,

I tried to your case today, but it seems full speed hub with siTD
has some problems with latest greg's next tree, I use UAC2 with
configfs for audio device, high speed hub works ok.

The commands:
aplay -D hw:1,0 audio32k16M.wav
arecord -Dhw:1 -r 32000 -c 1 -f S16_LE -d 20 file_32.wav

The corresponding failure logs:
[   81.542848] ci_hdrc ci_hdrc.0: iso sched full bd7d5100
[   81.542884] usb 1-1.2: cannot submit urb 0, error -28: not enough
bandwidth
[  355.078938] ci_hdrc ci_hdrc.0: iso sched full bd49cc00
[  355.078969] usb 1-1.2: cannot submit urb 0, error -28: not enough
bandwidth

-- 

Best Regards,
Peter Chen
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




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

  Powered by Linux