Bug 110591
Summary: | White noise in headphones on Dell Latitude E5550/ALC3235 (w/ hda-analyzer diff) | ||
---|---|---|---|
Product: | Drivers | Reporter: | Andrey Vihrov (andrey.vihrov) |
Component: | Sound(ALSA) | Assignee: | Jaroslav Kysela (perex) |
Status: | RESOLVED CODE_FIX | ||
Severity: | normal | CC: | superquad.vortex2, tiwai, viktorpal |
Priority: | P1 | ||
Hardware: | All | ||
OS: | Linux | ||
Kernel Version: | 4.3.3 | Subsystem: | |
Regression: | No | Bisected commit-id: | |
Attachments: |
ALSA info
hda-analyzer diff Test fix patch ALSA info ALSA info (defaults) card0_codec#0_no_headset card1_codec#0_no_headset card0_codec#0_with_adapter_cable card1_codec#0_with_adapter_cable card0_codec#0_with_samsung_headset card1_codec#0_with_samsung_headset |
Description
Andrey Vihrov
2016-01-09 21:24:27 UTC
Created attachment 199171 [details]
hda-analyzer diff
I applied the patch to the vanilla 4.3.3 kernel. After booting the new kernel and disabling "Loopback Mixing" in the mixer, the noise is gone. I suppose applying the same quirk for E7450 works for E5550? Try the patch below. Created attachment 199391 [details]
Test fix patch
Confirmed. I built Linux 4.3.3 with the patch and there is no noise with this kernel. Good to hear. I submitted and merged the fix patch. It'll be included in the next pull request and backpoted to stable kernels eventually. Thanks! Hi sorry for commenting on this thread, but I came across this why searching for a solution for the same issue. I also have Dell Latitude E5550 running Ubuntu 16.04 with the following kernel and I can hear the mentioned noise very clearly. Kernel version: Linux 4.4.0-21-generic #37-Ubuntu SMP Mon Apr 18 18:33:37 UTC 2016 x86_64 x86_64 GNU/Linux Any idea why this could be happening? I suppose this should already be fixed in the kernel version I'm using. Also attaching ALSA script output. Created attachment 213841 [details]
ALSA info
I also played around with the hda-analyzer and it seems that by default the values Andrey suggested are already effective. The changes he suggested unfortunately only decrease the level of noise. It only goes away when you mute all the values for the node (Node 0x0d) like this (but then there is no sound at all): - Amp-In vals: [0x00 0x00] [0x80 0x80] + Amp-In vals: [0x80 0x80] [0x80 0x80] your pin defsult are different 8.955704] snd_hda_codec_generic hdaudioC1D0: autoconfig for Generic: line_outs=1 (0x16/0x0/0x0/0x0/0x0) type:line [ 8.955709] snd_hda_codec_generic hdaudioC1D0: speaker_outs=1 (0x14/0x0/0x0/0x0/0x0) [ 8.955712] snd_hda_codec_generic hdaudioC1D0: hp_outs=1 (0x15/0x0/0x0/0x0/0x0) [ 8.955714] snd_hda_codec_generic hdaudioC1D0: mono: mono_out=0x0 [ 8.955716] snd_hda_codec_generic hdaudioC1D0: inputs: [ 8.955719] snd_hda_codec_generic hdaudioC1D0: Dock Mic=0x19 [ 8.955721] snd_hda_codec_generic hdaudioC1D0: Internal Mic=0x13 https://git.kernel.org/cgit/linux/kernel/git/tiwai/sound.git/commit/sound/pci/hda?id=a22aa26f754bebc6e5ca7c503339b4812d714e89 + [ALC293_FIXUP_DELL1_MIC_NO_PRESENCE] = { + .type = HDA_FIXUP_PINS, + .v.pins = (const struct hda_pintbl[]) { + { 0x18, 0x01a1913d }, /* use as headphone mic, without its own jack detect */ + { 0x1a, 0x01a1913c }, /* use as headset mic, without its own jack detect */ + { } + }, + .chained = true, + .chain_id = ALC269_FIXUP_HEADSET_MODE are you using headset, headphone or mic ? /sys/class/sound/hwC1D0/driver_pin_configs: /sys/class/sound/hwC1D0/user_pin_configs: headset only support when there are 0x18 0x01a1913d 0x1a 0x01a1913c Hi Raymund, thanks for the very quick response. I tried with two headphones (that are only headphones, no mic included). When using these the noise is terrible. I also tried a headset that I got with my Samsung Galaxy S2 phone years ago. With that one the noise is still noticeable but compared to the headphones it is a lot better. I don't know though if that is compatible with that connector as I have seen that there are different pin layouts. Though the sound setting GUI recognizes the sound input when I select "Headset Microphone", so based on that it should be okay. I ordered one of these and will get it next week and try the headphones with that: http://www.inline-info.de/de/inline-detail/artikel/15503/ I just realized that I already head some options for the snd hda module set based on some Internet searches trying to resolve the problem. I just removed these and the defaults changed to the following after a restart: [ 13.573600] snd_hda_codec_realtek hdaudioC1D0: autoconfig for ALC3235: line_outs=1 (0x16/0x0/0x0/0x0/0x0) type:line [ 13.573605] snd_hda_codec_realtek hdaudioC1D0: speaker_outs=1 (0x14/0x0/0x0/0x0/0x0) [ 13.573610] snd_hda_codec_realtek hdaudioC1D0: hp_outs=1 (0x15/0x0/0x0/0x0/0x0) [ 13.573612] snd_hda_codec_realtek hdaudioC1D0: mono: mono_out=0x0 [ 13.573614] snd_hda_codec_realtek hdaudioC1D0: inputs: [ 13.573619] snd_hda_codec_realtek hdaudioC1D0: Dock Mic=0x19 [ 13.573622] snd_hda_codec_realtek hdaudioC1D0: Headset Mic=0x1a [ 13.573624] snd_hda_codec_realtek hdaudioC1D0: Internal Mic=0x13 # cat /sys/class/sound/hwC1D0/driver_pin_configs 0x16 0x21014020 0x19 0x21a19030 0x1a 0x01a1913c # cat /sys/class/sound/hwC1D0/user_pin_configs # empty Also attaching the ALSA info crated after the revert. Regarding the noise, reverting these module options did not have any affect on the noise. I hope that makes sense and thanks again for the help. Thanks Created attachment 213891 [details]
ALSA info (defaults)
do your user manual mention support of headphone ? can the codec detect the type of your headset (CTIA / OMTP) ? https://git.kernel.org/cgit/linux/kernel/git/tiwai/sound.git/commit/sound/pci/hda?id=cd262518a3ae4465e8e51c29641d98c4ed0651a1 do your user manual mention support of headphone ? can the codec detect the type of your headset (CTIA / OMTP) ? https://git.kernel.org/cgit/linux/kernel/git/tiwai/sound.git/commit/sound/pci/hda?id=cd262518a3ae4465e8e51c29641d98c4ed0651a1 The manual says "headset connector". Page 7-8: http://topics-cdn.dell.com/pdf/latitude-e5550-laptop_Owner's%20Manual_en-us.pdf The picture next to the port also shows a headset. I also received the cable linked above today that separates MIC and headphone and I get the same results with both headphones and the headset. The description page for the cable linked above explicitly mentions "DELL-Latitude-Notebooks" and it says that the connector is CTIA. So I guess this should be the right cable. I also found this post which says Dell support does not know if the port is CTIA or OMTP: http://en.community.dell.com/support-forums/laptop/f/3518/t/19667972 Regarding your question: "can the codec detect the type of your headset (CTIA / OMTP) ?" How could I figure this out? I also just realized that somehow the sound got into strange state where was only able to hear some parts of the music I was listening. In sound settings pressing test left and test right sounded on both sides of the headphone no matter which I pressed. In this state though the noise wasn't there (absolutely not). After plugging the headphone (the cable I bought) out and in the sound normalized and the noise came back. Thanks again for the help. Okay after taking another look at the commit again I just realized what you need. Attaching files with adapter cable headset and without headset plugged in. Created attachment 214171 [details]
card0_codec#0_no_headset
Created attachment 214181 [details]
card1_codec#0_no_headset
Created attachment 214191 [details]
card0_codec#0_with_adapter_cable
Created attachment 214201 [details]
card1_codec#0_with_adapter_cable
Created attachment 214211 [details]
card0_codec#0_with_samsung_headset
Created attachment 214221 [details]
card1_codec#0_with_samsung_headset
Files dumped: /proc/asound/card0/codec#0 /proc/asound/card1/codec#0 Module parameter was set: # cat /sys/module/snd_hda_codec/parameters/dump_coef 1 Okay one additional info that might help. When I copy something from an NFS drive or browse an NFS drive in Nautilus the white noise changes or there is additionally to it (my ears are not that sensible) a "high tone", "high frequency" buzzing noise. No other copy from local to local or from /dev/urandom or any other network traffic causes this based on my tests. Raymond, its seems that my last sentence lead me to the solution. My home server is connected to my router through a powerline adapter (http://www.devolo.com/en/Products/dLAN-1200+/). The NFS traffic made me suspicious and I removed both ends from the plug and all the noise magically went away. I don't know if this is a design flaw in the laptop or in the powerline adapter, but this seems to be pretty awkward. This is absolutely reproducible, plug in and the noise is there, plug out and everything is okay... Thanks much for your help. + case 0x10ec0293: + /* Combo Jack auto detect */ + val = alc_read_coef_idx(codec, 0x4a); + alc_write_coef_idx(codec, 0x4a, (val & 0xfff0) | 0x0008); + /* Set to ctia type */ + alc_write_coef_idx(codec, 0x45, 0xD429); + msleep(300); + val = alc_read_coef_idx(codec, 0x46); + is_ctia = (val & 0x0070) == 0x0070; + break; only debug version print the headset type in system log codec_dbg(codec, "Headset jack detected iPhone-style headset: %s\n", is_ctia ? "yes" : "no"); spec->current_headset_type = is_ctia ? ALC_HEADSET_TYPE_CTIA : ALC_HEADSET_TYPE_OMTP; } http://voices.canonical.com/david.henningsson/2014/03/07/headset-jacks-on-newer-laptops/ http://bazaar.launchpad.net/~unity-settings-daemon-team/unity-settings-daemon/trunk/view/head:/plugins/media-keys/what-did-you-plug-in/pa-backend.c Raymond, sorry for the delayed response. Thanks for the links. It seems that this headphone/headset connector "thing" is pretty messed up. Do I need to recompile the kernel with CONFIG_SND_DEBUG_VERBOSE to get the headset type in the system log? I realized since then that other electrical activities also generate some noise in the headphone/headset like switching the light on or of or some activities done by the dishwasher (without the powerline adapter being plugged in). These are much-much weaker though than the one generated by the powerline adapter. Regarding unity-settings-daemon, I don't use unity, I have the Ubuntu GNOME image installed so it is mostly Gnome processes and nothing Unity specific. |