[alsa-devel] [PATCH] Added Realtek ALC888 model entry for the Acer Aspire 4930G laptop

Takashi Iwai tiwai at suse.de
Tue Nov 18 12:41:16 CET 2008


At Tue, 18 Nov 2008 19:21:45 +0800,
Petry Vincent wrote:
> 
> Hello,
> 
> I would like to contribute a patch that adds a model entry for the Acer
> Aspire 4930G laptop. Its chipset is a Realtek ALC888S-VC.
> The new model is based on the "acer" model and fixes the following bugs
> missing features:
> - https://bugtrack.alsa-project.org/alsa-bug/view.php?id=4223 Reversed
> stereo (invalid report, please close it)
> - https://bugtrack.alsa-project.org/alsa-bug/view.php?id=4224 Headphone
> jack sense
> - https://bugtrack.alsa-project.org/alsa-bug/view.php?id=4225 Internal mic
> - channel mode (it was missing from the base acer model)
> 
> The model name is "acer-aspire-4930g" but could be renamed to something
> more general, if necessary.
> 
> See attached patch file. It has been made against alsa-driver-1.0.18a.

Thanks for the patch.

You need a patch only for the kernel tree, i.e. at best, create a diff
against my sound git tree:
    git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6.git

Or you can get a snapshot of alsa-driver in
    ftp://ftp.kernel.org/pub/linux/kernel/people/tiwai/snapshot/alsa-driver-snapshot.tar.gz
and create a patch against alsa-kernel directory only.

Regarding your changes: please run checkpatch.pl in $LINUX/scripts once.
You'll see some coding-style issues there.  Please fix them.

Also, you don't need to change the mux_enum_put function.  I applied
the patch below right now to my git tree.


thanks,

Takashi


From cd896c331dd442c43cd9e23de3f1a4f3c111c292 Mon Sep 17 00:00:00 2001
From: Takashi Iwai <tiwai at suse.de>
Date: Tue, 18 Nov 2008 12:36:33 +0100
Subject: [PATCH] ALSA: hda - Allow multiple imux for matrix-type mixers of ALC codecs

Allow the multiple imux instances for matrix-type mixers like ALC882.
So far, only ALC260 used this feature, but other codecs may need a
similar stuff.

Signed-off-by: Takashi Iwai <tiwai at suse.de>
---
 sound/pci/hda/patch_realtek.c |   11 ++++++-----
 1 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index 04e153a..b7d3439 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -382,11 +382,15 @@ static int alc_mux_enum_put(struct snd_kcontrol *kcontrol,
 {
 	struct hda_codec *codec = snd_kcontrol_chip(kcontrol);
 	struct alc_spec *spec = codec->spec;
-	const struct hda_input_mux *imux = spec->input_mux;
+	const struct hda_input_mux *imux;
 	unsigned int adc_idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id);
+	unsigned int mux_idx;
 	hda_nid_t nid = spec->capsrc_nids ?
 		spec->capsrc_nids[adc_idx] : spec->adc_nids[adc_idx];
 
+	mux_idx = adc_idx >= spec->num_mux_defs ? 0 : adc_idx;
+	imux = &spec->input_mux[mux_idx];
+
 	if (spec->is_mix_capture) {
 		/* Matrix-mixer style (e.g. ALC882) */
 		unsigned int *cur_val = &spec->cur_mux[adc_idx];
@@ -407,10 +411,7 @@ static int alc_mux_enum_put(struct snd_kcontrol *kcontrol,
 		return 1;
 	} else {
 		/* MUX style (e.g. ALC880) */
-		unsigned int mux_idx;
-		mux_idx = adc_idx >= spec->num_mux_defs ? 0 : adc_idx;
-		return snd_hda_input_mux_put(codec, &spec->input_mux[mux_idx],
-					     ucontrol, nid,
+		return snd_hda_input_mux_put(codec, imux, ucontrol, nid,
 					     &spec->cur_mux[adc_idx]);
 	}
 }
-- 
1.6.0.4



More information about the Alsa-devel mailing list