I'm not sure if this helps, but I see pulseaudio logging an "Operation Not Authorized" message when things do not work:
Apr 26 01:46:52 zenbook pulseaudio[3346]: [pulseaudio] module-bluez5-device.c: Acquiring transport /org/bluez/hci0/dev_20_74_CF_02_DB_F2/fd0 Apr 26 01:46:52 zenbook pulseaudio[3346]: [pulseaudio] bluez5-util.c: Transport TryAcquire() failed for transport /org/bluez/hci0/dev_20_74_CF_02_DB_F2/fd0 (Operation Not Authorized)
Whereas after doing the switch-to-HSP, disconnect, reconnect, switch-to-A2DP dance to make it work, the equivalent logging is:
Apr 26 01:52:40 zenbook pulseaudio[3346]: [pulseaudio] module-bluez5-device.c: Acquiring transport /org/bluez/hci0/dev_20_74_CF_02_DB_F2/fd2 Apr 26 01:52:40 zenbook bluetoothd[808]: /org/bluez/hci0/dev_20_74_CF_02_DB_F2/fd2: fd(23) ready Apr 26 01:52:40 zenbook pulseaudio[3346]: [pulseaudio] module-bluez5-device.c: Transport /org/bluez/hci0/dev_20_74_CF_02_DB_F2/fd2 acquired: fd 46
I'm not sure if this helps, but I see pulseaudio logging an "Operation Not Authorized" message when things do not work:
Apr 26 01:46:52 zenbook pulseaudio[3346]: [pulseaudio] module- bluez5- device. c: Acquiring transport /org/bluez/ hci0/dev_ 20_74_CF_ 02_DB_F2/ fd0 hci0/dev_ 20_74_CF_ 02_DB_F2/ fd0 (Operation Not Authorized)
Apr 26 01:46:52 zenbook pulseaudio[3346]: [pulseaudio] bluez5-util.c: Transport TryAcquire() failed for transport /org/bluez/
Whereas after doing the switch-to-HSP, disconnect, reconnect, switch-to-A2DP dance to make it work, the equivalent logging is:
Apr 26 01:52:40 zenbook pulseaudio[3346]: [pulseaudio] module- bluez5- device. c: Acquiring transport /org/bluez/ hci0/dev_ 20_74_CF_ 02_DB_F2/ fd2 hci0/dev_ 20_74_CF_ 02_DB_F2/ fd2: fd(23) ready bluez5- device. c: Transport /org/bluez/ hci0/dev_ 20_74_CF_ 02_DB_F2/ fd2 acquired: fd 46
Apr 26 01:52:40 zenbook bluetoothd[808]: /org/bluez/
Apr 26 01:52:40 zenbook pulseaudio[3346]: [pulseaudio] module-