Skip site navigation (1)Skip section navigation (2)
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>