From owner-freebsd-multimedia Mon Jul 14 14:55:24 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.5/8.8.5) id OAA16662 for multimedia-outgoing; Mon, 14 Jul 1997 14:55:24 -0700 (PDT) Received: from whqvax.picker.com (whqvax.picker.com [144.54.1.1]) by hub.freebsd.org (8.8.5/8.8.5) with SMTP id OAA16654 for ; Mon, 14 Jul 1997 14:55:16 -0700 (PDT) Received: from ct.picker.com by whqvax.picker.com with SMTP; Mon, 14 Jul 1997 17:53:36 -0400 (EDT) Received: from elmer.ct.picker.com ([144.54.57.34]) by ct.picker.com (4.1/SMI-4.1) id AA06356; Mon, 14 Jul 97 17:53:34 EDT Received: by elmer.ct.picker.com (SMI-8.6/SMI-SVR4) id RAA10380; Mon, 14 Jul 1997 17:51:34 -0400 Message-Id: <19970714175133.20728@ct.picker.com> Date: Mon, 14 Jul 1997 17:51:33 -0400 From: Randall Hopper To: Luigi Rizzo Cc: Amancio Hasty , multimedia@freebsd.org Subject: Re: guspnp9: Recording 16-bit yields Interrupted sys call on read() References: <19970713201730.37369@ct.picker.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 0.76 In-Reply-To: <19970713201730.37369@ct.picker.com>; from Randall Hopper on Sun, Jul 13, 1997 at 08:17:30PM -0400 Sender: owner-multimedia@freebsd.org X-Loop: FreeBSD.org Precedence: bulk Randall Hopper: | Back on guspnp7, I'd mentioned this as one of the 4 main things I had |some trouble with, but didn't know it was tied to 16-bit. Figured that out |working with test cases for guspnp9 this evening. Luigi Rizzo: |If someone has problems recording with the sb (perhaps in 16-bit |mode) note that in snd970711 there was a typo in sb_dsp.c. In |sb_dsp_start_input(), around line 404, you should apply the following |fix | | if (sb_dsp_command(DSP_CMD_HSSIZE)) { /* High speed size */ | sb_dsp_command((u_char) (dsp_count & 0xff)); | sb_dsp_command((u_char) ((dsp_count >> 8) & 0xff)); |- sb_dsp_command(DSP_CMD_HSDAC); /* High speed 8 bit ADC */ |+ sb_dsp_command(DSP_CMD_HSADC); /* High speed 8 bit ADC */ | } else | printf("SB Error: Unable to start (high speed) ADC\n"); | splx(flags); | } else { Just tried this Luigi and on a 16-bit record, the first read() still terminates with interrupted system call, for all sample rates and number of channels. E.g.: > record -r 44100 -b 16 -c 2 read() failed; errno = Interrupted system call > record -r 44100 -b 16 -c 1 read() failed; errno = Interrupted system call > record -r 11025 -b 16 -c 2 read() failed; errno = Interrupted system call > record -r 11025 -b 16 -c 1 read() failed; errno = Interrupted system call Randall