[alsa-devel] Fwd: Re: Realtek ALC889: HDA Intel and kernel 3.1 gives choppy sound (again)

David Henningsson david.henningsson at canonical.com
Mon Sep 16 23:26:04 CEST 2013


On 09/14/2013 04:19 PM, Colomban Wendling wrote:
> Hi again,
> 
> Le 03/02/2012 20:11, Colomban Wendling a écrit :
>> Le 19/12/2011 16:30, Takashi Iwai a écrit :
>>> At Mon, 19 Dec 2011 16:06:53 +0100,
>>> David Henningsson wrote:
>>>>
>>>> [...]
>>>>
>>>> Hmm, thanks for figuring this one out. Actually this is the third time I 
>>>> hear of jack detection flipping back and forth. I'm wondering if we need 
>>>> (and whether other OSes have?) a filter / flood protection on this 
>>>> stuff, and if so, how it works? I mean, nobody would notice half a 
>>>> second of delay on that switch anyway.
>>>
>>> I don't think there is a perfect filtering for such a problem.
>>> Theoretically we can see how often it's flipped, and disables the
>>> jack-detection accordingly.  But not sure how useful it is in
>>> practice, since it's a rare case, and the manual adjustment is easy.
>>
>> It's easy to fix, but I, as a simple user, think it's really hard to
>> find out -- actually I wouldn't have found this out if you weren't there
>> telling me :)
>>
>> So maybe it'd be good to have an automatic disable if this isn't a bug
>> in an ALSA code somewhere -- just remembering I never suffered of the
>> problem before 3.0.
> 
> This bug is still present as of current master (3.11.0+) -- jack
> detection is still broken with my Realtek ALC889 on a MSI H55M-E33.
> 
> Moreover, since kctls were introduced, this jack detection issue breaks
> userland apps that listen to them.  E.g. PulseAudio now switch back and
> forth between front and back panel, for which it maintains 2 separate
> set of settings which actually results in more or less the same issue
> than with AutoMute.
> 
> I see 2 possible solutions:
> 
> 1) fix the jack detection (if it isn't a bug in the card but in the
> driver somewhere)
> 
> 2) if it's not possible to fix the driver, add a way to completely
> disable jack events (e.g. a module param or something).
> 
> Currently I had to comment-out the snd_kctl_jack_report() call in
> snd_hda_jack_report_sync() so I could actually use the driver.
> 
> 
> BTW if it helps, snd_hda_jack_unsol_event() only receives events when
> actually plugging/unplugging a jack or during playback, but never when
> the card is idle.
> 
> 
> I would be more than happy to do anything I can to help fixing this.
> 
> 
> Best regards,
> Colomban
> 
> 
> PS: original thread(s):
> http://mailman.alsa-project.org/pipermail/alsa-devel/2011-November/045707.html
> http://mailman.alsa-project.org/pipermail/alsa-devel/2011-December/047152.html
> http://mailman.alsa-project.org/pipermail/alsa-devel/2011-December/047210.html
> 

Well, in the last year or two the following additions have been made to
the kernel:

 1) jackpoll_interval as a module parameter - turns off unsol events and
instead polls the jack connection at the interval you specify

 2) Kernel automute can (for almost all cards, I believe) be disabled by
setting a mixer control named "Automute mode"

...and you can disable jack detection in PulseAudio by commenting out
all sections with the jack you want to disable, the files are in
/usr/share/pulseaudio/alsa-mixer/paths/*

Btw, just a wild theory, because I'm really not a subject matter expert:
since this is a home-built computer (I assume), I wonder if this could
be a very hardware near problem - i e, is the cable to the front panel
chassi very close to something that gives out a lot of EMI disturbance
or something like that?

-- 
David Henningsson, Canonical Ltd.
https://launchpad.net/~diwic


More information about the Alsa-devel mailing list