At Wed, 27 Jul 2011 16:09:50 +0200, Colomban Wendling wrote: > > Le 27/07/2011 15:07, Takashi Iwai a écrit : > > At Wed, 27 Jul 2011 14:53:55 +0200, > > Colomban Wendling wrote: > >> > >> Le 27/07/2011 13:20, Takashi Iwai a écrit : > >>> At Wed, 27 Jul 2011 13:14:41 +0200, > >>> Colomban Wendling wrote: > >>>> > >>>>> Also, you can replace the files in sound/pci/hda/* from 2.6.39 kernel > >>>>> tree. If this fixes the problem, it's a sound driver bug. If not, > >>>>> it's anything else, e.g. the problem in more core side, e.g. IOMMU > >>>>> like above or the timer change, etc. > >>>> > >>>> Hey, that was a great idea! I reverse-patched sound/pci/hda of 3.0 with > >>>> 2.6.39.3, and it fixes the problem! :) > >>> > >>> OK, then try to replace only sound/pci/hda/hda_intel.c and keep the > >>> rest. What happens? > >> > >> Doesn't work, that sound is choppy again. > > > > OK, then keep hda_intel.c as 3.0 and replace the rest. > > If this works, please give alsa-info.sh output (run with --no-upload > > option). > > It works! Attached is the alsa-info.sh output on this working version: > 3.0 with 2.6.39.3 sound/pci/hda, but with 3.0's sound/pci/hda/hda_intel.c
Thanks. Could you try the patch below against 3.0 tree? Takashi --- From: Takashi Iwai <ti...@suse.de> Subject: [PATCH] ALSA: hda - Fix duplicated DAC assignments for Realtek Copying hp_pins and speaker_pins from line_out_pins may confuse the parser, and it can lead to duplicated initializations for the same pin with a wrong DAC assignment. The problem appears in 3.0 kernel code. Signed-off-by: Takashi Iwai <ti...@suse.de> --- sound/pci/hda/patch_realtek.c | 7 +++++-- 1 files changed, 5 insertions(+), 2 deletions(-) diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 0383dd8..e125c60 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -895,13 +895,15 @@ static void alc_init_auto_hp(struct hda_codec *codec) if (present == 3) spec->automute_hp_lo = 1; /* both HP and LO automute */ - if (!cfg->speaker_pins[0]) { + if (!cfg->speaker_pins[0] && + cfg->line_out_type == AUTO_PIN_SPEAKER_OUT) { memcpy(cfg->speaker_pins, cfg->line_out_pins, sizeof(cfg->speaker_pins)); cfg->speaker_outs = cfg->line_outs; } - if (!cfg->hp_pins[0]) { + if (!cfg->hp_pins[0] && + cfg->line_out_type == AUTO_PIN_HP_OUT) { memcpy(cfg->hp_pins, cfg->line_out_pins, sizeof(cfg->hp_pins)); cfg->hp_outs = cfg->line_outs; @@ -920,6 +922,7 @@ static void alc_init_auto_hp(struct hda_codec *codec) spec->automute_mode = ALC_AUTOMUTE_PIN; } if (spec->automute && cfg->line_out_pins[0] && + cfg->speaker_pins[0] && cfg->line_out_pins[0] != cfg->hp_pins[0] && cfg->line_out_pins[0] != cfg->speaker_pins[0]) { for (i = 0; i < cfg->line_outs; i++) { -- 1.7.6 -- To UNSUBSCRIBE, email to debian-kernel-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/s5hzkjzaic3.wl%ti...@suse.de