Kernel Bug Tracker – Bug 15943
Xonar D1 front panel microphone cannot be activated
Last modified: 2010-12-08 08:57:34 UTC
Hardware: ASUS Xonar D1 PCI 7.1 Audio Card
Kernel version: 188.8.131.52 (vanilla kernel, not ARCH kernel)
Alsa-lib version: 1.0.23-1
Alsa-utils version: 1.0.23-2
alsa-info.sh outputs of both working and broken kernel driver versions will be attached.
It is not possible to record anything from my front panel microphone jack after I updated kernel to 2.6.33.
It still works OK with kernel 184.108.40.206, but does not work with 220.127.116.11. The front panel switch in alsamixer switches only output but not input (mic) now. Before, the switch had impact on both output and input.
When I activate the back panel on the card then everything is working well (back panel connectors are active, front panel connectors are inactive). When I activate the front panel then the front panel microphone is not working (back panel microphone works). The alsamixer front panel switch does not have impact on the microphone any more and no switch was added to control the microphone separately from the output.
I use 32 bit kernels. My brother uses 64 bit kernels and the problem is the same for him too. Although he uses Xonar DX.
I tried to limit the commit which introduced the error. Here is the result:
* I cloned the git tree of vanilla kernel 18.104.22.168 (the one which I use and has the broken front panel microphone)
* I checked out sound/pci/oxygen drivers to the latest one working (git checkout 362bc24d6746bcd49bb4853fc5aa7d4c728b3f9e -- sound/pci/oxygen); built them, added them to my modules as updates and loaded to my kernel; verified that the front panel microphone works
* then I checked out the next revision (65c3ac885ce9852852b895a4a62212f62cb5f2e9) of sound/pci/oxygen; built them, added them to my modules as updates and loaded to my kernel; verified that the front panel microphone does not work
From this I assume this is the commit which broke front panel microphone:
Name: "sound: virtuoso: split virtuoso.c"
Author: Clemens Ladisch <email@example.com> 2009-09-28 11:11:27
I posted to alsa-devel list too but nobody responded. I assume that means this is a kernel error and not user space error.
Created attachment 26284 [details]
alsa-info output from the vanilla 22.214.171.124 (mic not working)
Created attachment 26285 [details]
alsa-info output, vanilla 126.96.36.199 with sound/pci/oxygen @ 362bc24d6746bcd49bb4853fc5aa7d4c728b3f9e (last working)
Thank you for finding the offending commit.
I'll look into this.
Created attachment 26334 [details]
set FMIC2MIC bit
Please try the patch.
I tried the patch against vanilla 188.8.131.52.
The difference is that now both front and back panel microphones are active regardless of "Front Pannel" switch in alsamixer. This is not the same behavior as the one before virtuoso.c split (when the switch controlled both output and microphone).
Not being able to have only the front mic or only the back mic active does not seem good since the unused one can add noise. Although I did not notice any significant noise differences.
I would say the patch makes it different but not fixed. Either the front panel switch should switch both microphone and output (as it worked before the split) or there should be two switches in alsamixer - one for microphone and the other one for output. Or maybe even three switches: backMic activate, frontMic activate, output front/back switch; since it looks like both front and back microphone can be active at the same time.
Even before the split, the driver never changed the FMIC2MIC bit after initialization, so both microphone inputs must always have been active.
It probably depends on something else too. Something I do not know about.
I'm using 184.108.40.206 with sound/pci/oxygen @ 362bc24d6746bcd49bb4853fc5aa7d4c728b3f9e (just before the split) now and when I deactivate "Front Panel" switch in alsamixer then gnome-sound-recorder does not record anything from front panel microphone. But the fact that gnome-sound-recorder's level indicator is changing while recording supports what you are saying. The sound card detects activity of the front panel microphone but mutes it later so nothing is recorded ... or maybe gnome-sound-recorder or alsa mutes it. And this muting does not happen at 220.127.116.11 with your patch applied. Maybe some other added feature makes gnome-sound-recorder or alsa or whatever behave differently. My knowledge of linux sound system is very user level at best :-)
Thanks for helping with this ... even if it stays as it is now with your patch as it is. Definitely better with the patch.
Fixed in 2.6.34 by
Author: Clemens Ladisch <firstname.lastname@example.org>
Date: Tue May 11 16:34:39 2010 +0200
ALSA: virtuoso: fix Xonar D1/DX front panel microphone