RELENG_6 + usb audio ?
Hans Petter Selasky
hselasky at c2i.net
Thu Jun 28 14:29:03 UTC 2007
It is a problem in the USB code. Check all the "isoc.*enter" methods, and make
sure that they look something like this:
/* get the current frame index */
nframes = EOREAD4(sc, EHCI_FRINDEX) / 8;
/* check if the frame index is within
* the window where the frames will be
buf_offset = (nframes - xfer->pipe->isoc_next) &
if ((LIST_FIRST(&(xfer->pipe->list_head)) == NULL) ||
(buf_offset < xfer->nframes))
/* If there is data underflow or the pipe queue is
* empty we schedule the transfer a few frames ahead
* of the current frame position. Else two
* isochronous transfers might overlap.
xfer->pipe->isoc_next = (nframes + 3) &
DPRINTFN(2,("start next=%d\n", xfer->pipe->isoc_next));
On Thursday 28 June 2007 13:01, Alexander Leidinger wrote:
> Quoting Hans Petter Selasky <hselasky at c2i.net> (from Thu, 28 Jun 2007
> 12:44:28 +0200):
> > On Thursday 28 June 2007 11:40, Alexander Leidinger wrote:
> >> Quoting Hans Petter Selasky <hselasky at c2i.net> (from Wed, 27 Jun 2007
> >> 18:23:08 +0200):
> >> > Hi,
> >> >
> >> > USB Audio works fine with my new USB stack, also called HPS USB stack.
> >> > There are some problems with the official USB stack regarding
> >> > isochronous transfers.
> >> Can you please be more specific?
> > Yes, last time I checked, the start position where the isochronous
> > transfers are inserted, was not updated properly when there was data
> > underrun.
> Is this a problem in uaudio or in the USB code? If it is the former,
> can you please point out the code in question in a way that someone
> without knowledge of the USB system is able to fix this? If it is the
> later, would you please tell Warner about it in a way that he can
> investigate this (I'm sure you can tell if the fix is a
> nearly-one-liner and where it needs to be done). We are approaching
> the release of 7.0 and it would be nice if easy to fix bugs which are
> known are fixed until then.
> > Secondly, full-duplex was not working with OHCI hardware, right?
> AFAIK: yes. This may or may not an issue in this case.
More information about the freebsd-multimedia