When switching Bluetooth headset profile from HFP to A2DPm there is no sound output

Hi guys,

my Bluetooth headset supports HFP (headset-head-unit) and A2DP (a2dp-sink) profiles. When connected, it is on A2DP. If I start or receive a call, it automatically switches to headset-head-unit, which works flawlessly. After the call ends, it automatically switches to a2dp-sink. Here is the problem: I hear nothing at this point. I can switch back and forth from A2DP to HFP and I will only hear something when on HFP. The only way to get A2DP is to disconnect and reconnect the headset. The issue is not related to the automatic switching, the same happens when switching by hand.

This behavior started happening after the recent Pipewire update where I also had to change from manjaro-pulse to manjaro-pipewire. Before that the situation was partially better and partially worse. In the past, automatic switching to a different profile didn’t work at all, so Pipewire is definitely an upgrade in this regard. Switching back (manually) from HFP to A2DP worked very unreliably in the past. Sometimes it actually worked (without reconnecting) but often it wouldn’t. Overall I consider the move to Pipewire an upgrade, but if course it would be nice to have switching from HFP to A2DP without reconnecting the headset.

Here is the pactl list cards output:

$ pactl list cards
Card #51
	Name: alsa_card.pci-0000_00_1f.3
	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 = "HDA Intel PCH at 0x601d190000 irq 178"
		api.alsa.card.name = "HDA Intel PCH"
		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"
		device.description = "Internes Audio"
		device.enum.api = "udev"
		device.form_factor = "internal"
		device.icon_name = "audio-card-analog-pci"
		device.name = "alsa_card.pci-0000_00_1f.3"
		device.nick = "HDA Intel PCH"
		device.plugged.usec = "4291735"
		device.product.id = "0xa0c8"
		device.product.name = "Tiger Lake-LP Smart Sound Technology Audio Controller"
		device.subsystem = "sound"
		sysfs.path = "/devices/pci0000:00/0000:00:1f.3/sound/card0"
		device.vendor.id = "0x8086"
		device.vendor.name = "Intel Corporation"
		media.class = "Audio/Device"
		spa.object.id = "2"
		factory.id = "15"
		client.id = "46"
		object.id = "51"
		object.serial = "51"
		object.path = "alsa:acp:PCH"
		alsa.card = "0"
		alsa.card_name = "HDA Intel PCH"
		alsa.long_card_name = "HDA Intel PCH at 0x601d190000 irq 178"
		alsa.driver_name = "snd_hda_intel"
		alsa.mixer_name = "Realtek ALC257"
		alsa.components = "HDA:10ec0257,17aa508a,00100001 HDA:80862812,80860101,00100000"
		alsa.id = "PCH"
		device.string = "0"
	Profiles:
		off: Aus (sinks: 0, sources: 0, priority: 0, available: yes)
		output:analog-stereo+input:analog-stereo: Analoges Stereo Duplex (sinks: 1, sources: 1, priority: 6565, available: yes)
		output:analog-stereo: Analoges Stereo-Ausgabe (sinks: 1, sources: 0, priority: 6500, available: yes)
		output:hdmi-stereo+input:analog-stereo: Digitales Stereo (HDMI)-Ausgabe + Analoges Stereo-Eingang (sinks: 1, sources: 1, priority: 5965, available: no)
		output:hdmi-stereo: Digitales Stereo (HDMI)-Ausgabe (sinks: 1, sources: 0, priority: 5900, available: no)
		output:hdmi-stereo-extra1+input:analog-stereo: Digital Stereo (HDMI 2)-Ausgabe + Analoges Stereo-Eingang (sinks: 1, sources: 1, priority: 5765, available: no)
		output:hdmi-stereo-extra2+input:analog-stereo: Digital Stereo (HDMI 3)-Ausgabe + Analoges Stereo-Eingang (sinks: 1, sources: 1, priority: 5765, available: no)
		output:hdmi-stereo-extra3+input:analog-stereo: Digital Stereo (HDMI 4)-Ausgabe + Analoges Stereo-Eingang (sinks: 1, sources: 1, priority: 5765, available: no)
		output:hdmi-stereo-extra1: Digital Stereo (HDMI 2)-Ausgabe (sinks: 1, sources: 0, priority: 5700, available: no)
		output:hdmi-stereo-extra2: Digital Stereo (HDMI 3)-Ausgabe (sinks: 1, sources: 0, priority: 5700, available: no)
		output:hdmi-stereo-extra3: Digital Stereo (HDMI 4)-Ausgabe (sinks: 1, sources: 0, priority: 5700, available: no)
		output:hdmi-surround+input:analog-stereo: Digital Surround 5.1 (HDMI)-Ausgabe + Analoges Stereo-Eingang (sinks: 1, sources: 1, priority: 865, available: no)
		output:hdmi-surround71+input:analog-stereo: Digital Surround 7.1 (HDMI)-Ausgabe + Analoges Stereo-Eingang (sinks: 1, sources: 1, priority: 865, available: no)
		output:hdmi-surround: Digital Surround 5.1 (HDMI)-Ausgabe (sinks: 1, sources: 0, priority: 800, available: no)
		output:hdmi-surround71: Digital Surround 7.1 (HDMI)-Ausgabe (sinks: 1, sources: 0, priority: 800, available: no)
		output:hdmi-surround-extra1+input:analog-stereo: Digital Surround 5.1 (HDMI 2)-Ausgabe + Analoges Stereo-Eingang (sinks: 1, sources: 1, priority: 665, available: no)
		output:hdmi-surround71-extra1+input:analog-stereo: Digital Surround 7.1 (HDMI 2)-Ausgabe + Analoges Stereo-Eingang (sinks: 1, sources: 1, priority: 665, available: no)
		output:hdmi-surround-extra2+input:analog-stereo: Digital Surround 5.1 (HDMI 3)-Ausgabe + Analoges Stereo-Eingang (sinks: 1, sources: 1, priority: 665, available: no)
		output:hdmi-surround71-extra2+input:analog-stereo: Digital Surround 7.1 (HDMI 3)-Ausgabe + Analoges Stereo-Eingang (sinks: 1, sources: 1, priority: 665, available: no)
		output:hdmi-surround-extra3+input:analog-stereo: Digital Surround 5.1 (HDMI 4)-Ausgabe + Analoges Stereo-Eingang (sinks: 1, sources: 1, priority: 665, available: no)
		output:hdmi-surround71-extra3+input:analog-stereo: Digital Surround 7.1 (HDMI 4)-Ausgabe + Analoges Stereo-Eingang (sinks: 1, sources: 1, priority: 665, available: no)
		output:hdmi-surround-extra1: Digital Surround 5.1 (HDMI 2)-Ausgabe (sinks: 1, sources: 0, priority: 600, available: no)
		output:hdmi-surround71-extra1: Digital Surround 7.1 (HDMI 2)-Ausgabe (sinks: 1, sources: 0, priority: 600, available: no)
		output:hdmi-surround-extra2: Digital Surround 5.1 (HDMI 3)-Ausgabe (sinks: 1, sources: 0, priority: 600, available: no)
		output:hdmi-surround71-extra2: Digital Surround 7.1 (HDMI 3)-Ausgabe (sinks: 1, sources: 0, priority: 600, available: no)
		output:hdmi-surround-extra3: Digital Surround 5.1 (HDMI 4)-Ausgabe (sinks: 1, sources: 0, priority: 600, available: no)
		output:hdmi-surround71-extra3: Digital Surround 7.1 (HDMI 4)-Ausgabe (sinks: 1, sources: 0, priority: 600, available: no)
		input:analog-stereo: Analoges Stereo-Eingang (sinks: 0, sources: 1, priority: 65, available: yes)
		pro-audio: Pro Audio (sinks: 5, sources: 1, priority: 1, available: yes)
	Active Profile: output:analog-stereo+input:analog-stereo
	Ports:
		analog-input-internal-mic: Internes Mikrofon (type: Mic, priority: 8900, latency offset: 0 usec, availability group: Legacy 1, not available)
			Properties:
				port.type = "mic"
				port.availability-group = "Legacy 1"
				device.icon_name = "audio-input-microphone"
				card.profile.port = "0"
			Part of profile(s): input:analog-stereo, output:analog-stereo+input:analog-stereo, output:hdmi-stereo+input:analog-stereo, output:hdmi-surround+input:analog-stereo, output:hdmi-surround71+input:analog-stereo, output:hdmi-stereo-extra1+input:analog-stereo, output:hdmi-surround-extra1+input:analog-stereo, output:hdmi-surround71-extra1+input:analog-stereo, output:hdmi-stereo-extra2+input:analog-stereo, output:hdmi-surround-extra2+input:analog-stereo, output:hdmi-surround71-extra2+input:analog-stereo, output:hdmi-stereo-extra3+input:analog-stereo, output:hdmi-surround-extra3+input:analog-stereo, output:hdmi-surround71-extra3+input:analog-stereo
		analog-input-mic: Mikrofon (type: Mic, priority: 8700, latency offset: 0 usec, availability group: Legacy 2, available)
			Properties:
				port.type = "mic"
				port.availability-group = "Legacy 2"
				device.icon_name = "audio-input-microphone"
				card.profile.port = "1"
			Part of profile(s): input:analog-stereo, output:analog-stereo+input:analog-stereo, output:hdmi-stereo+input:analog-stereo, output:hdmi-surround+input:analog-stereo, output:hdmi-surround71+input:analog-stereo, output:hdmi-stereo-extra1+input:analog-stereo, output:hdmi-surround-extra1+input:analog-stereo, output:hdmi-surround71-extra1+input:analog-stereo, output:hdmi-stereo-extra2+input:analog-stereo, output:hdmi-surround-extra2+input:analog-stereo, output:hdmi-surround71-extra2+input:analog-stereo, output:hdmi-stereo-extra3+input:analog-stereo, output:hdmi-surround-extra3+input:analog-stereo, output:hdmi-surround71-extra3+input:analog-stereo
		analog-output-speaker: Lautsprecher (type: Speaker, priority: 10000, latency offset: 0 usec, availability group: Legacy 3, not available)
			Properties:
				port.type = "speaker"
				port.availability-group = "Legacy 3"
				device.icon_name = "audio-speakers"
				card.profile.port = "2"
			Part of profile(s): output:analog-stereo, output:analog-stereo+input:analog-stereo
		analog-output-headphones: Kopfhörer (type: Headphones, priority: 9900, latency offset: 0 usec, availability group: Legacy 4, available)
			Properties:
				port.type = "headphones"
				port.availability-group = "Legacy 4"
				device.icon_name = "audio-headphones"
				card.profile.port = "3"
			Part of profile(s): output:analog-stereo, output:analog-stereo+input:analog-stereo
		hdmi-output-0: HDMI / DisplayPort (type: HDMI, priority: 5900, latency offset: 0 usec, availability group: Legacy 5, not available)
			Properties:
				port.type = "hdmi"
				port.availability-group = "Legacy 5"
				device.icon_name = "video-display"
				card.profile.port = "4"
			Part of profile(s): output:hdmi-stereo, output:hdmi-stereo+input:analog-stereo, output:hdmi-surround, output:hdmi-surround+input:analog-stereo, output:hdmi-surround71, output:hdmi-surround71+input:analog-stereo
		hdmi-output-1: HDMI / DisplayPort 2 (type: HDMI, priority: 5800, latency offset: 0 usec, availability group: Legacy 6, not available)
			Properties:
				port.type = "hdmi"
				port.availability-group = "Legacy 6"
				device.icon_name = "video-display"
				card.profile.port = "5"
			Part of profile(s): output:hdmi-stereo-extra1, output:hdmi-stereo-extra1+input:analog-stereo, output:hdmi-surround-extra1, output:hdmi-surround-extra1+input:analog-stereo, output:hdmi-surround71-extra1, output:hdmi-surround71-extra1+input:analog-stereo
		hdmi-output-2: HDMI / DisplayPort 3 (type: HDMI, priority: 5700, latency offset: 0 usec, availability group: Legacy 7, not available)
			Properties:
				port.type = "hdmi"
				port.availability-group = "Legacy 7"
				device.icon_name = "video-display"
				card.profile.port = "6"
			Part of profile(s): output:hdmi-stereo-extra2, output:hdmi-stereo-extra2+input:analog-stereo, output:hdmi-surround-extra2, output:hdmi-surround-extra2+input:analog-stereo, output:hdmi-surround71-extra2, output:hdmi-surround71-extra2+input:analog-stereo
		hdmi-output-3: HDMI / DisplayPort 4 (type: HDMI, priority: 5600, latency offset: 0 usec, availability group: Legacy 8, not available)
			Properties:
				port.type = "hdmi"
				port.availability-group = "Legacy 8"
				device.icon_name = "video-display"
				card.profile.port = "7"
			Part of profile(s): output:hdmi-stereo-extra3, output:hdmi-stereo-extra3+input:analog-stereo, output:hdmi-surround-extra3, output:hdmi-surround-extra3+input:analog-stereo, output:hdmi-surround71-extra3, output:hdmi-surround71-extra3+input:analog-stereo

