At Mon, 8 Oct 2007 13:59:41 +0300 (EEST), Veli-Matti Lintu wrote:
Hello,
After error and trial I got sound working on Fujitsu-Siemens Computers Lifebook C1410. Attached is a patch that works for me, but probably needs some cleaning.
The laptop uses an ALC262 chip that is also used on other FSC models, but the needed settings seem to be somewhat different from the existing Fujitsu-settings in patch_realtek.c. If I understand correctly, the chips use same subsystem ids, so the patch does not automatically detect the correct chipset. Maybe someone more knowledgeable can help with this? The patch names the internal mic as Int Mic and external mic that can be plugged in as Ext Mic.
There's some more background information in Ubuntu's Launchpad: https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/125790
The patch is tested with kernel 2.6.22.9. I am not really familiar with alsa development, so I cannot say which version of the alsa drivers that kernel version uses. The environment where the testing was done is running Ubuntu 7.04 with alsa version 1.0.13. Only updated component is the kernel.
The patch needs model=fujitsu-c1410 parameter to be passed to the module:
/etc/modprobe.d/alsa-base: options snd-hda-intel model=fujitsu-c1410
The subsystem 10cf:1397 is mapped in patch_realtek.c alc262_cfg_tbl to ALC262_FUJITSU and ALC262_FUJITSU_C1410 would need to be mapped to same ids:
sound/pci/hda/patch_realtek.c: SND_PCI_QUIRK(0x10cf, 0x1397, "Fujitsu", ALC262_FUJITSU),
lspci -nv (on C1410)
00:1b.0 0403: 8086:27d8 (rev 02) Subsystem: 10cf:1397 Flags: bus master, fast devsel, latency 0, IRQ 22 Memory at f0640000 (64-bit, non-prefetchable) [size=16K] Capabilities: [50] Power Management version 2 Capabilities: [60] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0 Enable- Capabilities: [70] Express Unknown type IRQ 0 Capabilities: [100] Virtual Channel Capabilities: [130] Unknown (5)
I hope someone with more knowledge about alsa drivers could have a look at this. The patch has been in internal use for a few weeks and people seem to be happy with it, so I hope also others can get their sound working.
First, thanks for the patch.
I think we can simply extend the existing fujitsu model. The internal mic is likely a missing feature in that model, too.
So, could you check whether the latest ALSA driver does work for you "as is" (in a certain level)? If not, could you just add alc262_EAPD_verbs to the initialization verbs for ALC262_FUTJISU?
A patch I hacked quickly is below. Try it as a reference, too.
Takashi
diff -r a4cf3aa3dc5b pci/hda/patch_realtek.c --- a/pci/hda/patch_realtek.c Tue Oct 09 10:34:06 2007 +0200 +++ b/pci/hda/patch_realtek.c Tue Oct 09 11:28:26 2007 +0200 @@ -7810,6 +7810,7 @@ static struct hda_input_mux alc262_fujit .num_items = 2, .items = { { "Mic", 0x0 }, + { "Int Mic", 0x1 }, { "CD", 0x4 }, }, }; @@ -7915,6 +7916,9 @@ static struct snd_kcontrol_new alc262_fu HDA_CODEC_VOLUME("Mic Boost", 0x18, 0, HDA_INPUT), HDA_CODEC_VOLUME("Mic Playback Volume", 0x0b, 0x0, HDA_INPUT), HDA_CODEC_MUTE("Mic Playback Switch", 0x0b, 0x0, HDA_INPUT), + HDA_CODEC_VOLUME("Int Mic Boost", 0x19, 0, HDA_INPUT), + HDA_CODEC_VOLUME("Int Mic Playback Volume", 0x0b, 0x1, HDA_INPUT), + HDA_CODEC_MUTE("Int Mic Playback Switch", 0x0b, 0x1, HDA_INPUT), { } /* end */ };
@@ -8411,7 +8415,8 @@ static struct alc_config_preset alc262_p }, [ALC262_FUJITSU] = { .mixers = { alc262_fujitsu_mixer }, - .init_verbs = { alc262_init_verbs, alc262_fujitsu_unsol_verbs }, + .init_verbs = { alc262_init_verbs, alc262_EAPD_verbs, + alc262_fujitsu_unsol_verbs }, .num_dacs = ARRAY_SIZE(alc262_dac_nids), .dac_nids = alc262_dac_nids, .hp_nid = 0x03,