Bug 12779
Summary: | hda-intel [IDT 92HD71B7X]: built-in digital microphone and jack mic. does not work (Dell Latitude E6400) | ||
---|---|---|---|
Product: | Drivers | Reporter: | Adam Piątyszek (ediap) |
Component: | Sound(ALSA) | Assignee: | Takashi Iwai (tiwai) |
Status: | CLOSED OBSOLETE | ||
Severity: | high | CC: | alan, rui.zhang |
Priority: | P1 | ||
Hardware: | All | ||
OS: | Linux | ||
Kernel Version: | 2.6.28.7 | Subsystem: | |
Regression: | No | Bisected commit-id: | |
Bug Depends on: | |||
Bug Blocks: | 56331 | ||
Attachments: |
alsa-info.sh output for 2.6.28.7 vanilla kernel
alsa-info.sh output for 2.6.29-rc6 git kernel Enable digital-mic for Dell alsa-info.sh output for git sound master branch kernel with digital-mic patch applied alsa-info.sh output with probe_only=1 option passed to the driver alsa-info.txt with git "sound" kernel 2.6.29-rc8-00977-g560d237 Output of "acpidump > acpidump_dell_latitude_e6400.log" command |
Description
Adam Piątyszek
2009-02-25 11:43:33 UTC
Created attachment 20366 [details]
alsa-info.sh output for 2.6.28.7 vanilla kernel
Try 2.6.29-rc*. There was some successful report with the recent kernel / driver. I have just tried it and still no success. Both the built-in and jack microphones do not work, whereas I can successfully use them under MS Windows XP. The only difference in alsamixer is now an additional IEC958 switch. alsa-info.txt for this new kernel is attached as well. Created attachment 20371 [details]
alsa-info.sh output for 2.6.29-rc6 git kernel
Hmm... Could you try to run hda-verb like the following? hda-verb /dev/snd/hwC0D0 0x28 SET_VOLUME_KNOB 0x00 You need to build the driver with CONFIG_SND_HDA_HWDEP=y for that. See $LINUX/Documentation/sound/alsa/HD-Audio.txt for details. Also, if possible, try the very latest sound git tree (master branch), git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6.git master Ah, wait. The above hda-verb command is likely irrelevant. It's just for the speaker output, and I was confused. Your problem can be a simple mixer setup issue. Try to turn on "Capture Switch". I guess this allows to record from the mic-in jack, at least. I see the problem now. The BIOS gives three mic-inputs although the driver supports up to two mic inputs. It shows two mic-jacks (left and rigt) and one internal mic. Does the machine have really such? In the current situation, "Input Source" mixer element chooses either one of two mic jacks. I have both the Capture and Capture 1 sliders set to 100% and while I am testing a Skype call, Skype automatically slides the Capture switch to about 50%. But no sound is recorded. Besides, I have tried to switch Input Source and Input Source 1 between the two available values [Mic] and [Front Mic]. BTW, what is the difference between these two? I know that this laptop has support for 3 different microphones: - above the LCD panel (digital microphone) - jack microphone input (analog) - dock station microphone input, which I can not test at the moment. BTW, I do not have [Digital Mic] in this list, but I remember having it once when I was testing different kernels and model options a 2-3 months ago. I will try to build the sound git master branch as well. Don't use skype as a primary test. Never ever. Just use arecord such as: % arecord -vv -fdat foo.wav (In reply to comment #10) > Don't use skype as a primary test. Never ever. > Just use arecord such as: > % arecord -vv -fdat foo.wav No luck. Here is the output of arecord. Nothing is being recorded: ediap@tataj ~ $ arecord -vv -fdat foo.wav Recording WAVE 'foo.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo Plug PCM: Linear conversion PCM (S32_LE) Its setup is: stream : CAPTURE access : RW_INTERLEAVED format : S16_LE subformat : STD channels : 2 rate : 48000 exact rate : 48000 (48000/1) msbits : 16 buffer_size : 8192 period_size : 1024 period_time : 21333 tstamp_mode : NONE period_step : 1 avail_min : 1024 period_event : 0 start_threshold : 1 stop_threshold : 8192 silence_threshold: 0 silence_size : 0 boundary : 4611686018427387904 Slave: Soft volume PCM Control: Digital Capture Volume min_dB: -30 max_dB: 30 resolution: 121 Its setup is: stream : CAPTURE access : MMAP_INTERLEAVED format : S32_LE subformat : STD channels : 2 rate : 48000 exact rate : 48000 (48000/1) msbits : 32 buffer_size : 8192 period_size : 1024 period_time : 21333 tstamp_mode : NONE period_step : 1 avail_min : 1024 period_event : 0 start_threshold : 1 stop_threshold : 8192 silence_threshold: 0 silence_size : 0 boundary : 4611686018427387904 Slave: Direct Snoop PCM Its setup is: stream : CAPTURE access : MMAP_INTERLEAVED format : S32_LE subformat : STD channels : 2 rate : 48000 exact rate : 48000 (48000/1) msbits : 32 buffer_size : 8192 period_size : 1024 period_time : 21333 tstamp_mode : NONE period_step : 1 avail_min : 1024 period_event : 0 start_threshold : 1 stop_threshold : 8192 silence_threshold: 0 silence_size : 0 boundary : 4611686018427387904 Hardware PCM card 0 'HDA Intel' device 0 subdevice 0 Its setup is: stream : CAPTURE access : MMAP_INTERLEAVED format : S32_LE subformat : STD channels : 2 rate : 48000 exact rate : 48000 (48000/1) msbits : 32 buffer_size : 8192 period_size : 1024 period_time : 21333 tstamp_mode : ENABLE period_step : 1 avail_min : 1024 period_event : 0 start_threshold : 1 stop_threshold : 4611686018427387904 silence_threshold: 0 silence_size : 0 boundary : 4611686018427387904 #+ | 00%^C Aborted by signal Przerwanie... BTW, here are my kernel settings for this codec: tataj linux # grep HDA .config # CONFIG_SENSORS_HDAPS is not set CONFIG_SND_HDA_INTEL=m CONFIG_SND_HDA_HWDEP=y # CONFIG_SND_HDA_RECONFIG is not set # CONFIG_SND_HDA_INPUT_BEEP is not set # CONFIG_SND_HDA_CODEC_REALTEK is not set # CONFIG_SND_HDA_CODEC_ANALOG is not set CONFIG_SND_HDA_CODEC_SIGMATEL=y # CONFIG_SND_HDA_CODEC_VIA is not set # CONFIG_SND_HDA_CODEC_ATIHDMI is not set # CONFIG_SND_HDA_CODEC_NVHDMI is not set CONFIG_SND_HDA_CODEC_INTELHDMI=y CONFIG_SND_HDA_ELD=y # CONFIG_SND_HDA_CODEC_CONEXANT is not set # CONFIG_SND_HDA_CODEC_CMEDIA is not set # CONFIG_SND_HDA_CODEC_SI3054 is not set CONFIG_SND_HDA_GENERIC=y CONFIG_SND_HDA_POWER_SAVE=y CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 Choose a different item of "Input Source" mixer element. One of them should point to the mic-jack you are trying. Also, I guess the digital mic comes back if you reboot without the docking station. BIOS may check the existence and change the default pin config values. (In reply to comment #13) > Choose a different item of "Input Source" mixer element. One of them should > point to the mic-jack you are trying. I tried all options for both 2.6.29-rc6 and git sound master branch. This does not change anything: 1) Capture = 100%, Input Source = Mic -> nothing is being recorded 2) Capture = 100%, Input Source = Front Mic -> nothing is being recorded BTW, I have all playback sliders/switches unmuted, but I guess this should not interfere. The only muted switches are [Analog Loopback] and [Analog Loopback 1]. > Also, I guess the digital mic comes back if you reboot without the docking > station. BIOS may check the existence and change the default pin config > values. I do not use docking station at all. So this is not the case. My BIOS is the latest released by DELL for this laptop (A12). But with previous versions (A11 and A09) microphone did not work either. BTW, I am really glad you are trying to solve this issue. This is really critical for my work. Otherwise, I would have to reboot to MS Windows every time I have a conference (with Skype or other VoIP tool). Should you need more information from me, please let me know. Hm, you are trying to record from the mic jack, not from the internal mic, right? Anyway, the patch below should enable the digital mic again. Created attachment 20373 [details]
Enable digital-mic for Dell
(In reply to comment #16) > Hm, you are trying to record from the mic jack, not from the internal mic, > right? In fact, I tried both. No success with either of them. > Anyway, the patch below should enable the digital mic again. I will patch my kernel and let you know if that changes something. (In reply to comment #17) > Created an attachment (id=20373) [details] > Enable digital-mic for Dell The patch does not change anything after clean reboot. Still only [Mic] and [Front Mic] are available. Should I pass some specific model to the driver, e.g. dell-m4-3? One more comment... I can not successfully remove snd_hda_codec_intelhdmi module from memory: root 6158 6146 0 14:35 pts/1 00:00:00 /bin/bash /sbin/runscript.sh /etc/init.d/alsasound stop root 6188 6158 0 14:35 pts/1 00:00:00 /bin/bash /sbin/runscript.sh /etc/init.d/alsasound stop root 6251 6188 0 14:35 pts/1 00:00:00 rmmod --wait snd_hda_codec_intelhdmi It freezes the console I used to execute "/etc/init.d/alsasound stop". I have compiled this Intel HDMI module in the latest 2.6.29.x kernels. Ah, a Gentoo user... http://bugzilla.kernel.org/show_bug.cgi?id=12321 The patch should give the difference, at least on the latest sound git tree. (In reply to comment #21) > Ah, a Gentoo user... > http://bugzilla.kernel.org/show_bug.cgi?id=12321 > > The patch should give the difference, at least on the latest sound git tree. OK. So that is unrelated... I disabled the kernel configuration option for Intel HDMI Codec, so now I have the following settings enabled: CONFIG_SND_HDA_INTEL=m CONFIG_SND_HDA_HWDEP=y CONFIG_SND_HDA_CODEC_SIGMATEL=y CONFIG_SND_HDA_GENERIC=y CONFIG_SND_HDA_POWER_SAVE=y CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 I am not sure if SND_HDA_GENERIC makes any difference... Now after clean reboot and not passing any specific model to the driver the following chip is reported by alsamixer: "Intel ID 2802". Previously it was some "Intel G54 ...". With your patch, I have now one more switch "Digital Input Source" with the following three possible options: - Analog Inputs - Mixer - Digital Mic 1 I tried to record something with "arecord" setting this switch to "Digital Mic 1" and later also to "Analog Inputs". "Capture" and "Caputre 1" are set to 100%. I also tried to switch "Intput Source" and "Input Source 1" between [Mic] and [Front Mic]. Still no success... Something is really weird with this IDT driver... "Digital Mic" corresponds to the built-in mic. For digital-mic, "Capture Volume" should be irrelevant. Could you upload alsa-info output again? Also, try to probe once with probe_only=1 option. Then run alsa-info and give the content. With this option, the driver won't create any mixer / PCM stuff but gives the initial BIOS setup. Created attachment 20374 [details]
alsa-info.sh output for git sound master branch kernel with digital-mic patch applied
Created attachment 20375 [details]
alsa-info.sh output with probe_only=1 option passed to the driver
(In reply to comment #23) > Could you upload alsa-info output again? I did it yesterday. > Also, try to probe once with probe_only=1 option. Then run alsa-info and > give > the content. With this option, the driver won't create any mixer / PCM stuff > but gives the initial BIOS setup. Have you been looking at the latest alsa-info.txt files? Short update: I have tried today's sound git tree (master branch; commit 320ab9e8e66) and I am still not able to record anything from microphones on this laptop. The only difference in alsamixer is that "Analog loopback" switches are not shown any more. cat /proc/asound/card*/codec#* Codec: IDT 92HD71B7X i think i have the same hardware as you have but on HP dv7 and i have the same issue "unable to record sound from internal mic" BUT i can plugin the headset (mic + speakers) and record sound and hear sound just fine and of course... use voip (ekiga) see more info : https://bugtrack.alsa-project.org/alsa-bug/view.php?id=4314 Nadav, Thanks for your comment. Anyway, it did not help me much. Still no sound from my jack microphone input. I guess the difference is due to the fact that I use newer kernels (2.6.28 and 2.6.29-rc?). Unfortunately, I can not downgrade to older kernels due to other hardware in my laptop not supported well by anything older than 2.6.28 (Intel Integrated Graphics - GM45 & Intel 5300 AGN wireless card). /Adam Hmm, weird that it doesn't work only on yours. I have multiple reports that the recording basically works on E6400 and E6500 with the latest alsa-driver. Hi Takashi, I agree that this is really strange. Especially that under MS Windows both microphones work like a charm. Today I tried the latest kernel from git sound master branch. Unfortunately, with no success. I attach my latest alsa-info.txt results once again. Thanks in advance for any hints. BR, /Adam Created attachment 20652 [details]
alsa-info.txt with git "sound" kernel 2.6.29-rc8-00977-g560d237
Takashi, Shame on me! Finally after another hour of fight with my ALSA settings, I managed to make both microphones to work! The problem was probably in an outdated configuration in /etc/modprobe.d/alsa. Originally I had this config: =====8<====== alias char-major-116 snd alias char-major-14 soundcore alias snd-card-0 snd-hda-intel alias sound-slot-0 snd-hda-intel alias sound-service-0-0 snd-mixer-oss alias sound-service-0-1 snd-seq-oss alias sound-service-0-3 snd-pcm-oss alias sound-service-0-8 snd-seq-oss alias sound-service-0-12 snd-pcm-oss alias /dev/mixer snd-mixer-oss alias /dev/dsp snd-pcm-oss alias /dev/midi snd-seq-oss options snd cards_limit=1 =====8<====== Now I commented out everything except: =====8<====== alias snd-card-0 snd-hda-intel alias sound-slot-0 snd-hda-intel =====8<====== One more question to you: Is such a simple configuration of ALSA modules sufficient nowadays? Once again thanks for your help and patience with this bug report. You can close it now as "INVALID". /Adam hi, adam, can you do me a favor to get the acpidump of your dell latitude e6400 laptop? I need this to support a new feature in Linux kernel. BTW: you can get the latest pmtools at http://www.lesswatts.org/projects/acpi/utilities.php build and run "acpidump > acpidump.log" to get the acpidump output. thanks, rui Hi Zhang, Please find the output of acpidump on my machine attached to this bug report. BR, /Adam Created attachment 21823 [details]
Output of "acpidump > acpidump_dell_latitude_e6400.log" command
get it, thanks!! |