You are not logged in.

#1 2025-06-01 19:01:39

madwayl
Member
Registered: 2025-05-28
Posts: 4

Audio not switching from Headphone to Speakers when unplugged

I've issue with my audio only when connected to my HDMI/DP monitor.

I disabled all my HDMI sinks + tried setting priorities for the node names (speaker and headphone) that show up - increasing the priority for speaker does the same, where profile doesn't switch up on headphone connection.

I'm running on the latest arch linux and the kernel loads the device module ("snd_soc_skl_hda_dsp") correctly.

I only one card, and below are the details from pactl list sinks:

Card #1753
	Name: alsa_card.pci-0000_00_1f.3-platform-skl_hda_dsp_generic
	Driver: alsa
	Owner Module: n/a
	Properties:
		api.acp.auto-port = "false"
		api.acp.auto-profile = "false"
		api.alsa.card = "0"
		api.alsa.card.longname = "Micro_StarInternationalCo.Ltd.-Modern15HAIC1MG-REV1.0-MS_15H5"
		api.alsa.card.name = "sof-hda-dsp"
		api.alsa.path = "hw:0"
		api.alsa.split-enable = "true"
		api.alsa.use-acp = "true"
		api.dbus.ReserveDevice1 = "Audio0"
		api.dbus.ReserveDevice1.Priority = "-20"
		device.api = "alsa"
		device.bus = "pci"
		device.bus_path = "pci-0000:00:1f.3-platform-skl_hda_dsp_generic"
		device.description = "Meteor Lake-P HD Audio Controller"
		device.enum.api = "udev"
		device.icon_name = "audio-card-analog-pci"
		device.name = "alsa_card.pci-0000_00_1f.3-platform-skl_hda_dsp_generic"
		device.nick = "sof-hda-dsp"
		device.plugged.usec = "3715655"
		device.product.id = "0x7e28"
		device.product.name = "Meteor Lake-P HD Audio Controller"
		device.subsystem = "sound"
		sysfs.path = "/devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0"
		device.vendor.id = "0x8086"
		device.vendor.name = "Intel Corporation"
		media.class = "Audio/Device"
		spa.object.id = "2"
		factory.id = "15"
		client.id = "35"
		object.id = "46"
		object.serial = "1753"
		object.path = "alsa:acp:sofhdadsp"
		alsa.card = "0"
		alsa.card_name = "sof-hda-dsp"
		alsa.long_card_name = "Micro_StarInternationalCo.Ltd.-Modern15HAIC1MG-REV1.0-MS_15H5"
		alsa.driver_name = "snd_soc_skl_hda_dsp"
		alsa.mixer_name = "Realtek ALC256"
		alsa.components = "HDA:8086281d,80860101,00100000 HDA:10ec0256,1462144f,00100002 cfg-dmics:2 iec61937-pcm:5,4,3"
		alsa.id = "sofhdadsp"
		device.string = "0"
	Profiles:
		off: Off (sinks: 0, sources: 0, priority: 0, available: yes)
		HiFi (HDMI1, HDMI2, HDMI3, Headphones, Mic1, Mic2): Play HiFi quality Music (HDMI1, HDMI2, HDMI3, Headphones, Mic1, Mic2) (sinks: 4, sources: 2, priority: 10300, available: yes)
		HiFi (HDMI1, HDMI2, HDMI3, Mic1, Mic2, Speaker): Play HiFi quality Music (HDMI1, HDMI2, HDMI3, Mic1, Mic2, Speaker) (sinks: 4, sources: 2, priority: 10200, available: yes)
		pro-audio: Pro Audio (sinks: 5, sources: 2, priority: 1, available: yes)
	Active Profile: HiFi (HDMI1, HDMI2, HDMI3, Mic1, Mic2, Speaker)
	Ports:
		[Out] HDMI3: HDMI / DisplayPort 3 Output (type: HDMI, priority: 700, latency offset: 0 usec, availability group: HDMI/DP,pcm=5, not available)
			Properties:
				port.type = "hdmi"
				port.availability-group = "HDMI/DP,pcm=5"
				device.icon_name = "video-display"
				card.profile.port = "0"
			Part of profile(s): HiFi (HDMI1, HDMI2, HDMI3, Mic1, Mic2, Speaker), HiFi (HDMI1, HDMI2, HDMI3, Headphones, Mic1, Mic2)
		[Out] HDMI2: HDMI / DisplayPort 2 Output (type: HDMI, priority: 600, latency offset: 0 usec, availability group: HDMI/DP,pcm=4, not available)
			Properties:
				port.type = "hdmi"
				port.availability-group = "HDMI/DP,pcm=4"
				device.icon_name = "video-display"
				card.profile.port = "1"
			Part of profile(s): HiFi (HDMI1, HDMI2, HDMI3, Mic1, Mic2, Speaker), HiFi (HDMI1, HDMI2, HDMI3, Headphones, Mic1, Mic2)
		[Out] HDMI1: HDMI / DisplayPort 1 Output (type: HDMI, priority: 500, latency offset: 0 usec, availability group: HDMI/DP,pcm=3, available)
			Properties:
				port.type = "hdmi"
				port.availability-group = "HDMI/DP,pcm=3"
				device.icon_name = "video-display"
				card.profile.port = "2"
				device.product.name = "L32p-30"
				iec958.codecs.detected = "[\"PCM\"]"
			Part of profile(s): HiFi (HDMI1, HDMI2, HDMI3, Mic1, Mic2, Speaker), HiFi (HDMI1, HDMI2, HDMI3, Headphones, Mic1, Mic2)
		[Out] Speaker: Speaker (type: Speaker, priority: 100, latency offset: 0 usec, availability unknown)
			Properties:
				port.type = "speaker"
				device.icon_name = "audio-speakers"
				card.profile.port = "3"
			Part of profile(s): HiFi (HDMI1, HDMI2, HDMI3, Mic1, Mic2, Speaker)
		[In] Mic2: Stereo Microphone (type: Mic, priority: 200, latency offset: 0 usec, availability group: Mic, available)
			Properties:
				port.type = "mic"
				port.availability-group = "Mic"
				device.icon_name = "audio-input-microphone"
				card.profile.port = "4"
			Part of profile(s): HiFi (HDMI1, HDMI2, HDMI3, Mic1, Mic2, Speaker), HiFi (HDMI1, HDMI2, HDMI3, Headphones, Mic1, Mic2)
		[In] Mic1: Digital Microphone (type: Mic, priority: 100, latency offset: 0 usec, availability unknown)
			Properties:
				port.type = "mic"
				device.icon_name = "audio-input-microphone"
				card.profile.port = "5"
			Part of profile(s): HiFi (HDMI1, HDMI2, HDMI3, Mic1, Mic2, Speaker), HiFi (HDMI1, HDMI2, HDMI3, Headphones, Mic1, Mic2)
		[Out] Headphones: Headphones (type: Headphones, priority: 200, latency offset: 0 usec, availability group: Headphone, available)
			Properties:
				port.type = "headphones"
				port.availability-group = "Headphone"
				device.icon_name = "audio-headphones"
				card.profile.port = "6"
			Part of profile(s): HiFi (HDMI1, HDMI2, HDMI3, Headphones, Mic1, Mic2)

