You are not logged in.
Output of "sudo dmidecode | grep -A3 '^System Information'"
System Information
Manufacturer: HUAWEI
Product Name: NBD-WXX9
Version: M1010
Output of "lscpi | grep -i audio"
00:1f.3 Multimedia audio controller: Intel Corporation Tiger Lake-LP Smart Sound Technology Audio Controller (rev 20)
Output of "alsa-info.sh"
http://alsa-project.org/db/?f=db8b23b23 … c0b9073a1a
I know that this laptop has had some audio issues in the past, which apparently has been fixed as of 6.1.1. While I have no problem getting audio from the speakers or from headphones, I am not able to only play sound from one of them. Using alsamixer, I can see that alsa is correctly muting the "Speaker" control and unmuting the "Headphone" control when headphones are plugged in, and doing the inverse when they are plugged out (images below). The same can be seen with "pactl list sinks" which correctly shows that the active port is either "analog-output-speaker" or "analog-output-headphones" depending on whether the headphones are plugged in or not.
Output of "pactl list sinks"
Sink #0
State: IDLE
Name: alsa_output.pci-0000_00_1f.3-platform-sof-essx8336.stereo-fallback
Description: Tiger Lake-LP Smart Sound Technology Audio Controller Stereo
Driver: module-alsa-card.c
Sample Specification: s16le 2ch 48000Hz
Channel Map: front-left,front-right
Owner Module: 6
Mute: no
Volume: front-left: 65536 / 100% / 0.00 dB, front-right: 65536 / 100% / 0.00 dB
balance 0.00
Base Volume: 65536 / 100% / 0.00 dB
Monitor Source: alsa_output.pci-0000_00_1f.3-platform-sof-essx8336.stereo-fallback.monitor
Latency: 71436 usec, configured 75000 usec
Flags: HARDWARE HW_MUTE_CTRL DECIBEL_VOLUME LATENCY
Properties:
alsa.resolution_bits = "16"
device.api = "alsa"
device.class = "sound"
alsa.class = "generic"
alsa.subclass = "generic-mix"
alsa.name = ""
alsa.id = "ES8336 (*)"
alsa.subdevice = "0"
alsa.subdevice_name = "subdevice #0"
alsa.device = "0"
alsa.card = "0"
alsa.card_name = "sof-essx8336"
alsa.long_card_name = "HUAWEI-NBD_WXX9-M1010-NBD_WXX9_PCB_B4"
alsa.driver_name = "snd_soc_sof_es8336"
device.bus_path = "pci-0000:00:1f.3-platform-sof-essx8336"
sysfs.path = "/devices/pci0000:00/0000:00:1f.3/sof-essx8336/sound/card0"
device.bus = "pci"
device.vendor.id = "8086"
device.vendor.name = "Intel Corporation"
device.product.id = "a0c8"
device.product.name = "Tiger Lake-LP Smart Sound Technology Audio Controller"
device.string = "hw:0"
device.buffering.buffer_size = "65536"
device.buffering.fragment_size = "16384"
device.access_mode = "mmap+timer"
device.profile.name = "stereo-fallback"
device.profile.description = "Stereo"
device.description = "Tiger Lake-LP Smart Sound Technology Audio Controller Stereo"
module-udev-detect.discovered = "1"
device.icon_name = "audio-card-pci"
Ports:
analog-output-speaker: Speakers (type: Speaker, priority: 10000, availability unknown)
analog-output-headphones: Headphones (type: Headphones, priority: 9900, availability group: Legacy 1, not available)
Active Port: analog-output-speaker
Formats:
pcm
With headphones:
https://i.imgur.com/uPQ2xmu.png
Without:
https://i.imgur.com/dYUL832.png
However, both the speaker and headphones are in fact affected by the Headphone control, and the Speaker control does not have the pvolume ability, which I assume it should have. Plugging out the headphones sets the Headphone control to 0%, but this decreases the volume of the Speaker as well (but not completely).
Using pulseaudio and pavucontrol, the output section either lists the Speakers as unavailiable or the Headphones as unplugged, but I can select them both regardless of whether the Headphones are plugged in or not. Selecting headphones makes the sound louder, but this is simply because it sets the Headphone control to 100%, which has an effect on the Speakers as well (this can be seen in alsamixer).
Using "jackhdaretask" I am only able to select the "Intel Tigerlake HDMI" codec, which seems strange. Therefore I looked at this output:
cat /proc/asound/card0/codec* | grep Codec
Codec: Intel Tigerlake HDMI
Which also seems weird, although I do not know much about sound systems. Should I have a different codec?
Things I've tried:
- Adding "options snd_hda_intel model=dell-headset-multi" to a .conf file in "/etc/modprobe.d". This was recommended if one has problems with detecting the headphone jack, however that is not my problem so this probably has no effect.
- Switching to pipewire
Any idea what may cause this problem? Is it a driver issue, or something with the codec?
Offline
Your system does not use the old HDA driver framework anymore so any and all solutions with hdajackretask or snd_hda_intel are not going to have an effect.
Stuff like this will depend on sof-firmware and the jack setup logistics found in alsa-ucm-conf, in your particular case /usr/share/alsa/ucm2/Intel/sof-essx8336/sof-essx8336.conf and /usr/share/alsa/ucm2/Intel/sof-essx8336/HiFi.conf
Looking at these files there's also a reason given for the cicumstance
SectionDevice."Speaker" {
...
Value {
PlaybackPriority 100
PlaybackPCM "hw:${CardId}"
# The es8316 only has a HP-amp which is muxed to the speaker
# or to the headpones output
PlaybackMixerElem "Headphone Mixer"
PlaybackMasterElem "DAC"
}
}
So this is apparently a codec level limitation.
Last edited by V1del (2023-01-01 15:04:47)
Offline