snd_envy24ht regression in 8.0 (patch included)

Yamagi Burmeister lists at yamagi.org
Wed Dec 2 10:05:55 UTC 2009


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 at 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

-- 
Homepage:     www.yamagi.org
Jabber:       yamagi at yamagi.org
GnuPG/GPG:    0xEFBCCBCB
-------------- next part --------------
--- spicds.c_alt	2009-12-02 09:59:38.000000000 +0100
+++ spicds.c	2009-12-02 10:06:40.000000000 +0100
@@ -300,8 +300,7 @@
 		case SPICDS_TYPE_WM8770:
                         right = right + 27;
 			break;
-		case SPICDS_TYPE_AK4381: 
-		case SPICDS_TYPE_AK4396:
+		case SPICDS_TYPE_AK4381 || SPICDS_TYPE_AK4396:
 			right = right * 255 / 100;
 			break;
                 default:   


More information about the freebsd-multimedia mailing list