From owner-freebsd-bugs Wed Feb 23 11:20: 7 2000 Delivered-To: freebsd-bugs@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.ORG [204.216.27.21]) by hub.freebsd.org (Postfix) with ESMTP id 6C61837B79D for ; Wed, 23 Feb 2000 11:20:05 -0800 (PST) (envelope-from gnats@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.9.3/8.9.2) id LAA06055; Wed, 23 Feb 2000 11:20:05 -0800 (PST) (envelope-from gnats@FreeBSD.org) Date: Wed, 23 Feb 2000 11:20:05 -0800 (PST) Message-Id: <200002231920.LAA06055@freefall.freebsd.org> To: freebsd-bugs@FreeBSD.org Cc: From: Matthew Reimer Subject: Re: kern/16587: Can't record with newpcm & CS4236 (AW35/Pro) Reply-To: Matthew Reimer Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org The following reply was made to PR kern/16587; it has been noted by GNATS. From: Matthew Reimer To: freebsd-gnats-submit@FreeBSD.org, mreimer@vpop.net Cc: Subject: Re: kern/16587: Can't record with newpcm & CS4236 (AW35/Pro) Date: Wed, 23 Feb 2000 11:13:22 -0800 Partial fix: the following patch correctly configures the card for dual channel DMA. The problem was that the SDC bit (0x04) can only be set in the MCE state. So now recording doesn't hang, and data is returned, but the recorded sound doesn't sound right when played back. Anybody? --- mss.c.orig Wed Feb 23 11:04:23 2000 +++ mss.c Fri Jan 28 16:18:28 2000 @@ -92,8 +92,6 @@ static int ad_read(struct mss_info *mss, int reg); static void ad_write(struct mss_info *mss, int reg, u_char data); static void ad_write_cnt(struct mss_info *mss, int reg, u_short data -static void ad_enter_MCE(struct mss_info *mss); -static void ad_leave_MCE(struct mss_info *mss); /* io primitives */ static void conf_wr(struct mss_info *mss, u_char reg, u_char data); @@ -467,9 +465,7 @@ } if (FULL_DUPLEX(mss) && mss->bd_id != MD_OPTI931) ad_write(mss, 12, ad_read(mss, 12) | 0x40); /* mode 2 */ - ad_enter_MCE(mss); ad_write(mss, 9, FULL_DUPLEX(mss)? 0 : 4); - ad_leave_MCE(mss); ad_write(mss, 10, 2); /* int enable */ io_wr(mss, MSS_STATUS, 0); /* Clear interrupt status */ /* the following seem required on the CS4232 */ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message