isochronous URB and packet calculations for USB audio

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

 



Clemens:

Can you explain briefly how the snd-usb-audio driver decides how many 
URBs to submit and how many isochronous packets to use in each URB?

I found the logic in endpoint.c a little confusing.  Evidently once the
total number of packetss and the number of URBs are known, the packets
get divided up as evenly as possible among the URBs.  But I don't
understand how the totals are determined.

In practice, it seems that the pipeline depth is often lower than I
would expect.  For example, in one test a 48 KHz 16-bit mono full-speed
USB audio output device (maxpacket size = 96, interval = 1 frame) ended
up getting only two URBs and three packets total.  Wouldn't it make
more sense to allow for interrupt latencies longer than 1 ms, and
perhaps also to try to minimize the rate at which IRQs occur?  Two URBs
with five packets each seems reasonable.

Thanks,

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