You are not logged in.
Hi,
I have been tracking this issue for a long time now, and I was hoping that someone here might be able to help me.
The story is long but to sum up: the sound quality in the Dell XPS 15 9510 is worse in Linux than in Windows.
This is due to a high-pass filter applied to the speakers, according to the discussion in this issue.
This filter effectively caps all frequencies below 100~120Hz completely, while the Windows drivers manage to reproduce audible sound as low as ~40Hz.
This difference in behaviour makes me want to try out a different configuration, potentially improving the sound quality of the laptop, however, I am completely lost about how to look for this filter.
I also suspect that the issue might be fixed for the Dell Precision 5560 (a model that shares the same hardware), but I haven't been able to find any specific configuration for this device either in the mainstream or OEM kernels (the Precision is certified by Ubuntu), only the same quirk used in many devices to enable dual speaker output.
I keep trying to read through the ALSA and SOF documentation, as well as the actual kernel code, but I can't figure out where or how any eq might be applied to the speakers on this or other devices.
Does anyone know how can I fix this? Any info will be welcome! Thanks!
Offline
If the filter is in the OEM and set at BIOS level then this is in your UEFI and not in any direct code of the kernel or firmware. So to circumvent this *you* need to actively change the verbs.
You'd want to find the verbs the Windows driver sets if that is indeed a change there, but this isn't exactly trivial. See e.g. https://github.com/Conmanx360/QemuHDADump and whether you can pick out something you can then manipulate with the hda-verb command.
As a disclaimer, pbossart is one of the main developers of the SoF firmware and if he tells you it's defined in the BIOS/UEFI and not the kernel changes that he's right are high.
Last edited by V1del (2022-09-22 12:47:43)
Online
Thanks for the reply! It's a relief to think that I couldn't find anything in the kernel because there is probably nothing to find haha
From the conversation with pbossart I understood that the filter is applied by the HDA Codec, because he mentions that `the HDaudio codec enables a high-pass filter`. I probably got it wrong from there on.
Let's see if I can figure out something new from QemuHdaDump, I actually tried to find out the verbs set by windows a while ago following this guide, but I couldn't get the speakers to work properly either (even though the VM was clearly able to do it). This tool seems to have better documentation than the guide I followed, so at least I'll learn something
Offline