[alsa-devel] snd-hda-intel : issues with mic boost on ALC3236

Hello,
I'm having issues with the internal microphone on an Asus R553 (or S551) laptop.
With the boost set to zero the microphone works but the level of the recording is very low. If I try another boost setting I don't get any signal anymore.
I have uploaded alsa-info data here : http://www.alsa-project.org/db/?f=55b7fb0b4998757d099addae0a411e6a7cebc079
This is on a Linux 4.0 kernel.
Any help is welcome,
Regards,
Simon

At Fri, 24 Apr 2015 21:34:19 +0200, Simon Derr wrote:
Hello,
I'm having issues with the internal microphone on an Asus R553 (or S551) laptop.
With the boost set to zero the microphone works but the level of the recording is very low. If I try another boost setting I don't get any signal anymore.
I have uploaded alsa-info data here : http://www.alsa-project.org/db/?f=55b7fb0b4998757d099addae0a411e6a7cebc079
This is on a Linux 4.0 kernel.
Any help is welcome,
The problem is unlikely specific to the codec (ALC3236) but the whole hardware implementation.
Your hardware seems to have only one mic pin. It's already strange. Usually there are two mic pins. Did you try the input from mic jack (or headset mic)? Did it work with mic boot volume properly?
Takashi

I'm having issues with the internal microphone on an Asus R553 (or S551) laptop.
With the boost set to zero the microphone works but the level of the recording is very low. If I try another boost setting I don't get any signal anymore.
The problem is unlikely specific to the codec (ALC3236) but the whole hardware implementation.
I have to admit that I have zero knowledge of how these things are implemented. I can't find a datasheet for that codec anywhere. However, looking at the ALC262 datasheet for instance, the block diagram represents the boost function inside the codec itself.
Your hardware seems to have only one mic pin. It's already strange. Usually there are two mic pins. Did you try the input from mic jack (or headset mic)? Did it work with mic boot volume properly?
I just tried : plugging a headset in the combo jack does not seem to have any effect on the mic input. It seems that the mic on the headset is not used, and that the internal microphone of the laptop is still active.
Simon

At Wed, 29 Apr 2015 22:26:39 +0200, Simon Derr wrote:
I'm having issues with the internal microphone on an Asus R553 (or S551) laptop.
With the boost set to zero the microphone works but the level of the recording is very low. If I try another boost setting I don't get any signal anymore.
The problem is unlikely specific to the codec (ALC3236) but the whole hardware implementation.
I have to admit that I have zero knowledge of how these things are implemented. I can't find a datasheet for that codec anywhere. However, looking at the ALC262 datasheet for instance, the block diagram represents the boost function inside the codec itself.
ALC3236 isn't ALC262 but rather ALC269 variant.
Kailang, is there anything special in ALC3236 regarding the mic boost handling? Here, the problem is that the machine doesn't get builtin mic working when mic boost is set more than 0, and 0 gives only low signals. alsa-info.sh is at: http://www.alsa-project.org/db/?f=55b7fb0b4998757d099addae0a411e6a7cebc079
Your hardware seems to have only one mic pin. It's already strange. Usually there are two mic pins. Did you try the input from mic jack (or headset mic)? Did it work with mic boot volume properly?
I just tried : plugging a headset in the combo jack does not seem to have any effect on the mic input. It seems that the mic on the headset is not used, and that the internal microphone of the laptop is still active.
So you have two problems. Not sure whether it's related, though.
You may try some existing quirk for Dell laptops, e.g. model=dell-headset-multi. In your case, the realtek codec is the second one, so pass "model=,dell-headset-multi" (give a comma at first)
Takashi

