Hi, Since I bought this laptop: UX550VD-7700 one year and half ago, the pulse audio volume control never worked. The issue is that the master channel in alsamixer do not affect the output volume of my sound card. Only the pcm channel does. Please let me know if you need further information. Regards, Alexandre
lspci 00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers (rev 05) 00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (x16) (rev 05) 00:02.0 VGA compatible controller: Intel Corporation HD Graphics 630 (rev 04) 00:04.0 Signal processing controller: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem (rev 05) 00:14.0 USB controller: Intel Corporation 100 Series/C230 Series Chipset Family USB 3.0 xHCI Controller (rev 31) 00:14.2 Signal processing controller: Intel Corporation 100 Series/C230 Series Chipset Family Thermal Subsystem (rev 31) 00:15.0 Signal processing controller: Intel Corporation 100 Series/C230 Series Chipset Family Serial IO I2C Controller #0 (rev 31) 00:15.1 Signal processing controller: Intel Corporation 100 Series/C230 Series Chipset Family Serial IO I2C Controller #1 (rev 31) 00:16.0 Communication controller: Intel Corporation 100 Series/C230 Series Chipset Family MEI Controller #1 (rev 31) 00:17.0 SATA controller: Intel Corporation HM170/QM170 Chipset SATA Controller [AHCI Mode] (rev 31) 00:1c.0 PCI bridge: Intel Corporation 100 Series/C230 Series Chipset Family PCI Express Root Port #1 (rev f1) 00:1c.2 PCI bridge: Intel Corporation 100 Series/C230 Series Chipset Family PCI Express Root Port #3 (rev f1) 00:1c.4 PCI bridge: Intel Corporation 100 Series/C230 Series Chipset Family PCI Express Root Port #5 (rev f1) 00:1f.0 ISA bridge: Intel Corporation HM175 Chipset LPC/eSPI Controller (rev 31) 00:1f.2 Memory controller: Intel Corporation 100 Series/C230 Series Chipset Family Power Management Controller (rev 31) 00:1f.3 Audio device: Intel Corporation CM238 HD Audio Controller (rev 31) 00:1f.4 SMBus: Intel Corporation 100 Series/C230 Series Chipset Family SMBus (rev 31) 01:00.0 3D controller: NVIDIA Corporation GP107M [GeForce GTX 1050 Mobile] (rev a1) 02:00.0 Unassigned class [ff00]: Alcor Micro Device 6621 03:00.0 Network controller: Intel Corporation Wireless 8265 / 8275 (rev 78)
My ALSA info: http://alsa-project.org/db/?f=7dbc0154d55522402f6c096e266bd8baab16b1e3
This bug is quite important because the volume control being broken gives a really bad user experience.
Hi, Is there anything I can do to help? The issue seems to be stuck. Regards, Alexandre
It means likely a bogus pin configuration, i.e. a BIOS bug. Try to figure out the speaker and the headphone pins by hdajackretask, and set up the proper pins.
But on Windows everything works correctly. How do you explain it?
Very simple: Windows driver defines the own pin configuration in it or obtains the extra information from *.INI file. You need the similar fix up in Linux driver as well. Many hardware vendors don't care about the BIOS breakage as long as Windows driver runs.
Thank you for the explanation. I'm not sure how to proceed with hdajackretask. Hint: in alsamixer the master volume does nothing, yet muting the master stops the sound, and the pcm volume does something. How to find out to which pin is the master volume connected?
To be honest I'm quite lost. What is PCM, is it the raw data being pushed to the driver through snd_pcm_write()? If yes then the PCM volume control should act as the master volume control right? Because it would be applied before the sound gets into any other output (speakers, headphones, ...). Then what is currently called Master should be called "Laptop Speakers" in my case right? And my job is to figure out which pin is currently changing the volume of the "Laptop Speaker". Am I right?
You misunderstand about the master volume. There is *no* actual pin that corresponds to the master volume or master mute. The master volume and mute are virtual mixer elements that change the all connected outputs like the headphone and the speaker. And PCM volume is yet another virtual one, a pseudo mixer element that changes the volume in software, implemented inside alsa-lib. This is even not about the kernel driver. So you're trying to scratch a wrong side. What you need is to identify the actual I/O pins, e.g. headphone, speaker, mic, etc. hdajackretask is often a help for that. But before going further, you may try other known quirks. ALC295 is compatible with ALC296, and there are lots of entries for these codecs. See Documentation/sound/hdaudio/models.rst, and the instruction in Documentation/sound/hdaudio/notes.rst.
In my case the master volume is doing nothing, so it is unrelated to the bios/pin right? Because it happens before this part.
No, you still misunderstand the situation. There is *NO* Master volume at all on the hardware. This is all implemented in software. That is, Master volume does nothing but adjusting the all output volumes (headphone, speaker) *IN SOFTWARE*. So, forget about Master volume. I don't exclude possible bugs in the current code, but as long as sticking with this Master thingy, we can't go ahead. Again, the first thing to check is the pin configuration -- whether the existing mixer element (Headphone, Speaker, etc) really corresponds to the actual I/O. If not, the likely problem is the bogus pin configuration from BIOS. If the pin mapping looks correct but it still doesn't work, then it's a bug in the driver code (or some extra configuration required).
The following workaround works on Asus UX550VD: sudo gedit /usr/share/pulseaudio/alsa-mixer/paths/analog-output.conf.common Add before [PCM settings]: [Element Master] switch = mute volume = ignore Reboot. However, as is often the case with a 4-speaker ASUS system, only the 2 top speakers work. The bottom speakers do not, and I couldn't find a way to enable them no matter the amount of HDA jack retasking :-(
Thanks for chiming in on this issue!:) I've also filed a related bug to this here: https://bugzilla.kernel.org/show_bug.cgi?id=212641 The workaround you suggested indeed creates a partial workaround for the issue, but while it doesn't solve it completely (the speaker issue you mention), it also introduces a new problem on my system. With the fix applied, headphone output doesn't work properly anymore (when connected with a cable to the audio jack). Do headphones work for you with the workaround? I haven't tested mic with/without headphones, so not sure about that either. I'm still hoping that perhaps one of these days this bug will be fixed, like what happened here on a different Asus laptop that had the same issue (didn't fix the issue for this model unfortunately): https://bugzilla.kernel.org/show_bug.cgi?id=212547
Indeed it seems adding an override for [Element Master] breaks headphones. Interestingly, even varying left/right balance individually in pavucontrol has no effect - the volume remains at max level except when it reaches 0, then it's 0. Here's alsa-info with a 5.14 kernel, where the issue still very much exists: http://alsa-project.org/db/?f=5de92734e253aa16b5ef8e1b77abc252fc8aef72
Hi! Wanted to let you know that the bug for UX550VE was fixed by a patch supplied by Takashi Iwai yesterday. I've tested it both on 5.14.16 and 15.15.1 kernels and it fixes the issue on my system. I'm not sure if the UX550VD has the same issue as my model (it seems to have been some quirk in the PCI SSID configuration), but perhaps it's worth giving it a shot!:) The related the bug is this one: https://bugzilla.kernel.org/show_bug.cgi?id=212641 And a direct link to the patch itself: https://bugzilla.kernel.org/attachment.cgi?id=299461&action=edit
Oh wow, the patch from #212641 fixes both the Master volume *and* the bottom speakers! I guess that resolves this one, too. Many thanks Takashi! BTW, UX550VD and UX550VE have an identical motherboard. So the patch could perhaps say just "ASUS UX550". diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 3601749f2df6..a6098c942aeb 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -8698,6 +8698,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { SND_PCI_QUIRK(0x1043, 0x18b1, "Asus MJ401TA", ALC256_FIXUP_ASUS_HEADSET_MIC), SND_PCI_QUIRK(0x1043, 0x18f1, "Asus FX505DT", ALC256_FIXUP_ASUS_HEADSET_MIC), SND_PCI_QUIRK(0x1043, 0x194e, "ASUS UX563FD", ALC294_FIXUP_ASUS_HPE), + SND_PCI_QUIRK(0x1043, 0x1970, "ASUS UX550", ALC289_FIXUP_ASUS_GA401), SND_PCI_QUIRK(0x1043, 0x1982, "ASUS B1400CEPE", ALC256_FIXUP_ASUS_HPE), SND_PCI_QUIRK(0x1043, 0x19ce, "ASUS B9450FA", ALC294_FIXUP_ASUS_HPE), SND_PCI_QUIRK(0x1043, 0x19e1, "ASUS UX581LV", ALC295_FIXUP_ASUS_MIC_NO_PRESENCE), --
Great, so happy to hear that. Enjoy the new convenience!:P
Let's close the bug.