At Thu, 7 Feb 2008 00:02:21 +0100, M G wrote:
On Feb 6, 2008 5:36 PM, Takashi Iwai tiwai@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 },