The Profiles from the above code always show up. And I've had to manually switch the profile for me to set the right sink.

This is when my headphone is connected:

Sink #56
	State: IDLE
	Name: alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__Headphones__sink
	Description: Meteor Lake-P HD Audio Controller Headphones
	Driver: PipeWire
	Sample Specification: s32le 2ch 48000Hz
	Channel Map: front-left,front-right
	Owner Module: 4294967295
	Mute: no
	Volume: front-left: 22937 /  35% / -27.36 dB,   front-right: 22937 /  35% / -27.36 dB
	       balance 0.00
	Base Volume: 65536 / 100% / 0.00 dB
	Monitor Source: alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__Headphones__sink.monitor
	Latency: 0 usec, configured 0 usec
	Flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY
	Properties:
		alsa.card = "0"
		alsa.card_name = "sof-hda-dsp"
		alsa.class = "generic"
		alsa.components = "HDA:8086281d,80860101,00100000 HDA:10ec0256,1462144f,00100002 cfg-dmics:2 iec61937-pcm:5,4,3"
		alsa.device = "0"
		alsa.driver_name = "snd_soc_skl_hda_dsp"
		alsa.id = "HDA Analog (*)"
		alsa.long_card_name = "Micro_StarInternationalCo.Ltd.-Modern15HAIC1MG-REV1.0-MS_15H5"
		alsa.mixer_device = "_ucm0001.hw:sofhdadsp"
		alsa.mixer_name = "Realtek ALC256"
		alsa.name = ""
		alsa.resolution_bits = "16"
		alsa.subclass = "generic-mix"
		alsa.subdevice = "0"
		alsa.subdevice_name = "subdevice #0"
		alsa.sync.id = "00000000:00000000:00000000:00000000"
		api.alsa.card.longname = "Micro_StarInternationalCo.Ltd.-Modern15HAIC1MG-REV1.0-MS_15H5"
		api.alsa.card.name = "sof-hda-dsp"
		api.alsa.open.ucm = "true"
		api.alsa.path = "hw:sofhdadsp"
		api.alsa.pcm.card = "0"
		api.alsa.pcm.stream = "playback"
		audio.channels = "2"
		audio.position = "FL,FR"
		card.profile.device = "6"
		device.api = "alsa"
		device.class = "sound"
		device.icon_name = "audio-headphones"
		device.id = "55"
		device.profile.description = "Headphones"
		device.profile.name = "HiFi: Headphones: sink"
		device.routes = "1"
		factory.name = "api.alsa.pcm.sink"
		media.class = "Audio/Sink"
		device.description = "Meteor Lake-P HD Audio Controller"
		node.name = "alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__Headphones__sink"
		node.nick = "Headphones"
		node.pause-on-idle = "false"
		object.path = "alsa:acp:sofhdadsp:6:playback"
		port.group = "playback"
		priority.driver = "1000"
		priority.session = "1000"
		factory.id = "19"
		clock.quantum-limit = "8192"
		client.id = "46"
		node.driver = "true"
		node.loop.name = "data-loop.0"
		library.name = "audioconvert/libspa-audioconvert"
		object.id = "56"
		object.serial = "56"
		node.max-latency = "16384/48000"
		api.alsa.period-size = "1024"
		api.alsa.period-num = "32"
		api.alsa.headroom = "0"
		api.acp.auto-port = "false"
		api.acp.auto-profile = "false"
		api.alsa.card = "0"
		api.alsa.split-enable = "true"
		api.alsa.use-acp = "true"
		api.dbus.ReserveDevice1 = "Audio0"
		api.dbus.ReserveDevice1.Priority = "-20"
		device.bus = "pci"
		device.bus_path = "pci-0000:00:1f.3-platform-skl_hda_dsp_generic"
		device.enum.api = "udev"
		device.name = "alsa_card.pci-0000_00_1f.3-platform-skl_hda_dsp_generic"
		device.nick = "sof-hda-dsp"
		device.plugged.usec = "3715655"
		device.product.id = "0x7e28"
		device.product.name = "Meteor Lake-P HD Audio Controller"
		device.subsystem = "sound"
		sysfs.path = "/devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0"
		device.vendor.id = "0x8086"
		device.vendor.name = "Intel Corporation"
		spa.object.id = "2"
		device.string = "0"
	Ports:
		[Out] Headphones: Headphones (type: Headphones, priority: 200, availability group: Headphone, available)
	Active Port: [Out] Headphones
	Formats:
		pcm

