Re: Hercules Deejay Trim, "not enough bandwidth"

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

 



On Sat, 30 Oct 2010, Alan Stern wrote:

> On Sat, 30 Oct 2010, Daniel Stöckner wrote:
> 
> > Three periodic files are attached. "4+0" is 4 mono inputs simplex, "0+2"
> > is stereo output simplex and "4+2" contains periodic (~100 milliseconds)
> > copies from the periodic file, when starting the soundcard in "4+2"
> > mode, which fails. Maybe it helps...
> 
> Unfortunately these files don't contain very much information.  I'll 
> have to write a patch for you to try in order to get more.
> 
> But first, are you running with CONFIG_USB_DEBUG enabled?  If not, you 
> should build a kernel with it turned on.  Then the dmesg log for the 
> 4+2 case should contain some interesting debugging messages.

Never mind, the logs you already posted were made with
CONFIG_USB_DEBUG.

Anyway I figured out the problem.  It is a result of the sad fact that 
scheduling of periodic transfers to full-speed devices is less 
flexible on high-speed controllers than on full-speed controllers.  
Unfortunately your new computer doesn't have any full-speed 
controllers.

The usbmon log shows that when you run the test, your program starts
the 2-channel output stream first and then starts the 4-channel input
stream.  However once the output stream has been placed in the
schedule, there isn't enough room left to add the input stream without
rescheduling the output.  Rescheduling is extremely difficult and the
driver doesn't even try; it just gives up and says there isn't enough
bandwidth remaining.

If you can change your program so that it starts the input stream 
before the output stream, it ought to work better.

Alan Stern

--
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