[alsa-devel] [PATCH] ALSA: hda - limit mic boost on Asus UX31[A, E]
This both devices need limit for internal dmic.
Signed-off-by: Oleksij Rempel linux@rempel-privat.de --- sound/pci/hda/patch_realtek.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index c4ad9d1..b617aa4 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -3798,6 +3798,7 @@ enum { ALC271_FIXUP_HP_GATE_MIC_JACK, ALC269_FIXUP_ACER_AC700, ALC269_FIXUP_LIMIT_INT_MIC_BOOST, + ALC269VB_FIXUP_LIMIT_INT_DMIC_BOOST, ALC269_FIXUP_LIMIT_INT_MIC_BOOST_MUTE_LED, ALC269VB_FIXUP_ORDISSIMO_EVE2, ALC283_FIXUP_CHROME_BOOK, @@ -4075,6 +4076,12 @@ static const struct hda_fixup alc269_fixups[] = { .chained = true, .chain_id = ALC269_FIXUP_THINKPAD_ACPI, }, + [ALC269VB_FIXUP_LIMIT_INT_DMIC_BOOST] = { + .type = HDA_FIXUP_FUNC, + .v.func = alc269_fixup_limit_int_mic_boost, + .chained = true, + .chain_id = ALC269VB_FIXUP_DMIC, + }, [ALC269_FIXUP_LIMIT_INT_MIC_BOOST_MUTE_LED] = { .type = HDA_FIXUP_FUNC, .v.func = alc269_fixup_limit_int_mic_boost, @@ -4189,8 +4196,8 @@ 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, 0x1427, "Asus Zenbook UX31E", ALC269VB_FIXUP_DMIC), - SND_PCI_QUIRK(0x1043, 0x1517, "Asus Zenbook UX31A", ALC269VB_FIXUP_DMIC), + SND_PCI_QUIRK(0x1043, 0x1427, "Asus Zenbook UX31E", ALC269VB_FIXUP_LIMIT_INT_DMIC_BOOST), + SND_PCI_QUIRK(0x1043, 0x1517, "Asus Zenbook UX31A", ALC269VB_FIXUP_LIMIT_INT_DMIC_BOOST), SND_PCI_QUIRK(0x1043, 0x16e3, "ASUS UX50", ALC269_FIXUP_STEREO_DMIC), SND_PCI_QUIRK(0x1043, 0x1a13, "Asus G73Jw", ALC269_FIXUP_ASUS_G73JW), SND_PCI_QUIRK(0x1043, 0x1b13, "Asus U41SV", ALC269_FIXUP_INV_DMIC),
At Wed, 27 Nov 2013 17:12:03 +0100, Oleksij Rempel wrote:
This both devices need limit for internal dmic.
Signed-off-by: Oleksij Rempel linux@rempel-privat.de
Ah, you have this Zenbook. While I'll take your patch, yet a counter-question to you:
I got a bug report complaining that the output level on this (or similar) machine is too low compared with Windows. Is it so on yours, too?
If so, does the patch below make the level equivalent? The reporter isn't responsive, so need more better testing...
BTW, I'd suggest to name the new fixup in your patch as ALC269VB_FIXUP_ZENBOOK (or ALC269VB_FIXUP_ASUS_ZENBOOK) as my patch does.
thanks,
Takashi
--- diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index c4ad9d198068..cb004359f926 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -3778,6 +3778,7 @@ enum { ALC269_FIXUP_DMIC, ALC269VB_FIXUP_AMIC, ALC269VB_FIXUP_DMIC, + ALC269VB_FIXUP_ZENBOOK, ALC269_FIXUP_HP_MUTE_LED, ALC269_FIXUP_HP_MUTE_LED_MIC1, ALC269_FIXUP_HP_MUTE_LED_MIC2, @@ -3933,6 +3934,17 @@ static const struct hda_fixup alc269_fixups[] = { { } }, }, + [ALC269VB_FIXUP_ZENBOOK] = { + .type = HDA_FIXUP_VERBS, + .v.verbs = (const struct hda_verb[]) { + /* class-D output boost +6dB */ + {0x20, AC_VERB_SET_COEF_INDEX, 0x12}, + {0x20, AC_VERB_SET_PROC_COEF, 0x3000}, + { } + }, + .chained = true, + .chain_id = ALC269VB_FIXUP_DMIC, + }, [ALC269_FIXUP_HP_MUTE_LED] = { .type = HDA_FIXUP_FUNC, .v.func = alc269_fixup_hp_mute_led, @@ -4189,8 +4201,8 @@ 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, 0x1427, "Asus Zenbook UX31E", ALC269VB_FIXUP_DMIC), - SND_PCI_QUIRK(0x1043, 0x1517, "Asus Zenbook UX31A", ALC269VB_FIXUP_DMIC), + SND_PCI_QUIRK(0x1043, 0x1427, "Asus Zenbook UX31E", ALC269VB_FIXUP_ZENBOOK), + SND_PCI_QUIRK(0x1043, 0x1517, "Asus Zenbook UX31A", ALC269VB_FIXUP_ZENBOOK), SND_PCI_QUIRK(0x1043, 0x16e3, "ASUS UX50", ALC269_FIXUP_STEREO_DMIC), SND_PCI_QUIRK(0x1043, 0x1a13, "Asus G73Jw", ALC269_FIXUP_ASUS_G73JW), SND_PCI_QUIRK(0x1043, 0x1b13, "Asus U41SV", ALC269_FIXUP_INV_DMIC),
Am 27.11.2013 17:18, schrieb Takashi Iwai:
At Wed, 27 Nov 2013 17:12:03 +0100, Oleksij Rempel wrote:
This both devices need limit for internal dmic.
Signed-off-by: Oleksij Rempel linux@rempel-privat.de
Ah, you have this Zenbook. While I'll take your patch, yet a counter-question to you:
I got a bug report complaining that the output level on this (or similar) machine is too low compared with Windows. Is it so on yours, too?
I'll check it ASAP ;)
If so, does the patch below make the level equivalent? The reporter isn't responsive, so need more better testing...
BTW, I'd suggest to name the new fixup in your patch as ALC269VB_FIXUP_ZENBOOK (or ALC269VB_FIXUP_ASUS_ZENBOOK) as my patch does.
thanks,
Takashi
Am 27.11.2013 18:59, schrieb Oleksij Rempel:
Am 27.11.2013 17:18, schrieb Takashi Iwai:
At Wed, 27 Nov 2013 17:12:03 +0100, Oleksij Rempel wrote:
This both devices need limit for internal dmic.
Signed-off-by: Oleksij Rempel linux@rempel-privat.de
Ah, you have this Zenbook. While I'll take your patch, yet a counter-question to you:
I got a bug report complaining that the output level on this (or similar) machine is too low compared with Windows. Is it so on yours, too?
I'll check it ASAP ;)
If so, does the patch below make the level equivalent? The reporter isn't responsive, so need more better testing...
BTW, I'd suggest to name the new fixup in your patch as ALC269VB_FIXUP_ZENBOOK (or ALC269VB_FIXUP_ASUS_ZENBOOK) as my patch does.
Hi right now i did only one test: On sender and reciver i use audacity to generate 1000Hz signal and to capture it for measuring. For microphone i use logitech c905 webcam. Distance between right speaker and mic is 24cm.
Windows and Linux was configured for maximal volume. On linux i use maximal alsa volume, not pulse. On windows no plugins are used. Windwos 7 64bit, latest realtek driver. Ubuntu Linux 13.10, kernel 3.12.0-031200rc6-generic.
Both Windows and Linux have same volume. Check attachment in audacity.
Reported issue may be result of enabled compressor plugin on windows.
I will need some more time to test in on UX31A, there is no windows on this machine.
At Thu, 28 Nov 2013 10:48:49 +0100, Oleksij Rempel wrote:
Am 27.11.2013 18:59, schrieb Oleksij Rempel:
Am 27.11.2013 17:18, schrieb Takashi Iwai:
At Wed, 27 Nov 2013 17:12:03 +0100, Oleksij Rempel wrote:
This both devices need limit for internal dmic.
Signed-off-by: Oleksij Rempel linux@rempel-privat.de
Ah, you have this Zenbook. While I'll take your patch, yet a counter-question to you:
I got a bug report complaining that the output level on this (or similar) machine is too low compared with Windows. Is it so on yours, too?
I'll check it ASAP ;)
If so, does the patch below make the level equivalent? The reporter isn't responsive, so need more better testing...
BTW, I'd suggest to name the new fixup in your patch as ALC269VB_FIXUP_ZENBOOK (or ALC269VB_FIXUP_ASUS_ZENBOOK) as my patch does.
Hi right now i did only one test: On sender and reciver i use audacity to generate 1000Hz signal and to capture it for measuring. For microphone i use logitech c905 webcam. Distance between right speaker and mic is 24cm.
Windows and Linux was configured for maximal volume. On linux i use maximal alsa volume, not pulse. On windows no plugins are used. Windwos 7 64bit, latest realtek driver. Ubuntu Linux 13.10, kernel 3.12.0-031200rc6-generic.
Both Windows and Linux have same volume. Check attachment in audacity.
Reported issue may be result of enabled compressor plugin on windows.
I will need some more time to test in on UX31A, there is no windows on this machine.
Thanks, that's really helpful! So, we don't need the pre-amp verbs.
I'll likely keep these verbs applied only when a special model option is given.
Takashi
Am 28.11.2013 11:22, schrieb Takashi Iwai:
At Thu, 28 Nov 2013 10:48:49 +0100, Oleksij Rempel wrote:
Am 27.11.2013 18:59, schrieb Oleksij Rempel:
Am 27.11.2013 17:18, schrieb Takashi Iwai:
At Wed, 27 Nov 2013 17:12:03 +0100, Oleksij Rempel wrote:
This both devices need limit for internal dmic.
Signed-off-by: Oleksij Rempel linux@rempel-privat.de
Ah, you have this Zenbook. While I'll take your patch, yet a counter-question to you:
I got a bug report complaining that the output level on this (or similar) machine is too low compared with Windows. Is it so on yours, too?
I'll check it ASAP ;)
If so, does the patch below make the level equivalent? The reporter isn't responsive, so need more better testing...
BTW, I'd suggest to name the new fixup in your patch as ALC269VB_FIXUP_ZENBOOK (or ALC269VB_FIXUP_ASUS_ZENBOOK) as my patch does.
Hi right now i did only one test: On sender and reciver i use audacity to generate 1000Hz signal and to capture it for measuring. For microphone i use logitech c905 webcam. Distance between right speaker and mic is 24cm.
Windows and Linux was configured for maximal volume. On linux i use maximal alsa volume, not pulse. On windows no plugins are used. Windwos 7 64bit, latest realtek driver. Ubuntu Linux 13.10, kernel 3.12.0-031200rc6-generic.
Both Windows and Linux have same volume. Check attachment in audacity.
Reported issue may be result of enabled compressor plugin on windows.
I will need some more time to test in on UX31A, there is no windows on this machine.
Thanks, that's really helpful! So, we don't need the pre-amp verbs.
I'll likely keep these verbs applied only when a special model option is given.
Hi Takashi,
we found by one of our LUG users same MIC_LIMIT issue. Reported codec is ALC269VB, but subsystem pci_id overlap with some other device. Or may be i misinterpreted some thing. Can you please take a look on it (it is Lenovo 43308HG):
00:1b.0 0403: 8086:3b56 (rev 05) Subsystem: 17aa:38af Flags: bus master, fast devsel, latency 0, IRQ 43 Memory at f2800000 (64-bit, non-prefetchable) [size=16K] Capabilities: <access denied> Kernel driver in use: snd_hda_intel Kernel modules: snd-hda-intel
Lenovo-B560:~$ sudo dmidecode | grep Prod Product Name: 43308HG Product Name: MoutCook
At Thu, 28 Nov 2013 16:23:20 +0100, Oleksij Rempel wrote:
Am 28.11.2013 11:22, schrieb Takashi Iwai:
At Thu, 28 Nov 2013 10:48:49 +0100, Oleksij Rempel wrote:
Am 27.11.2013 18:59, schrieb Oleksij Rempel:
Am 27.11.2013 17:18, schrieb Takashi Iwai:
At Wed, 27 Nov 2013 17:12:03 +0100, Oleksij Rempel wrote:
This both devices need limit for internal dmic.
Signed-off-by: Oleksij Rempel linux@rempel-privat.de
Ah, you have this Zenbook. While I'll take your patch, yet a counter-question to you:
I got a bug report complaining that the output level on this (or similar) machine is too low compared with Windows. Is it so on yours, too?
I'll check it ASAP ;)
If so, does the patch below make the level equivalent? The reporter isn't responsive, so need more better testing...
BTW, I'd suggest to name the new fixup in your patch as ALC269VB_FIXUP_ZENBOOK (or ALC269VB_FIXUP_ASUS_ZENBOOK) as my patch does.
Hi right now i did only one test: On sender and reciver i use audacity to generate 1000Hz signal and to capture it for measuring. For microphone i use logitech c905 webcam. Distance between right speaker and mic is 24cm.
Windows and Linux was configured for maximal volume. On linux i use maximal alsa volume, not pulse. On windows no plugins are used. Windwos 7 64bit, latest realtek driver. Ubuntu Linux 13.10, kernel 3.12.0-031200rc6-generic.
Both Windows and Linux have same volume. Check attachment in audacity.
Reported issue may be result of enabled compressor plugin on windows.
I will need some more time to test in on UX31A, there is no windows on this machine.
Thanks, that's really helpful! So, we don't need the pre-amp verbs.
I'll likely keep these verbs applied only when a special model option is given.
Hi Takashi,
we found by one of our LUG users same MIC_LIMIT issue. Reported codec is ALC269VB, but subsystem pci_id overlap with some other device. Or may be i misinterpreted some thing. Can you please take a look on it (it is Lenovo 43308HG):
00:1b.0 0403: 8086:3b56 (rev 05) Subsystem: 17aa:38af Flags: bus master, fast devsel, latency 0, IRQ 43 Memory at f2800000 (64-bit, non-prefetchable) [size=16K] Capabilities: <access denied> Kernel driver in use: snd_hda_intel Kernel modules: snd-hda-intel
Lenovo-B560:~$ sudo dmidecode | grep Prod Product Name: 43308HG Product Name: MoutCook
Could you give alsa-info.sh output on this machine? It's likely just to add a new entry in alc269_fixup_tbl[] with ALC269_FIXUP_LIMIT_INT_MIC_BOOST, but the comprehensive information would be better.
BTW, I already applied your patch in for-linus branch.
thanks,
Takashi
Am 28.11.2013 16:37, schrieb Takashi Iwai:
At Thu, 28 Nov 2013 16:23:20 +0100, Oleksij Rempel wrote:
Am 28.11.2013 11:22, schrieb Takashi Iwai:
At Thu, 28 Nov 2013 10:48:49 +0100, Oleksij Rempel wrote:
Am 27.11.2013 18:59, schrieb Oleksij Rempel:
Am 27.11.2013 17:18, schrieb Takashi Iwai:
At Wed, 27 Nov 2013 17:12:03 +0100, Oleksij Rempel wrote: > > This both devices need limit for internal dmic. > > Signed-off-by: Oleksij Rempel linux@rempel-privat.de
Ah, you have this Zenbook. While I'll take your patch, yet a counter-question to you:
I got a bug report complaining that the output level on this (or similar) machine is too low compared with Windows. Is it so on yours, too?
I'll check it ASAP ;)
If so, does the patch below make the level equivalent? The reporter isn't responsive, so need more better testing...
BTW, I'd suggest to name the new fixup in your patch as ALC269VB_FIXUP_ZENBOOK (or ALC269VB_FIXUP_ASUS_ZENBOOK) as my patch does.
Hi right now i did only one test: On sender and reciver i use audacity to generate 1000Hz signal and to capture it for measuring. For microphone i use logitech c905 webcam. Distance between right speaker and mic is 24cm.
Windows and Linux was configured for maximal volume. On linux i use maximal alsa volume, not pulse. On windows no plugins are used. Windwos 7 64bit, latest realtek driver. Ubuntu Linux 13.10, kernel 3.12.0-031200rc6-generic.
Both Windows and Linux have same volume. Check attachment in audacity.
Reported issue may be result of enabled compressor plugin on windows.
I will need some more time to test in on UX31A, there is no windows on this machine.
Thanks, that's really helpful! So, we don't need the pre-amp verbs.
I'll likely keep these verbs applied only when a special model option is given.
Hi Takashi,
we found by one of our LUG users same MIC_LIMIT issue. Reported codec is ALC269VB, but subsystem pci_id overlap with some other device. Or may be i misinterpreted some thing. Can you please take a look on it (it is Lenovo 43308HG):
00:1b.0 0403: 8086:3b56 (rev 05) Subsystem: 17aa:38af Flags: bus master, fast devsel, latency 0, IRQ 43 Memory at f2800000 (64-bit, non-prefetchable) [size=16K] Capabilities: <access denied> Kernel driver in use: snd_hda_intel Kernel modules: snd-hda-intel
Lenovo-B560:~$ sudo dmidecode | grep Prod Product Name: 43308HG Product Name: MoutCook
Could you give alsa-info.sh output on this machine? It's likely just to add a new entry in alc269_fixup_tbl[] with ALC269_FIXUP_LIMIT_INT_MIC_BOOST, but the comprehensive information would be better.
Finally i got alsa-info for this one: http://www.alsa-project.org/db/?f=5da9b10d890dddf611389dc0b297bb130a57a4d1
thanks,
Takashi
participants (2)
-
Oleksij Rempel
-
Takashi Iwai