Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 12 Nov 1998 01:03:53 +0900 (JST)
From:      sanpei@sanpei.org (MIHIRA Yoshiro)
To:        dmm125@bellatlantic.net
Cc:        deischen@iworks.interworks.org, freebsd-questions@FreeBSD.ORG, hardware@FreeBSD.ORG
Subject:   Re: ESS 1868
Message-ID:  <199811111603.BAA09545@lavender.yy.cs.keio.ac.jp>
In-Reply-To: Your message of "Thu, 22 Oct 1998 06:55:40 JST". <362E585B.8314E1F7@bellatlantic.net>

next in thread | previous in thread | raw e-mail | index | archive | help
dmm125@bellatlantic.net wrote

>> Daniel M. Eischen wrote:
>> 
>> > > Anybody tried the pcm driver with the ESS 1868 sound card?  The sound
>> > > only comes out of the left channel.  Both speakers are working, but with
>> > > the Luigi sound code, sound only comes out of the left speaker.  With
>> > > the voxware driver, both speakers work.  Maybe a problem with full/half
>> > > duplex?
>> >
>> > The voxware driver works fine for the ESS1868 in my laptop, but with
>> > the PCM driver, I get a horrendous feedback sound and it doesn't
>> > work well at all.  I haven't had a chance to pick through the
>> > code and see what the differences are between PCM and Voxware
>> > ESS1868 support.
>> >
>> > DE
>> 
>> I just tried it, and I get lots of distortion with real-video files (they
>> STILL don't have RealPlayer 5.0 for FreeBSD yet).  But simple stuff plays
>> well, like
>> 
>> cat sound.au > /dev/audio ## comes out left channel only.

  I find out problem. It is quick hack patch for FreeBSD-2.2.7-RELEASE
and ESS chipset(or other chips??).

  This function is from VoxWare code (sb_mixer.c). But it was changed....
  I think that code is need to calcurate correctly.

  I will contact Luigi and solve this problem.

----
Yoshiro MIHIRA

--- sound.c.org	Thu Oct 22 09:59:31 1998
+++ sound.c	Thu Nov 12 00:56:26 1998
@@ -1351,7 +1351,12 @@
 
     mask = (1 << (*t)[dev][chn].nbits) - 1;
     newval = (int) ((newval * mask) + 50) / 100; /* Scale it */
+#define ESS_VOLUME_HACK
+#ifdef ESS_VOLUME_HACK
+    shift = (*t)[dev][chn].bitoffs - (*t)[dev][LEFT_CHN].nbits + 1;
+#else
     shift = (*t)[dev][chn].bitoffs /*- (*t)[dev][LEFT_CHN].nbits + 1*/;
+#endif
 
     *regval &= ~(mask << shift);        /* Filter out the previous value */
     *regval |= (newval & mask) << shift;        /* Set the new value */

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199811111603.BAA09545>