-----Original Message----- From: Takashi Iwai [mailto:tiwai@suse.de] Sent: Thursday, April 30, 2015 1:23 PM To: Simon Derr Cc: Kailang; alsa-devel@alsa-project.org Subject: Re: [alsa-devel] snd-hda-intel : issues with mic boost on ALC3236
At Wed, 29 Apr 2015 22:26:39 +0200, Simon Derr wrote:
I'm having issues with the internal microphone on an
Asus R553 (or S551) laptop.
With the boost set to zero the microphone works but the level of the recording is very low. If I try another boost setting I don't get any signal anymore.
The problem is unlikely specific to the codec (ALC3236) but the whole hardware implementation.
I have to admit that I have zero knowledge of how these things are implemented. I can't find a datasheet for that codec anywhere. However, looking at the ALC262 datasheet for instance, the block diagram represents the boost function inside the codec itself.
ALC3236 isn't ALC262 but rather ALC269 variant.
Kailang, is there anything special in ALC3236 regarding the mic boost handling? Here, the problem is that the machine doesn't get builtin mic working when mic boost is set more than 0, and 0 gives only low signals. alsa-info.sh is at:
http://www.alsa-project.org/db/?f=55b7fb0b4998757d099addae0a41
1e6a7cebc079
I ever met this issue before. But I forgot which cause this issue. Maybe some hidden registers need to be changed. I will ask our AE for this.
Your hardware seems to have only one mic pin. It's
already strange.
Usually there are two mic pins. Did you try the input
from mic jack
(or headset mic)? Did it work with mic boot volume properly?
I just tried : plugging a headset in the combo jack does
not seem to
have any effect on the mic input. It seems that the mic on
the headset
is not used, and that the internal microphone of the laptop
is still
active.
So you have two problems. Not sure whether it's related, though.
You may try some existing quirk for Dell laptops, e.g. model=dell-headset-multi. In your case, the realtek codec is the second one, so pass "model=,dell-headset-multi" (give a comma at first)
Takashi
------Please consider the environment before printing this e-mail.

Kailang, is there anything special in ALC3236 regarding the mic boost handling? Here, the problem is that the machine doesn't get builtin mic working when mic boost is set more than 0, and 0 gives only low signals. alsa-info.sh is at:
You may try some existing quirk for Dell laptops, e.g. model=dell-headset-multi. In your case, the realtek codec is the second one, so pass "model=,dell-headset-multi" (give a comma at first)
Hi,
Good news : setting model=,headset-mic seems to solve all my issues. The jack mic works, the internal mic works, and the boost works. Does that make sense to you ?
Anyway, thanks a lot for your help.
May I suggest updating the list of codec variants in HD-Audio-Models.txt ? I originally thought none of the quirks applied to my codec because neither ALC3236 nor ALC233 was listed there.
Regards,
Simon

On Thu, Apr 30, 2015 at 10:39 PM, Simon Derr ddrsimon@gmail.com wrote:
Good news : setting model=,headset-mic seems to solve all my issues. The jack mic works, the internal mic works, and the boost works.
Ach !
Things are actually a bit more complicated. After suspend/resume my mic stopped working. After a lengthy testing the minimum sequence that seems to reliably work is:
1/ modprobe snd-hda-intel model=,dell-headset-multi But **with a headset plugged in in the combo jack**. Else it does not work.
2/ using alsamixer set the second capture knob (that was at 0) to 100
3/ rmmod snd-hda-intel. The headset can be removed now, or not.
4/ modprobe snd-hda-intel model=,headset-mic
5/ Now the proper boost and recording levels can be set in alsamixer, and the mic works properly.
Simon

At Fri, 1 May 2015 09:05:44 +0200, Simon Derr wrote:
On Thu, Apr 30, 2015 at 10:39 PM, Simon Derr ddrsimon@gmail.com wrote:
Good news : setting model=,headset-mic seems to solve all my issues. The jack mic works, the internal mic works, and the boost works.
Ach !
Things are actually a bit more complicated. After suspend/resume my mic stopped working.
OK, this must be a bug in the quirk. Could you give alsa-info.sh outputs before and after suspend (with this model option)?
David, Hui, do you see any similar problem with Dell machines?
thanks,
Takashi
After a lengthy testing the minimum sequence that seems to reliably work is:
1/ modprobe snd-hda-intel model=,dell-headset-multi But **with a headset plugged in in the combo jack**. Else it does not work.
2/ using alsamixer set the second capture knob (that was at 0) to 100
3/ rmmod snd-hda-intel. The headset can be removed now, or not.
4/ modprobe snd-hda-intel model=,headset-mic
5/ Now the proper boost and recording levels can be set in alsamixer, and the mic works properly.
Simon

