At Tue, 12 Feb 2008 12:02:16 +0100, I wrote: > > At Tue, 12 Feb 2008 11:50:36 +0100, > Matej Laitl wrote: > > > > Takashi Iwai wrote: > > > Matej Laitl wrote: > > > > after upgrading from 2.6.24 to 2.6.25-rc1, I lost headphone-out sound > > > > output of my Intel HDA card - it is quiet no matter what the mixer > > > > settings are. > > > > > > > > (...) > > > > > > > > The box is Fujitsu-Siemens Esprimo Mobile M9400 laptop. > > > > > > Could you give the output of alsa-info.sh for both working and > > > non-working kernels? > > > > The locations of alsa-info.sh outputs: > > no sound in headphones: http://pastebin.ca/901022 > > sound ok: http://pastebin.ca/901016 > > > > Both kernels are Linus' tree snapshots as of commit cc13e442952a347f7, the one > > with working sound has just the f889fa91ad47e commit reverted. > > Thanks. It seems that your device has two headphone jacks according > to the BIOS setup, and this seems to be the problem. > > Could you show the kernel messages like "autoconfig: line_outs..." for > both cases? This appears when build with CONFIG_SND_DEBUG=y. And the patch below may fix your problem. Give it a try. Takashi --- diff -r e84ee72676f0 sound/pci/hda/hda_codec.c --- a/sound/pci/hda/hda_codec.c Tue Feb 12 12:11:36 2008 +0100 +++ b/sound/pci/hda/hda_codec.c Tue Feb 12 12:31:37 2008 +0100 @@ -2821,6 +2821,30 @@ int snd_hda_parse_pin_def_config(struct } } + /* FIX-UP: + * If no line-out is defined but multiple HPs are found, + * some of them might be the real line-outs. + */ + if (!cfg->line_outs && cfg->hp_outs > 1) { + int i = 0; + while (i < cfg->hp_outs) { + /* The real HPs should have the sequence 0x0f */ + if ((sequences_hp[i] & 0x0f) == 0x0f) { + i++; + continue; + } + /* Move it to the line-out table */ + cfg->line_out_pins[cfg->line_outs] = cfg->hp_pins[i]; + sequences_line_out[cfg->line_outs] = sequences_hp[i]; + cfg->line_outs++; + cfg->hp_outs--; + memmove(cfg->hp_pins + i, cfg->hp_pins + i + 1, + sizeof(cfg->hp_pins[0]) * (cfg->hp_outs - i)); + memmove(sequences_hp + i - 1, sequences_hp + i, + sizeof(sequences_hp[0]) * (cfg->hp_outs - i)); + } + } + /* sort by sequence */ sort_pins_by_sequence(cfg->line_out_pins, sequences_line_out, cfg->line_outs); _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel