RELENG_6 + usb audio ?

Hans Petter Selasky hselasky at c2i.net
Thu Jun 28 14:29:03 UTC 2007


Hi Alexander,

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
         * inserted
         */
        buf_offset = (nframes - xfer->pipe->isoc_next) & 
          (EHCI_VIRTUAL_FRAMELIST_COUNT-1);

        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) & 
                  (EHCI_VIRTUAL_FRAMELIST_COUNT-1);
                DPRINTFN(2,("start next=%d\n", xfer->pipe->isoc_next));
        }

--HPS

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.
>
> Bye,
> Alexander.


More information about the freebsd-multimedia mailing list