[alsa-devel] Bug 48381 - [Regression][Bisected]Sound gets permanently muted a few minutes after booting
tiwai at suse.de
Wed Oct 10 16:16:13 CEST 2012
At Wed, 10 Oct 2012 14:59:08 +0200,
Da Fox wrote:
> Hi all,
> Since the official bug-tracker at
> https://bugtrack.alsa-project.org/alsa-bug/ seems to be down (and
> moreover this appears to be a kernel bug), I have filed a bug at the
> kernel's bug-tracker last week (
> https://bugzilla.kernel.org/show_bug.cgi?id=48381 ). However, it seems
> to have gone unnoticed thus-far.
> Quick summary of the issue:
> After a while of inactivity the sound-card seems to go into a sort of
> power-saving mode (you can hear a faint 'pop' from the speakers).
> Before the sound would automatically turn back on again as soon as a
> program attempted to play sound. However now it seems that after
> resuming from the power-saving mode the driver thinks that there is
> always a headphone connected, even when it is not. I think this is
> what happens because toggling the 'Auto-Mute Mode' (setting it to
> 'Disabled') in alsamixer allows the speakers to produce sound again.
> This is all on a laptop (please see the linked bug report for more
> detailed hardware description).
> Would a developer please take a look at it? I have bisected the issue
> down to a commit made by David Henningsson and/or Takashi Iwai:
> 80c8bfbe76869bfd6bdf3d260d316e7a32f318c3 is the first bad commit
> commit 80c8bfbe76869bfd6bdf3d260d316e7a32f318c3
> Author: David Henningsson <david.henningsson at canonical.com>
> Date: Mon Jun 4 09:33:51 2012 +0200
> ALSA: HDA: Create phantom jacks for fixed inputs and outputs
Could you check the patch below whether it fixes your problem?
It essentially disables what the commit above introduced.
If the problem persists with the patch, it means that the commit above
is no real culprit, thus bisection wasn't correct.
diff --git a/sound/pci/hda/hda_jack.c b/sound/pci/hda/hda_jack.c
index 5c690cb..d3f4ae6 100644
@@ -359,6 +359,8 @@ static int add_jack_kctl(struct hda_codec *codec, hda_nid_t nid,
phantom_jack = (conn != AC_JACK_PORT_COMPLEX) ||
+ if (phantom_jack)
+ return 0;
snd_hda_get_pin_label(codec, nid, cfg, name, sizeof(name), &idx);
More information about the Alsa-devel