[alsa-devel] [PATCH] ac97 mono-out w/internal speaker

george pee georgepee at gmail.com
Mon Aug 4 18:46:28 CEST 2008


I have a wireless tablet (webdt310)
http://dtresearch.com/product/wt310/index.htm

It has cs5536 audio and a realtek alc203 codec.

The headphone jack works perfectly, but the internal speaker was not.

After a bit a twiddling and reading the ALC203 data sheet, I finally figured
out that the function of Pin 37 had to be changed to MONO-OUT to get sound
out of the
internal speaker.

I'm not sure that this is the best approach (maybe there could be some pin
sensing?)
but I added this as an ac97 quirk.  Here's the patch.

diff -rub linux-2.6.26.orig/sound/pci/ac97/ac97_codec.c
linux-2.6.26.new/sound/pci/ac97/ac97_codec.c
--- linux-2.6.26.orig/sound/pci/ac97/ac97_codec.c       2008-07-29
15:30:57.000000000 -0500
+++ linux-2.6.26.new/sound/pci/ac97/ac97_codec.c        2008-08-04
10:58:12.000000000 -0500
@@ -2709,6 +2710,12 @@
        return snd_ctl_add(ac97->bus->card,
snd_ac97_cnew(&snd_ac97_alc_jack_detect, ac97));
 }

+/* ac97 tune: turn on mono-out */
+static int tune_mono_out(struct snd_ac97 *ac97)
+{
+       snd_ac97_update_bits(ac97, 0x7a, 0x400, 0x400);
+       return 1;
+}
+
 /* ac97 tune: inversed EAPD bit */
 static int tune_inv_eapd(struct snd_ac97 *ac97)
 {
@@ -2801,6 +2808,7 @@
        { "inv_eapd", tune_inv_eapd },
        { "mute_led", tune_mute_led },
        { "hp_mute_led", tune_hp_mute_led },
+      { "mono_out", tune_mono_out },
 };


More information about the Alsa-devel mailing list