All of lore.kernel.org
 help / color / mirror / Atom feed
From: Takashi Iwai <tiwai@suse.de>
To: Marcel <shizuma@magma.ca>
Cc: alsa-devel@lists.sourceforge.net
Subject: Re: Re: CMI8738-MC6 surround40 plugin on 4 SP systems]
Date: Tue, 04 Nov 2003 17:27:32 +0100	[thread overview]
Message-ID: <s5hekwot7yj.wl@alsa2.suse.de> (raw)
In-Reply-To: <20031031173918.GA29835@dailyplanet.net>

[-- Attachment #1: Type: text/plain, Size: 1174 bytes --]

At Fri, 31 Oct 2003 12:39:18 -0500,
Marcel wrote:
> 
> * Takashi Iwai (tiwai@suse.de) wrote:
> > At Thu, 30 Oct 2003 12:42:39 -0500,
> > Marcel wrote:
> > > 
> > > 
> > > I've been trying to finetune my cmipci for several weeks now.   And this is
> > > the best way I've been able to get transparent operation with various audio
> > > material: stereo, mono, 4.0, 5.1.  The main problem being no surround sound
> > > iif "Exchange DAC" setting was not set, and sound on the rear speakers only
> > > if it was.
> > 
> > ah, this might be true.
> > does it happen both on 4.0 and 5.1 outputs?
> > i don't remember that it's necessary for 5.1 at the last time i
> > tested.
> 
> With surround40 plugin, 4 speakers, yes it's needed for both 4.0 and 5.1
> material.  Applications such as mplayer or xine will remix 5.1 material to
> 4 channels.  For 6 speakers systems, I really don't know.

could you try surround51 and check whether it somehow works?

> > perhaps we should simply remove this control from user and handle
> > internally for the MC6 chip.
> > 
> 
> I agree.  Its usage is confusing and may results in improper operation

how about the attached patch?


Takashi

[-- Attachment #2: cmipci-4ch-fix.dif --]
[-- Type: application/octet-stream, Size: 2089 bytes --]

Index: alsa-kernel/pci/cmipci.c
===================================================================
RCS file: /suse/tiwai/cvs/alsa/alsa-kernel/pci/cmipci.c,v
retrieving revision 1.57
diff -u -r1.57 cmipci.c
--- alsa-kernel/pci/cmipci.c	28 Oct 2003 11:25:31 -0000	1.57
+++ alsa-kernel/pci/cmipci.c	4 Nov 2003 16:24:39 -0000
@@ -728,9 +728,11 @@
 		if (channels > 4) {
 			snd_cmipci_clear_bit(cm, CM_REG_CHFORMAT, CM_CHB3D);
 			snd_cmipci_set_bit(cm, CM_REG_CHFORMAT, CM_CHB3D5C);
+			snd_cmipci_clear_bit(cm, CM_REG_MISC_CTRL, CM_XCHGDAC);
 		} else {
 			snd_cmipci_clear_bit(cm, CM_REG_CHFORMAT, CM_CHB3D5C);
 			snd_cmipci_set_bit(cm, CM_REG_CHFORMAT, CM_CHB3D);
+			snd_cmipci_set_bit(cm, CM_REG_MISC_CTRL, CM_XCHGDAC);
 		}
 		if (channels == 6) {
 			snd_cmipci_set_bit(cm, CM_REG_LEGACY_CTRL, CM_CHB3D6C);
@@ -749,6 +751,7 @@
 			snd_cmipci_clear_bit(cm, CM_REG_CHFORMAT, CM_CHB3D5C);
 			snd_cmipci_clear_bit(cm, CM_REG_LEGACY_CTRL, CM_CHB3D6C);
 			snd_cmipci_clear_bit(cm, CM_REG_MISC_CTRL, CM_ENCENTER);
+			snd_cmipci_clear_bit(cm, CM_REG_MISC_CTRL, CM_XCHGDAC);
 			spin_unlock_irqrestore(&cm->reg_lock, flags);
 		}
 	}
@@ -2671,11 +2674,14 @@
 
 /* both for CM8338/8738 */
 static snd_kcontrol_new_t snd_cmipci_mixer_switches[] __devinitdata = {
-	DEFINE_MIXER_SWITCH("Exchange DAC", exchange_dac),
 	DEFINE_MIXER_SWITCH("Four Channel Mode", fourch),
 	DEFINE_MIXER_SWITCH("Line-In As Rear", line_rear),
 };
 
+/* for non-multichannel chips */
+static snd_kcontrol_new_t snd_cmipci_nomulti_switch __devinitdata =
+DEFINE_MIXER_SWITCH("Exchange DAC", exchange_dac);
+
 /* only for CM8738 */
 static snd_kcontrol_new_t snd_cmipci_8738_mixer_switches[] __devinitdata = {
 #if 0 /* controlled in pcm device */
@@ -2748,6 +2754,11 @@
 	sw = snd_cmipci_mixer_switches;
 	for (idx = 0; idx < num_controls(snd_cmipci_mixer_switches); idx++, sw++) {
 		err = snd_ctl_add(cm->card, snd_ctl_new1(sw, cm));
+		if (err < 0)
+			return err;
+	}
+	if (! cm->can_multi_ch) {
+		err = snd_ctl_add(cm->card, snd_ctl_new1(&snd_cmipci_nomulti_switch, cm));
 		if (err < 0)
 			return err;
 	}

  reply	other threads:[~2003-11-04 16:27 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20031030174239.GB2771@dailyplanet.net>
2003-10-31 16:46 ` CMI8738-MC6 surround40 plugin on 4 SP systems] Takashi Iwai
2003-10-31 17:39   ` Marcel
2003-11-04 16:27     ` Takashi Iwai [this message]
2003-11-05  0:35       ` Marcel
2003-11-07 19:50         ` Takashi Iwai
     [not found] <E1AIFvE-0005PH-00@sc8-sf-list2.sourceforge.net>
2003-11-08  0:19 ` Marcel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=s5hekwot7yj.wl@alsa2.suse.de \
    --to=tiwai@suse.de \
    --cc=alsa-devel@lists.sourceforge.net \
    --cc=shizuma@magma.ca \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.