Could someone with MSS compatible non-Yamaha card (AD1848, Opti 931, Gus
PnP, ...) and using newpcm please check out the patch in PR kern/14634 and
report to me if the mixer synth and CD are correct after the patch?

If not, could you please try the below patch and see if this is a no-op on
your system. 

As the PR suggests, mixer for synth and CD are swapped on Yamaha OPL SAx
cards when running newpcm. I'd like to find out if this is the case only
on the Yamaha (in this case the below patch should be applied) or if this
is the case on all cards (in this case the patch from PR kern/14634 should
be applied).

Regards.

*** sys/dev/pcm/isa/mss.c.orig  Tue Oct 12 23:35:45 1999
--- sys/dev/pcm/isa/mss.c       Sat Nov  6 14:52:25 1999
***************
*** 1097,1104 ****
  mss_mixer_set(struct mss_info *mss, int dev, int left, int right)
  {
        int        regoffs;
!       mixer_tab *mix_d = (mss->bd_id == MD_OPTI931)? &opti931_devices : &mix_devices;
        u_char     old, val;
  
        if ((*mix_d)[dev][LEFT_CHN].nbits == 0) {
                DEB(printf("nbits = 0 for dev %d\n", dev));
--- 1097,1117 ----
  mss_mixer_set(struct mss_info *mss, int dev, int left, int right)
  {
        int        regoffs;
!       mixer_tab *mix_d;
        u_char     old, val;
+ 
+       switch (mss->bd_id) {
+       case MD_OPTI931:
+               mix_d = &opti931_devices;
+               break;
+ 
+       case MD_YM0020:
+               mix_d = &opl3sax_devices;
+               break;
+ 
+       default:
+               mix_d = &mix_devices;
+       }
  
        if ((*mix_d)[dev][LEFT_CHN].nbits == 0) {
                DEB(printf("nbits = 0 for dev %d\n", dev));
*** sys/dev/pcm/isa/mss.h.orig  Tue Sep 28 22:00:05 1999
--- sys/dev/pcm/isa/mss.h       Sat Nov  6 14:53:11 1999
***************
*** 227,232 ****
--- 227,256 ----
       SOUND_MASK_LINE   | SOUND_MASK_MIC   | SOUND_MASK_CD  | \
       SOUND_MASK_IGAIN  | SOUND_MASK_LINE1                    )
  
+ /*
+  * entries for the Yamaha OPL3-SA[23x].
+  */
+ 
+ mixer_ent opl3sax_devices[32][2] = {
+ MIX_NONE(SOUND_MIXER_VOLUME),
+ MIX_NONE(SOUND_MIXER_BASS),
+ MIX_NONE(SOUND_MIXER_TREBLE),
+ MIX_ENT(SOUND_MIXER_SYNTH,     4, 1, 0, 5,     5, 1, 0, 5),
+ MIX_ENT(SOUND_MIXER_PCM,       6, 1, 0, 6,     7, 1, 0, 6),
+ MIX_ENT(SOUND_MIXER_SPEAKER,  26, 1, 0, 4,     0, 0, 0, 0),
+ MIX_ENT(SOUND_MIXER_LINE,     18, 1, 0, 5,    19, 1, 0, 5),
+ MIX_ENT(SOUND_MIXER_MIC,       0, 0, 5, 1,     1, 0, 5, 1),
+ MIX_ENT(SOUND_MIXER_CD,                2, 1, 0, 5,     3, 1, 0, 5),
+ MIX_ENT(SOUND_MIXER_IMIX,     13, 1, 2, 6,     0, 0, 0, 0),
+ MIX_NONE(SOUND_MIXER_ALTPCM),
+ MIX_NONE(SOUND_MIXER_RECLEV),
+ MIX_ENT(SOUND_MIXER_IGAIN,     0, 0, 0, 4,     1, 0, 0, 4),
+ MIX_NONE(SOUND_MIXER_OGAIN),
+ MIX_NONE(SOUND_MIXER_LINE1),
+ MIX_NONE(SOUND_MIXER_LINE2),
+ MIX_NONE(SOUND_MIXER_LINE3),
+ };
+ 
  /*-
   * Copyright (c) 1999 Doug Rabson
   * All rights reserved.

Blaz Zupan, [EMAIL PROTECTED], http://home.amis.net/blaz/
Medinet d.o.o., Linhartova 21, 2000 Maribor, Slovenia




To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to