[pulseaudio-discuss] Inserting headphone "locks" audio

Sean Greenslade sean at seangreenslade.com
Sun Aug 6 06:23:39 UTC 2023


On Sat, Aug 05, 2023 at 10:55:36AM -0700, John Oliver wrote:
> > I would guess that the dock shows up as a separate audio device from the
> > internal sound card on the laptop, hence the two options listed in
> > pavucontrol. But to confirm, can you post the output you get from the
> > following command:
> >
> > $ pactl list cards
> >
> > That should give some more detail on what the two audio devices are.
>
> Card #0
> Name: alsa_card.pci-0000_00_1f.3-platform-skl_hda_dsp_generic
> Driver: module-alsa-card.c
> Owner Module: 22
> Properties:
> alsa.card = "0"
> alsa.card_name = "sof-hda-dsp"
> alsa.long_card_name = "LENOVO-21CB000HUS-ThinkPadX1CarbonGen10"

OK, so card #0 is indeed your internal card, and card #6 is the dock.
These are the two cards you see in pavucontrol.

> Card #6
> Name:
> alsa_card.usb-DisplayLink_ThinkPad_Hybrid_USB-C_with_USB-A_Dock_10085535-02
> Driver: module-alsa-card.c
> Owner Module: 32
> Properties:
> alsa.card = "1"
> alsa.card_name = "ThinkPad Hybrid USB-C with USB-"
> alsa.long_card_name = "DisplayLink ThinkPad Hybrid USB-C with USB- at
> usb-0000:00:0d.0-3.2, super spee"
> alsa.driver_name = "snd_usb_audio"
> device.bus_path = "pci-0000:00:0d.0-usb-0:3.2:1.2"
> sysfs.path =
> "/devices/pci0000:00/0000:00:0d.0/usb2/2-3/2-3.2/2-3.2:1.2/sound/card1"
> udev.id =
> "usb-DisplayLink_ThinkPad_Hybrid_USB-C_with_USB-A_Dock_10085535-02"
> device.bus = "usb"
> device.vendor.id = "17e9"
> device.vendor.name = "DisplayLink"
> device.product.id = "6015"
> device.product.name = "ThinkPad Hybrid USB-C with USB-A Dock"
> device.serial = "DisplayLink_ThinkPad_Hybrid_USB-C_with_USB-A_Dock_10085535"
> device.string = "1"
> device.description = "ThinkPad Hybrid USB-C with USB-A Dock"
> module-udev-detect.discovered = "1"
> device.icon_name = "audio-card-usb"
> Profiles:

This section is what corresponds to the entries in the dropdowns in the
configuration tab of pavucontrol.

> input:analog-stereo: Analog Stereo Input (sinks: 0, sources: 1, priority:
> 65, available: no)
> input:iec958-stereo: Digital Stereo (IEC958) Input (sinks: 0, sources: 1,
> priority: 32823, available: yes)
> output:analog-stereo: Analog Stereo Output (sinks: 1, sources: 0, priority:
> 39268, available: yes)
> output:analog-stereo+input:analog-stereo: Analog Stereo Duplex (sinks: 1,
> sources: 1, priority: 6565, available: yes)
> output:analog-stereo+input:iec958-stereo: Analog Stereo Output + Digital
> Stereo (IEC958) Input (sinks: 1, sources: 1, priority: 39323, available:
> yes)
> output:analog-surround-21: Analog Surround 2.1 Output (sinks: 1, sources:
> 0, priority: 34068, available: yes)
> output:analog-surround-21+input:analog-stereo: Analog Surround 2.1 Output +
> Analog Stereo Input (sinks: 1, sources: 1, priority: 1365, available: yes)
> output:analog-surround-21+input:iec958-stereo: Analog Surround 2.1 Output +
> Digital Stereo (IEC958) Input (sinks: 1, sources: 1, priority: 34123,
> available: yes)
> output:analog-surround-41: Analog Surround 4.1 Output (sinks: 1, sources:
> 0, priority: 34068, available: yes)
> output:analog-surround-41+input:analog-stereo: Analog Surround 4.1 Output +
> Analog Stereo Input (sinks: 1, sources: 1, priority: 1365, available: yes)
> output:analog-surround-41+input:iec958-stereo: Analog Surround 4.1 Output +
> Digital Stereo (IEC958) Input (sinks: 1, sources: 1, priority: 34123,
> available: yes)
> output:analog-surround-50: Analog Surround 5.0 Output (sinks: 1, sources:
> 0, priority: 33968, available: yes)
> output:analog-surround-50+input:analog-stereo: Analog Surround 5.0 Output +
> Analog Stereo Input (sinks: 1, sources: 1, priority: 1265, available: yes)
> output:analog-surround-50+input:iec958-stereo: Analog Surround 5.0 Output +
> Digital Stereo (IEC958) Input (sinks: 1, sources: 1, priority: 34023,
> available: yes)
> output:analog-surround-51: Analog Surround 5.1 Output (sinks: 1, sources:
> 0, priority: 34068, available: yes)
> output:analog-surround-51+input:analog-stereo: Analog Surround 5.1 Output +
> Analog Stereo Input (sinks: 1, sources: 1, priority: 1365, available: yes)
> output:analog-surround-51+input:iec958-stereo: Analog Surround 5.1 Output +
> Digital Stereo (IEC958) Input (sinks: 1, sources: 1, priority: 34123,
> available: yes)
> output:iec958-stereo: Digital Stereo (IEC958) Output (sinks: 1, sources: 0,
> priority: 38268, available: yes)
> output:iec958-stereo+input:analog-stereo: Digital Stereo (IEC958) Output +
> Analog Stereo Input (sinks: 1, sources: 1, priority: 5565, available: yes)
> output:iec958-stereo+input:iec958-stereo: Digital Stereo Duplex (IEC958)
> (sinks: 1, sources: 1, priority: 38323, available: yes)
> off: Off (sinks: 0, sources: 0, priority: 0, available: yes)

What I notice here is that none of these profiles mention HDMI / Display
Port. So my suspicion is that audio for the HDMI ports is still provided
by the built-in audio card, whereas the analog port (headphone jack) on
the dock is provided by the dock's USB audio card.

I suspect what you will need to do is to make sure that the internal
card (likely the top one in pavucontrol) profile is set to your correct
HDMI port, and then select that card as the default in the Output
Devices tab. Some applications may not respect the default, but you can
move them over to the internal card by using the drop-down in the
playback tab.

I don't have one of these docks myself, so I'm only guessing at its
behavior, but this seems plausible. In particular, the
module-switch-on-port-available and module-switch-on-connect code may be
triggering the automatic change when it sees the headphones are plugged
in.

--Sean



More information about the pulseaudio-discuss mailing list