This is when my headphone is disconnected but the port shows as unavailable. But the profile still is set to headphones for the card:

Sink #56
	State: IDLE
	Name: alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__Headphones__sink
	Description: Meteor Lake-P HD Audio Controller Headphones
	Driver: PipeWire
	Sample Specification: s32le 2ch 48000Hz
	Channel Map: front-left,front-right
	Owner Module: 4294967295
	Mute: no
	Volume: front-left: 22937 /  35% / -27.36 dB,   front-right: 22937 /  35% / -27.36 dB
	       balance 0.00
	Base Volume: 65536 / 100% / 0.00 dB
	Monitor Source: alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__Headphones__sink.monitor
	Latency: 0 usec, configured 0 usec
	Flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY
	Properties:
		alsa.card = "0"
		alsa.card_name = "sof-hda-dsp"
		alsa.class = "generic"
		alsa.components = "HDA:8086281d,80860101,00100000 HDA:10ec0256,1462144f,00100002 cfg-dmics:2 iec61937-pcm:5,4,3"
		alsa.device = "0"
		alsa.driver_name = "snd_soc_skl_hda_dsp"
		alsa.id = "HDA Analog (*)"
		alsa.long_card_name = "Micro_StarInternationalCo.Ltd.-Modern15HAIC1MG-REV1.0-MS_15H5"
		alsa.mixer_device = "_ucm0001.hw:sofhdadsp"
		alsa.mixer_name = "Realtek ALC256"
		alsa.name = ""
		alsa.resolution_bits = "16"
		alsa.subclass = "generic-mix"
		alsa.subdevice = "0"
		alsa.subdevice_name = "subdevice #0"
		alsa.sync.id = "00000000:00000000:00000000:00000000"
		api.alsa.card.longname = "Micro_StarInternationalCo.Ltd.-Modern15HAIC1MG-REV1.0-MS_15H5"
		api.alsa.card.name = "sof-hda-dsp"
		api.alsa.open.ucm = "true"
		api.alsa.path = "hw:sofhdadsp"
		api.alsa.pcm.card = "0"
		api.alsa.pcm.stream = "playback"
		audio.channels = "2"
		audio.position = "FL,FR"
		card.profile.device = "6"
		device.api = "alsa"
		device.class = "sound"
		device.icon_name = "audio-headphones"
		device.id = "55"
		device.profile.description = "Headphones"
		device.profile.name = "HiFi: Headphones: sink"
		device.routes = "1"
		factory.name = "api.alsa.pcm.sink"
		media.class = "Audio/Sink"
		device.description = "Meteor Lake-P HD Audio Controller"
		node.name = "alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__Headphones__sink"
		node.nick = "Headphones"
		node.pause-on-idle = "false"
		object.path = "alsa:acp:sofhdadsp:6:playback"
		port.group = "playback"
		priority.driver = "1000"
		priority.session = "1000"
		factory.id = "19"
		clock.quantum-limit = "8192"
		client.id = "46"
		node.driver = "true"
		node.loop.name = "data-loop.0"
		library.name = "audioconvert/libspa-audioconvert"
		object.id = "56"
		object.serial = "56"
		node.max-latency = "16384/48000"
		api.alsa.period-size = "1024"
		api.alsa.period-num = "32"
		api.alsa.headroom = "0"
		api.acp.auto-port = "false"
		api.acp.auto-profile = "false"
		api.alsa.card = "0"
		api.alsa.split-enable = "true"
		api.alsa.use-acp = "true"
		api.dbus.ReserveDevice1 = "Audio0"
		api.dbus.ReserveDevice1.Priority = "-20"
		device.bus = "pci"
		device.bus_path = "pci-0000:00:1f.3-platform-skl_hda_dsp_generic"
		device.enum.api = "udev"
		device.name = "alsa_card.pci-0000_00_1f.3-platform-skl_hda_dsp_generic"
		device.nick = "sof-hda-dsp"
		device.plugged.usec = "3715655"
		device.product.id = "0x7e28"
		device.product.name = "Meteor Lake-P HD Audio Controller"
		device.subsystem = "sound"
		sysfs.path = "/devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0"
		device.vendor.id = "0x8086"
		device.vendor.name = "Intel Corporation"
		spa.object.id = "2"
		device.string = "0"
	Ports:
		[Out] Headphones: Headphones (type: Headphones, priority: 200, availability group: Headphone, not available)
	Active Port: [Out] Headphones
	Formats:
		pcm

