Source-Changes-HG archive

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

[src/netbsd-8]: src/sys/dev/usb Pull up following revision(s) (requested by n...



details:   https://anonhg.NetBSD.org/src/rev/43eaa0780890
branches:  netbsd-8
changeset: 850718:43eaa0780890
user:      snj <snj%NetBSD.org@localhost>
date:      Sat Jun 10 06:23:01 2017 +0000

description:
Pull up following revision(s) (requested by nat in ticket #24):
        sys/dev/usb/uaudio.c: revision 1.154
Start as half as many transfers for recording.  This fixes recording and
play back when uaudio is used in full duplex mode.
The transfer scheduling probably is to blame.
Ok skrll@.

diffstat:

 sys/dev/usb/uaudio.c |  14 ++++++++------
 1 files changed, 8 insertions(+), 6 deletions(-)

diffs (42 lines):

diff -r df4f2308b0d7 -r 43eaa0780890 sys/dev/usb/uaudio.c
--- a/sys/dev/usb/uaudio.c      Sat Jun 10 06:21:27 2017 +0000
+++ b/sys/dev/usb/uaudio.c      Sat Jun 10 06:23:01 2017 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: uaudio.c,v 1.153 2017/06/01 02:45:12 chs Exp $ */
+/*     $NetBSD: uaudio.c,v 1.153.2.1 2017/06/10 06:23:01 snj Exp $     */
 
 /*
  * Copyright (c) 1999, 2012 The NetBSD Foundation, Inc.
@@ -37,7 +37,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uaudio.c,v 1.153 2017/06/01 02:45:12 chs Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uaudio.c,v 1.153.2.1 2017/06/10 06:23:01 snj Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_usb.h"
@@ -2610,8 +2610,11 @@
        ch->intr = intr;
        ch->arg = arg;
 
-        /* XXX -1 shouldn't be needed */
-       for (i = 0; i < UAUDIO_NCHANBUFS - 1; i++) {
+       /*
+        * Start as half as many channels for recording as for playback.
+        * This stops playback from stuttering in full-duplex operation.
+        */
+       for (i = 0; i < UAUDIO_NCHANBUFS / 2; i++) {
                uaudio_chan_rtransfer(ch);
        }
 
@@ -2663,8 +2666,7 @@
        ch->intr = intr;
        ch->arg = arg;
 
-       /* XXX -1 shouldn't be needed */
-       for (i = 0; i < UAUDIO_NCHANBUFS - 1; i++)
+       for (i = 0; i < UAUDIO_NCHANBUFS; i++)
                uaudio_chan_ptransfer(ch);
        mutex_enter(&sc->sc_lock);
        mutex_enter(&sc->sc_intr_lock);



Home | Main Index | Thread Index | Old Index