Bug 1184291

Summary: module hidp should get loaded after module bluetooth for proper bluetooth audio
Product: [openSUSE] openSUSE Distribution Reporter: Topper Harley <webforen>
Component: KernelAssignee: openSUSE Kernel Bugs <kernel-bugs>
Status: NEW --- QA Contact: E-mail List <qa-bugs>
Severity: Minor    
Priority: P5 - None CC: tiwai, webforen
Version: Leap 15.2Flags: tiwai: needinfo? (webforen)
Target Milestone: ---   
Hardware: x86-64   
OS: openSUSE Leap 15.2   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description Topper Harley 2021-04-01 22:46:02 UTC
Problem:

You want to connect a bluetooth HiFi headset/headphone and enjoy high quality audio using the a2dp_sink with pulseaudio, but you get only low quality, handset quality audio, because a2dp_sink is not available.

How to reproduce:

Connect your bt HiFi headphone, while module hidp is NOT loaded and invoke 
"pactl list" 
from pulseaudio utils, you may see this line:

a2dp_sink: High Fidelity Playback (A2DP-target) (sinks: 1, sources: 0, priority: 40, available: no)

==> "available: no"  this tells you, A2DP is not available for your bt headphone


Root of the problem:

In some cases the hidp module does not get automatically loaded, to me this seems the case with laptops that have integrated bluetooth. The module bluetooth gets loaded, but not hidp. When using an external USB bluetooth dongle, manually connected, hidp *may* get loaded.


Solution:

It must be sure, that module hidp gets loaded after module bluetooth was loaded
Without module hidp there will be no A2DP audio over bluetooth.

You may consider to add this line to /etc/modprobe.d/50-bluetooth.conf 

softdep bluetooth post: hidp



Checking the problem is solved by suggested solution:


After hidp was loaded, connect your HiFi bt headset/headphone again and invoke
"pactl list"
you should then this:

a2dp_sink: High Fidelity Playback (A2DP-Ziel) (sinks: 1, sources: 0, priority: 40, available: yes)

==> "available: yes"  is what you want, A2DP audio now works
Comment 1 Takashi Iwai 2021-04-02 07:38:20 UTC
PA version on Leap 15.2 is way too old for fixing such an issue.  Leap 15.3 will be with the newer version and a backport patch set to support HFP native backend, so it'll likely work better on your devices as well.

The update packages for Leap 15.2 are available also in OBS home:tiwai:leap-15.2:update repo.
Comment 2 Topper Harley 2021-04-04 15:06:16 UTC
Ok.
Actually I have already upgraded PA to 14.2, but from a different repo, from multimedia:/libs/openSUSE_Leap_15.2/ and this does not contain the upgraded bluez5 daemon like yours. So I´ll give that a try.

My initial report of lacking auto load of hidp seem to be not precise...

I just saw, after booting, logging in into KDE and then restart bluetoothd and then connect the headphone again, then a2dp is detected.

I wonder if this may be not just a PA issue, maybe bluez5 is involved as well?

E.g. i see messages like 

bluetoothd[6250]: RFCOMM server failed for Object Push: socket(STREAM, RFCOMM): Protocol not supported

bluetoothd[6250]: RFCOMM server failed for :1.60/Profile/HSPHSProfile/00001108-0000-1000-8000-00805f9b34fb: socket(STREAM, RFCOMM): Protocol not supported
Comment 3 Topper Harley 2021-04-04 17:59:23 UTC
(In reply to Topper Harley from comment #2)
> Ok.
> Actually I have already upgraded PA to 14.2, but from a different repo, from
> multimedia:/libs/openSUSE_Leap_15.2/ 


I now upgraded alsa,PA,bluez from your repo.
What catches my eye is this message in the logs:

bluetoothd[1940]: profiles/audio/a2dp.c:a2dp_select_capabilities() Unable to select SEP
Comment 4 Topper Harley 2021-04-04 18:10:57 UTC
> I now upgraded alsa,PA,bluez from your repo.
> What catches my eye is this message in the logs:
> 
> bluetoothd[1940]: profiles/audio/a2dp.c:a2dp_select_capabilities() Unable to
> select SEP


systemctl restart bluetooth.service  does now help getting a2dp work.

I wrote a little script with sudo to do this as $USER. A workaround I can live with....
Comment 5 Takashi Iwai 2021-06-22 15:12:25 UTC
Have you tried upgrading to Leap 15.3?  BT should work out of the box there.