[alsa-devel] Patch for Intel-HDA ALC262 on FSC Lifebook C1410

Takashi Iwai tiwai at suse.de
Tue Oct 9 11:30:57 CEST 2007


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,


More information about the Alsa-devel mailing list