[alsa-devel] snd-hda-intel: Fix volume-wheel and microphone on Fujitsu-Siemens Amilo M3438G
Takashi Iwai
tiwai at suse.de
Fri Feb 8 12:54:22 CET 2008
At Thu, 7 Feb 2008 00:02:21 +0100,
M G wrote:
>
> On Feb 6, 2008 5:36 PM, Takashi Iwai <tiwai at suse.de> wrote:
> > At Wed, 6 Feb 2008 17:14:37 +0100,
> >
> > M G wrote:
> > >
> > > Currently the default model that gets selected on this hardware is "F1734".
> > > Using this model neither the volume-wheel nor microphone (internal or
> > > external) work.
> >
> > Thanks for your patch.
> >
> >
> > > The first part of my patch changes the default model to "fujitsu", this
> > > enables the volume wheel on the left side of the laptop.
> >
> > The concern is whether you lose any functionality by this rename.
> > The support of the volume knob control with the existing F1734 model
> > would be easy. You'd need to add a proper verb to enable the
> > unsolicited event and register the handler, such as, uniwill_p53 one.
> >
> >
> > > The second part changes the capture settings and thus makes it possible to
> > > record from microphones. Now when capturing from the external microphone I
> > > can hear myself talking but its quite quiet. I can improve this a little by
> > > raising the capture volume, but if I raise it above 40 I can no longer
> > > record anything.
> >
> > Using 6stack_capture_source looks wrong to me. It is actually for
> > desktops. But yours isn't, I guess.
> >
> > The recording quality might be improved by setting the proper pin VREF
> > level.
> >
> > Anyway, it'd be more helpful if you can show the detailed information,
> > e.g. the output of alsa-info.sh script.
> >
> >
> > Takashi
>
>
> No, it's a Laptop. The standard capture source has front mic at 0x3
> while the 6stack capture source has front mic at 0x1; this is the only
> difference but this seems to be what makes it work, I don't know why.
> (Btw: It is always front mic, no matter what microphone I use. As soon
> as I plug the external mic the internal one gets muted and the
> external one takes over it's channel)
OK, then I think it's better to change the existing F1734 stuff rather
than moving to model fujitsu. Model fujitsu is, apparently, for the
distinct int/ext mics while yours has only one mic input regardless of
connection.
Was the headphone muted automatically even without your patch?
> About the technical stuff: I don't know what an unsolicited event or a
> VREF is, I'm not a programmer. I just fiddled around with stuff until
> it was working but don't understand it :)
>
> I have uploaded the output of alsa-info.sh twice. First with normal
> alsa und then with my patch (don't know is this is important)
> http://pastebin.com/f22f73445
> http://pastebin.com/f4a7b49d7
Thanks. Could you try the patch below?
Takashi
diff -r f7393208ebd3 pci/hda/patch_realtek.c
--- a/pci/hda/patch_realtek.c Fri Feb 08 12:45:40 2008 +0100
+++ b/pci/hda/patch_realtek.c Fri Feb 08 12:54:24 2008 +0100
@@ -1325,6 +1325,14 @@ static struct snd_kcontrol_new alc880_f1
{ } /* end */
};
+static struct hda_input_mux alc880_f1734_capture_source = {
+ .num_items = 2,
+ .items = {
+ { "Mic", 0x1 },
+ { "CD", 0x4 },
+ },
+};
+
/*
* ALC880 ASUS model
@@ -1935,6 +1943,9 @@ static struct hda_verb alc880_pin_f1734_
{0x1b, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT},
{0x1b, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE},
{0x1c, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN},
+
+ {0x14, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN|ALC880_HP_EVENT},
+ {0x21, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN|ALC880_DCVOL_EVENT},
{ }
};
@@ -3059,7 +3070,9 @@ static struct alc_config_preset alc880_p
.hp_nid = 0x02,
.num_channel_mode = ARRAY_SIZE(alc880_2_jack_modes),
.channel_mode = alc880_2_jack_modes,
- .input_mux = &alc880_capture_source,
+ .input_mux = &alc880_f1734_capture_source,
+ .unsol_event = alc880_uniwill_p53_unsol_event,
+ .init_hook = alc880_uniwill_p53_hp_automute,
},
[ALC880_ASUS] = {
.mixers = { alc880_asus_mixer },
More information about the Alsa-devel
mailing list