I sense that Pipewire does detect the change, as I see "available" and "unavailable" on plugging the headphone and unplugging it. I've enabled pipewire and I had my setup from scratch so no pulseaudio set.

This is after manually changing the profile from pavwucontrol:

Sink #3940
	State: SUSPENDED
	Name: alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__Speaker__sink
	Description: Meteor Lake-P HD Audio Controller Speaker
	Driver: PipeWire
	Sample Specification: s32le 2ch 48000Hz
	Channel Map: front-left,front-right
	Owner Module: 4294967295
	Mute: no
	Volume: front-left: 36043 /  55% / -15.58 dB,   front-right: 36043 /  55% / -15.58 dB
	       balance 0.00
	Base Volume: 65536 / 100% / 0.00 dB
	Monitor Source: alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__Speaker__sink.monitor
	Latency: 0 usec, configured 0 usec
	Flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY
	Properties:
		alsa.card = "0"
		alsa.card_name = "sof-hda-dsp"
		alsa.class = "generic"
		alsa.components = "HDA:8086281d,80860101,00100000 HDA:10ec0256,1462144f,00100002 cfg-dmics:2 iec61937-pcm:5,4,3"
		alsa.device = "0"
		alsa.driver_name = "snd_soc_skl_hda_dsp"
		alsa.id = "HDA Analog (*)"
		alsa.long_card_name = "Micro_StarInternationalCo.Ltd.-Modern15HAIC1MG-REV1.0-MS_15H5"
		alsa.mixer_device = "_ucm0001.hw:sofhdadsp"
		alsa.mixer_name = "Realtek ALC256"
		alsa.name = ""
		alsa.resolution_bits = "16"
		alsa.subclass = "generic-mix"
		alsa.subdevice = "0"
		alsa.subdevice_name = "subdevice #0"
		alsa.sync.id = "00000000:00000000:00000000:00000000"
		api.alsa.card.longname = "Micro_StarInternationalCo.Ltd.-Modern15HAIC1MG-REV1.0-MS_15H5"
		api.alsa.card.name = "sof-hda-dsp"
		api.alsa.open.ucm = "true"
		api.alsa.path = "hw:sofhdadsp"
		api.alsa.pcm.card = "0"
		api.alsa.pcm.stream = "playback"
		audio.channels = "2"
		audio.position = "FL,FR"
		card.profile.device = "3"
		device.api = "alsa"
		device.class = "sound"
		device.icon_name = "audio-speakers"
		device.id = "54"
		device.profile.description = "Speaker"
		device.profile.name = "HiFi: Speaker: sink"
		device.routes = "1"
		factory.name = "api.alsa.pcm.sink"
		media.class = "Audio/Sink"
		device.description = "Meteor Lake-P HD Audio Controller"
		node.name = "alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__Speaker__sink"
		node.nick = "Speaker"
		node.pause-on-idle = "false"
		object.path = "alsa:acp:sofhdadsp:3:playback"
		port.group = "playback"
		priority.driver = "1000"
		priority.session = "1000"
		factory.id = "19"
		clock.quantum-limit = "8192"
		client.id = "99"
		node.driver = "true"
		node.loop.name = "data-loop.0"
		library.name = "audioconvert/libspa-audioconvert"
		object.id = "206"
		object.serial = "3940"
		api.acp.auto-port = "false"
		api.acp.auto-profile = "false"
		api.alsa.card = "0"
		api.alsa.split-enable = "true"
		api.alsa.use-acp = "true"
		api.dbus.ReserveDevice1 = "Audio0"
		api.dbus.ReserveDevice1.Priority = "-20"
		device.bus = "pci"
		device.bus_path = "pci-0000:00:1f.3-platform-skl_hda_dsp_generic"
		device.enum.api = "udev"
		device.name = "alsa_card.pci-0000_00_1f.3-platform-skl_hda_dsp_generic"
		device.nick = "sof-hda-dsp"
		device.plugged.usec = "3715655"
		device.product.id = "0x7e28"
		device.product.name = "Meteor Lake-P HD Audio Controller"
		device.subsystem = "sound"
		sysfs.path = "/devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0"
		device.vendor.id = "0x8086"
		device.vendor.name = "Intel Corporation"
		spa.object.id = "2"
		device.string = "0"
	Ports:
		[Out] Speaker: Speaker (type: Speaker, priority: 100, availability unknown)
	Active Port: [Out] Speaker
	Formats:
		pcm

I always see 1 "Ports" only. And changing the profile changes the Active Port.

No solutions set from wireplumber helps. And I'd appreciate if someone could lend a hand to help fix this issue.

I believe this common, but I couldn't find solutions that I search online.

Just to add:
- I removed the disable from wireplumber for HDMI sinks.
- pavucontrol shows connectoin to "HDMI / DisplayPort 1 Output" as default



Thanks!

Last edited by madwayl (2025-06-01 19:19:04)

Offline

Board footer

Powered by FluxBB