Re: Data loss in isosynchronous transfers

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

 



On Wed, Dec 14, 2011 at 08:04:11AM -0600, Gabriel M. Beddingfield wrote:
> 
> On OMAP4, sending USB audio over the High Speed port typically
> results in data loss (audio noise).  If I modify sound/usb/urb.c to
> tweak things like the "total_packs" calculation, I can sometimes get
> it to work well for a specific case.  How do I "right-size" the
> packets?  Or should I be doing something else?

iso packets are supposed to be able to be "lost", that's the whole way
the protocol transfer works.  It is never a "this must get through" type
of thing here, so this is normal.

> DETAILS....
> 
> Platform: TI OMAP4 4460
> Board: Blaze Tablet
> EHCI: Onboard OMAP4, IP provided by Synopsys. Driver is
> drivers/usb/host/ehci-omap.c
> Audio device: Logitech H360 Headset (USB)
> Kernel: TI's p-android-omap-3.0 branch[1]
> 
> Example:
> 
> If I play 2-channel, 16-bit, PCM audio at 44100 Hz, the URB
> completion callback will often show that all of the data did not
> reach the end-point.  The audio plays, but has pops.
> 
> In this case, sound/usb/urb.c typically calculates that it wants to
> send 24 URB's in each transer.  If I manually alter it to use 12
> instead, then the audio plays as expected.[2]  However, the same
> tweak does not work for 48000 Hz.

That's probably because you are trying to send more data than can be
scheduled here, right?  And again, that's to be expected and should be
just fine, you might want to look at why things are "popping" and fix
that in the audio player, as it should be able to handle this smoother I
would think.

greg k-h
--
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