Alblog

Albert Blaho blog. How simple.

2006-09-29

Patch for Dapper on Acer

Here is a patch for Ubuntu 6.06 kernel (2.6.15 with Ubuntu patches) that makes my soundcard work on my laptop. I own Acer TravelMate 4222 WLMi which have Intel HDA soundcard with Realtek 883 chip. ALSA driver for this card had a bug which was fixed this month in ALSA 1.0.13rc2.

I was not able to compile these new ALSA drivers for my distribution kernel (though for vanillas worked fine) and I need Ubuntu kernel because of its patches (like driver for my wifi). So i cooked up my own patch that applies to 2.6.15 ubuntu kernel (with alsa 1.0.10rc3).

Apply this patch to sound/pci/hda/patch_realtek.c of your kernel source.


113a114
> ALC883_ACER,
2107a2109,2110
> { .pci_subvendor = 0x8086, .pci_subdevice = 0xe212, .config = ALC880_3ST },
> { .pci_subvendor = 0x8086, .pci_subdevice = 0xe213, .config = ALC880_3ST },
2108a2112
> { .pci_subvendor = 0x8086, .pci_subdevice = 0xe234, .config = ALC880_3ST },
2206d2209
< { .pci_subvendor = 0x1043, .pci_subdevice = 0x1323, .config = ALC880_ASUS_DIG }, /* Asus A7TC */
2227a2231
> { .pci_subvendor = 0x1854, .pci_subdevice = 0x0068, .config = ALC880_LG },
2230a2235
> { .pci_subvendor = 0x1854, .pci_subdevice = 0x0077, .config = ALC880_LG_LW },
5022a5028,5029
> { .pci_subvendor = 0x8086, .pci_subdevice = 0xd601,
> .config = ALC883_3ST_6ch }, /* D102GGC */
5028a5036,5038
> { .modelname = "acer", .config = ALC883_ACER },
> { .pci_subvendor = 0x1025, .pci_subdevice = 0/*0x0102*/,
> .config = ALC883_ACER },
5098a5109,5125
> [ALC883_ACER] = {
> .mixers = { alc883_base_mixer,
> alc883_chmode_mixer },
> /* On TravelMate laptops, GPIO 0 enables the internal speaker
> * and the headphone jack. Turn this on and rely on the
> * standard mute methods whenever the user wants to turn
> * these outputs off.
> */
> .init_verbs = { alc883_init_verbs, alc880_gpio1_init_verbs },
> .num_dacs = ARRAY_SIZE(alc883_dac_nids),
> .dac_nids = alc883_dac_nids,
> .num_adc_nids = ARRAY_SIZE(alc883_adc_nids),
> .adc_nids = alc883_adc_nids,
> .num_channel_mode = ARRAY_SIZE(alc883_3ST_2ch_modes),
> .channel_mode = alc883_3ST_2ch_modes,
> .input_mux = &alc883_capture_source,
> },
5504a5532
> /* .tlv = { .c = snd_hda_mixer_amp_tlv },*/