Re: [PATCH] usb audio.

From: David Woodhouse (dwmw2@infradead.org)
Date: Fri Oct 13 2000 - 09:08:59 EST


J.A.K.Mouw@ITS.TUDelft.NL said:
> I had to patch it by hand into test10-pre2,

For the benefit of others who haven't yet tried it, you want this version
again test10-pre2:

Index: drivers/usb/audio.c
===================================================================
RCS file: /inst/cvs/linux/drivers/usb/audio.c,v
retrieving revision 1.1.2.32
diff -u -r1.1.2.32 audio.c
--- drivers/usb/audio.c 2000/10/13 10:24:59 1.1.2.32
+++ drivers/usb/audio.c 2000/10/13 14:04:41
@@ -1009,8 +1009,10 @@
                 }
                 spin_lock_irqsave(&as->lock, flags);
         }
- if (u->dma.count >= u->dma.dmasize && !u->dma.mapped)
+ if (u->dma.count >= u->dma.dmasize && !u->dma.mapped) {
+ spin_unlock_irqrestore(&as->lock, flags);
                 return 0;
+ }
         u->flags |= FLG_RUNNING;
         if (!(u->flags & FLG_URB0RUNNING)) {
                 urb = &u->durb[0].urb;
@@ -1372,8 +1374,10 @@
                 }
                 spin_lock_irqsave(&as->lock, flags);
         }
- if (u->dma.count <= 0 && !u->dma.mapped)
+ if (u->dma.count <= 0 && !u->dma.mapped) {
+ spin_unlock_irqrestore(&as->lock, flags);
                 return 0;
+ }
                u->flags |= FLG_RUNNING;
         if (!(u->flags & FLG_URB0RUNNING)) {
                 urb = &u->durb[0].urb;
@@ -2772,6 +2776,14 @@
         init_waitqueue_head(&as->usbin.dma.wait);
         init_waitqueue_head(&as->usbout.dma.wait);
         spin_lock_init(&as->lock);
+ spin_lock_init(&as->usbin.durb[0].urb.lock);
+ spin_lock_init(&as->usbin.durb[1].urb.lock);
+ spin_lock_init(&as->usbin.surb[0].urb.lock);
+ spin_lock_init(&as->usbin.surb[1].urb.lock);
+ spin_lock_init(&as->usbout.durb[0].urb.lock);
+ spin_lock_init(&as->usbout.durb[1].urb.lock);
+ spin_lock_init(&as->usbout.surb[0].urb.lock);
+ spin_lock_init(&as->usbout.surb[1].urb.lock);
         as->state = s;
         as->usbin.interface = asifin;
         as->usbout.interface = asifout;

> but the noise is right and the machine doesn't lock.

Good.

> Only problem is that the sound has a lot of hickups and I get these
> messages in my syslog:

I didn't see that. I think I _do_ have CONFIG_USB_BANDWIDTH enabled. What
else do you have connected and what else were you using at the time? Does
the kernel whinge?

I got hiccoughs while I was running with full debugging and a serial
console, unsurprisingly :)

I also get hiccoughs if I try to read /proc/bus/usb/devices while the
scanner is plugged in.

--
dwmw2

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sun Oct 15 2000 - 21:00:24 EST