Date: Sat, 05 Dec 2009 01:00:54 +0100 From: Carl Johan Gustavsson <carl.gustavsson@bahnhofbredband.se> To: Yamagi Burmeister <lists@yamagi.org> Cc: freebsd-multimedia@freebsd.org Subject: Re: snd_envy24ht regression in 8.0 (patch included) Message-ID: <4B19A2B6.80803@bahnhofbredband.se> In-Reply-To: <alpine.BSF.2.00.0912021039220.83604@screw.home.yamagi.org> References: <alpine.BSF.2.00.0912021039220.83604@screw.home.yamagi.org>
next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format. --------------010502020407020700020408 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Yamagi Burmeister wrote: > Hello, > I've got a Audiotrak Prodigy HD2 soundcard, based upon the VIA > Envy24HT-s chipset. Dmesg output is: > > pcm1: <Envy24HT audio (AudioTrak Prodigy HD2)> port > 0x3080-0x309f,0x3000-0x307f irq 28 at device 4.0 on pci18 > pcm1: [GIANT-LOCKED] > pcm1: [ITHREAD] > pcm1: system configuration > SubVendorID: 0x3137, SubDeviceID: 0x4154 > XIN2 Clock Source: 49.152MHz(192kHz*256) > MPU-401 UART(s) #: 1 > ADC #: 1 and SPDIF receiver connected > DAC #: 1 > Multi-track converter type: I2S(192KHz support, 24bit resolution, > ID#0x0) > S/PDIF(IN/OUT): 1/1 ID# 0x00 > GPIO(mask/dir/state): 0xfff8ff/0xdfffff/0x200700 > > /dev/sndstat shows: > > root@screw:pts/8 ~> cat /dev/sndstat > FreeBSD Audio Driver (newpcm: 64bit 2009061500/amd64) > Installed devices: > pcm0: <nVidia nForce4> at io 0x1800, 0x1400 irq 22 bufsz 16384 kld > snd_ich [MPSAFE] (1p:1v/1r:1v channels duplex) > pcm1: <Envy24HT audio (AudioTrak Prodigy HD2)> at io > 0x3080:32,0x3000:128 irq 28 [GIANT] (1p:1v/5r:1v channels duplex > default) > > In FreeBSD 7.2 it worked just like a charm but after upgrading to 8.0 > the left stereo channel is only half as loud as the right one. It can be > reproduced with either speakers and headphones. I tracked it down to a > change in revision 188480 of spicds.c, the change "fix: stupid bug with > volume control for AK4396" breaks volume control for me. The attached > patch fixes the problem by reverting the specific change but I guess > it'll break some other cards again. > > An other possible work around is to double the volume of the left > channel via the mixer. > > Ciao, > Yamagi > Hi, That patch was partly correct but it did only fix the problem on the right channel, the left one exhibits a similar error. Logical operators in case labels does not work well in C, or at least not as the original writer expected :) Please revert your changes and try the attached patch. -cjg --------------010502020407020700020408 Content-Type: text/plain; name="spicds.diff" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="spicds.diff" Index: spicds.c =================================================================== --- spicds.c (revision 200112) +++ spicds.c (working copy) @@ -283,7 +283,8 @@ case SPICDS_TYPE_WM8770: left = left + 27; break; - case SPICDS_TYPE_AK4381 || SPICDS_TYPE_AK4396: + case SPICDS_TYPE_AK4381: + case SPICDS_TYPE_AK4396: left = left * 255 / 100; break; default: --------------010502020407020700020408--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4B19A2B6.80803>