On Fri, May 1, 2015 at 9:13 AM, Takashi Iwai tiwai@suse.de wrote:
At Fri, 1 May 2015 09:05:44 +0200, Simon Derr wrote:
On Thu, Apr 30, 2015 at 10:39 PM, Simon Derr ddrsimon@gmail.com wrote:
Good news : setting model=,headset-mic seems to solve all my issues. The jack mic works, the internal mic works, and the boost works.
Ach !
Things are actually a bit more complicated. After suspend/resume my mic stopped working.
OK, this must be a bug in the quirk.
I wouldn't call it a bug, since the quirk that is "live" during suspend/resume is not the only quirk needed to make the mic work. Anyway, more testing shows that one step in my sequence was not needed.
The whole story is:
1/ modprobe snd-hda-intel model=,dell-headset-multi But **with a headset plugged in in the combo jack**. Else it does not work. At this point the headset mic works but not the internal one.
2/ rmmod snd-hda-intel. The headset can be removed now, or not.
3/ modprobe snd-hda-intel model=,headset-mic
4/ Now the proper boost and recording levels can be set in alsamixer, the mic works. alsa-info here: http://www.alsa-project.org/db/?f=17352a127029ec18376b71f960965c9d29646c8b
5/suspend-resume. Mic stops working. alsa-info here: http://www.alsa-project.org/db/?f=de32acc42d0c3be14ffeca2715881eb436eb57b1
Regards,
Simon

Hello,
I have made some progress.
First I may have been mistaken when I thought that the external mic was working. Further testing makes me think that it was actually the internal mic picking up sound while the headset was connected. But that's not really an issue for me, since I am mostly interested in the internal mic.
Now, I have used ftrace to trace what was going on when I plugged the headset while using dell-headset-multi. This allowed me to write a patchfile that I can load using
modprobe snd-hda-intel patch=,my-hda-patch.fw
With the contents of /lib/firmware/my-hda-patch.fw being as follows:
[codec] 0x10ec0233 0x1043124f 0
[verb] 0x20 0x500 0x45 0x20 0x4c4 0x29 0x20 0x500 0x35 0x20 0xc00 0x00 0x20 0x500 0x35 0x20 0x46f 0x3e 0x20 0x500 0x06 0x20 0x421 0x00 0x20 0x500 0x1a 0x20 0x400 0x21 0x20 0x500 0x26 0x20 0x400 0x8c
Using this, my internal mic works, and keeps working after suspend/resume.
Regards,
Simon