Card #8461
	Name: bluez_card.44_5E_CD_47_3F_38
	Driver: module-bluez5-device.c
	Owner Module: n/a
	Properties:
		api.bluez5.address = "44:5E:CD:47:3F:38"
		api.bluez5.class = "0x240404"
		api.bluez5.connection = "connected"
		api.bluez5.device = ""
		api.bluez5.icon = "audio-headset"
		api.bluez5.path = "/org/bluez/hci0/dev_44_5E_CD_47_3F_38"
		bluez5.profile = "off"
		device.alias = "Razer Barracuda X (BT)"
		device.api = "bluez5"
		device.bus = "bluetooth"
		device.description = "Razer Barracuda X (BT)"
		device.form_factor = "headset"
		device.icon_name = "audio-headset-bluetooth"
		device.name = "bluez_card.44_5E_CD_47_3F_38"
		device.string = "44:5E:CD:47:3F:38"
		media.class = "Audio/Device"
		spa.object.id = "2"
		factory.id = "15"
		client.id = "46"
		object.id = "153"
		object.serial = "8461"
	Profiles:
		off: Aus (sinks: 0, sources: 0, priority: 0, available: yes)
		a2dp-sink: High Fidelity-Wiedergabe (A2DP-Senke, Codec SBC) (sinks: 1, sources: 0, priority: 18, available: yes)
		a2dp-sink-sbc_xq: High Fidelity-Wiedergabe (A2DP-Senke, Codec SBC-XQ) (sinks: 1, sources: 0, priority: 17, available: yes)
		headset-head-unit-cvsd: Sprechkopfhörer-Einheit (HSP/HFP, Codec CVSD) (sinks: 1, sources: 1, priority: 2, available: yes)
		headset-head-unit: Sprechkopfhörer-Einheit (HSP/HFP, Codec mSBC) (sinks: 1, sources: 1, priority: 3, available: yes)
	Active Profile: a2dp-sink
	Ports:
		headset-input: Freisprech (type: Headset, priority: 0, latency offset: 0 usec, available)
			Properties:
				port.type = "headset"
			Part of profile(s): headset-head-unit-cvsd, headset-head-unit
		headset-output: Sprechkopfhörer (type: Headset, priority: 0, latency offset: 0 usec, available)
			Properties:
				port.type = "headset"
			Part of profile(s): a2dp-sink, a2dp-sink-sbc_xq
		headset-hf-output: Freisprech (type: Headset, priority: 0, latency offset: 0 usec, available)
			Properties:
				port.type = "headset"
			Part of profile(s): headset-head-unit-cvsd, headset-head-unit

Thanks for any hints!

The issue solved itself at some point, probably by some update. Now it is switching profiles back and forth fully automatically. :partying_face:

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.