From owner-cvs-all@FreeBSD.ORG Wed Dec 28 17:57:47 2005 Return-Path: X-Original-To: cvs-all@FreeBSD.org Delivered-To: cvs-all@FreeBSD.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 5BC5816A41F; Wed, 28 Dec 2005 17:57:47 +0000 (GMT) (envelope-from netchild@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8BECE43D8E; Wed, 28 Dec 2005 17:57:37 +0000 (GMT) (envelope-from netchild@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id jBSHvbGW059652; Wed, 28 Dec 2005 17:57:37 GMT (envelope-from netchild@repoman.freebsd.org) Received: (from netchild@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id jBSHvbL3059651; Wed, 28 Dec 2005 17:57:37 GMT (envelope-from netchild) Message-Id: <200512281757.jBSHvbL3059651@repoman.freebsd.org> From: Alexander Leidinger Date: Wed, 28 Dec 2005 17:57:37 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Cc: Subject: cvs commit: src/sys/dev/sound/pci emu10k1.c X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 Dec 2005 17:57:47 -0000 netchild 2005-12-28 17:57:37 UTC FreeBSD src repository Modified files: sys/dev/sound/pci emu10k1.c Log: Fix the order of the stereo channels (left <-> right). From the PR: ---snip--- I think I have found the change which reversed the channels. Revision 1.44 of emu10k1.c, which added Audigy support, has the line emu_wrptr(sc, v->vnum, FXRT, 0xd01c0000); replaced with the following lines: if (sc->audigy) { emu_wrptr(sc, v->vnum, A_FXRT1, v->fxrt1); emu_wrptr(sc, v->vnum, A_FXRT2, v->fxrt2); emu_wrptr(sc, v->vnum, A_SENDAMOUNTS, 0); } else emu_wrptr(sc, v->vnum, FXRT, v->fxrt1 << 16); where v->fxrt1 << 16 == 0xd10c0000 I don't have Audigy, so I'm not sure if the problem affects Audigy cards too. The order of the channels can't be tested by just altering mixer settings. Here's a small program to test if the channels are reversed on your sound card: #include #include #include int main(int argc, char **argv) { int fd = open("/dev/dsp", O_WRONLY), format = AFMT_S16_LE; int channels = 2, rate = 22050, i; /* 450 Hz sine wave on left channel, right channel silent */ unsigned char samples[] = {0, 0, 0, 0, 94, 16, 0, 0, 120, 32, 0, 0, 9, 48, 0, 0, 208, 62, 0, 0, 143, 76, 0, 0, 12, 89, 0, 0, 19, 100, 0, 0, 117, 109, 0, 0, 11, 117, 0, 0, 182, 122, 0, 0, 92, 126, 0, 0, 239, 127, 0, 0, 105, 127, 0, 0, 202, 124, 0, 0, 32, 120, 0, 0, 124, 113, 0, 0, 251, 104, 0, 0, 193, 94, 0, 0, 249, 82, 0, 0, 212, 69, 0, 0, 138, 55, 0, 0, 85, 40, 0, 0, 120, 24, 0, 0, 51, 8, 0, 0, 205, 247, 0, 0, 136, 231, 0, 0, 171, 215, 0, 0, 118, 200, 0, 0, 44, 186, 0, 0, 7, 173, 0, 0, 63, 161, 0, 0, 5, 151, 0, 0, 132, 142, 0, 0, 224, 135, 0, 0, 54, 131, 0, 0, 151, 128, 0, 0, 17, 128, 0, 0, 164, 129, 0, 0, 74, 133, 0, 0, 245, 138, 0, 0, 139, 146, 0, 0, 237, 155, 0, 0, 244, 166, 0, 0, 113, 179, 0, 0, 48, 193, 0, 0, 247, 207, 0, 0, 136, 223, 0, 0, 162, 239, 0, 0}; ioctl(fd, SNDCTL_DSP_SETFMT,&format); ioctl(fd, SNDCTL_DSP_CHANNELS,&channels); ioctl(fd, SNDCTL_DSP_SPEED,&rate); for(i=0;i<500;i++) write(fd, &samples, sizeof(samples)); write(fd, &samples, 2); /* swap channels */ for(i=0;i<500;i++) write(fd, &samples, sizeof(samples)); return 0; } You should hear a sound on the left channel followed by a sound on the right channel. If you hear a sound on the right channel first, the channels are reversed. ---snip--- Owners of an audigy card should verify if it DTRT and report back. Noticed by: Matthias Buelow Submitted by: Juha-Matti Tilli PR: 72221 Revision Changes Path 1.56 +4 -4 src/sys/dev/sound/pci/emu10k1.c