At Sun, 3 May 2015 23:27:46 +0200, Simon Derr wrote:
Hello,
I have made some progress.
First I may have been mistaken when I thought that the external mic was working. Further testing makes me think that it was actually the internal mic picking up sound while the headset was connected. But that's not really an issue for me, since I am mostly interested in the internal mic.
Now, I have used ftrace to trace what was going on when I plugged the headset while using dell-headset-multi. This allowed me to write a patchfile that I can load using
modprobe snd-hda-intel patch=,my-hda-patch.fw
With the contents of /lib/firmware/my-hda-patch.fw being as follows:
[codec] 0x10ec0233 0x1043124f 0
[verb] 0x20 0x500 0x45 0x20 0x4c4 0x29 0x20 0x500 0x35 0x20 0xc00 0x00 0x20 0x500 0x35 0x20 0x46f 0x3e 0x20 0x500 0x06 0x20 0x421 0x00 0x20 0x500 0x1a 0x20 0x400 0x21 0x20 0x500 0x26 0x20 0x400 0x8c
Using this, my internal mic works, and keeps working after suspend/resume.
Maybe the pin setup for Dell multi headset doesn't match with yours. There are a few other headset quirks, but they aren't exposed as selectable via model option. You need to patch the kernel.
For example, below is to use ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC for your device. Does it work better?
Takashi
--- diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 2542b15ae343..955bb7710c14 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -5139,6 +5139,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { SND_PCI_QUIRK(0x1043, 0x103f, "ASUS TX300", ALC282_FIXUP_ASUS_TX300), SND_PCI_QUIRK(0x1043, 0x106d, "Asus K53BE", ALC269_FIXUP_LIMIT_INT_MIC_BOOST), SND_PCI_QUIRK(0x1043, 0x115d, "Asus 1015E", ALC269_FIXUP_LIMIT_INT_MIC_BOOST), + SND_PCI_QUIRK(0x1043, 0x124f, "ASUS S551", ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC), SND_PCI_QUIRK(0x1043, 0x1427, "Asus Zenbook UX31E", ALC269VB_FIXUP_ASUS_ZENBOOK), SND_PCI_QUIRK(0x1043, 0x1517, "Asus Zenbook UX31A", ALC269VB_FIXUP_ASUS_ZENBOOK_UX31A), SND_PCI_QUIRK(0x1043, 0x16e3, "ASUS UX50", ALC269_FIXUP_STEREO_DMIC),

On Tue, May 19, 2015 at 8:42 AM, Takashi Iwai tiwai@suse.de wrote:
Maybe the pin setup for Dell multi headset doesn't match with yours. There are a few other headset quirks, but they aren't exposed as selectable via model option. You need to patch the kernel.
For example, below is to use ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC for your device. Does it work better?
Hello Takashi,
Unfortunately, I cannot test your patch. I got rid of that laptop, there were just too many issues with it. Thanks anyway,
Simon

At Thu, 21 May 2015 16:00:02 +0200, Simon Derr wrote:
On Tue, May 19, 2015 at 8:42 AM, Takashi Iwai tiwai@suse.de wrote:
Maybe the pin setup for Dell multi headset doesn't match with yours. There are a few other headset quirks, but they aren't exposed as selectable via model option. You need to patch the kernel.
For example, below is to use ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC for your device. Does it work better?
Hello Takashi,
Unfortunately, I cannot test your patch. I got rid of that laptop, there were just too many issues with it. Thanks anyway,
OK, then let's postpone this until anyone else hits.
thanks,
Takashi

On 05/01/2015 03:13 PM, Takashi Iwai wrote:
At Fri, 1 May 2015 09:05:44 +0200, Simon Derr wrote:
On Thu, Apr 30, 2015 at 10:39 PM, Simon Derr ddrsimon@gmail.com wrote:
Good news : setting model=,headset-mic seems to solve all my issues. The jack mic works, the internal mic works, and the boost works.
Ach !
Things are actually a bit more complicated. After suspend/resume my mic stopped working.
OK, this must be a bug in the quirk. Could you give alsa-info.sh outputs before and after suspend (with this model option)?
David, Hui, do you see any similar problem with Dell machines?
I didn't see the similar problem with Dell machines recently.
Regards, Hui.
thanks,
Takashi
After a lengthy testing the minimum sequence that seems to reliably work is:
1/ modprobe snd-hda-intel model=,dell-headset-multi But **with a headset plugged in in the combo jack**. Else it does not work.
2/ using alsamixer set the second capture knob (that was at 0) to 100
3/ rmmod snd-hda-intel. The headset can be removed now, or not.
4/ modprobe snd-hda-intel model=,headset-mic
5/ Now the proper boost and recording levels can be set in alsamixer, and the mic works properly.
Simon
Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
participants (4)
-
Hui Wang
-
Kailang
-
Simon Derr
-
Takashi Iwai