Linux 3.0-rc4: regression reconnecting bluetooth headset (A2DP fails)

From: Jeremy Fitzhardinge
Date: Thu Jun 23 2011 - 20:29:49 EST


I have a Nokia BH-905i headset. With a stock F15 kernel, it all works
well. With current linux-2.6.git, it fails to reconnect properly.

On connection, the headphones only beep once, whereas they normally beep
twice; I think this is one beep per profile, and its only connecting HSP
and failing A2DP. In the sound control panel, it either comes up with
"profile: off" or with the HSP/HFP (Telephony) profile rather than A2DP,
and it fails to switch if I try to change profiles via the sound control
panel.

However, if I re-pair the device from scratch each time I use it, it
connects properly and it all works fine.

pactl list shows:

Card #2
Name: bluez_card.00_0B_E4_A6_6C_0D
Driver: module-bluetooth-device.c
Owner Module: 23
Properties:
device.description = "Nokia BH-905i"
device.string = "00:0B:E4:A6:6C:0D"
device.api = "bluez"
device.class = "sound"
device.bus = "bluetooth"
device.form_factor = "headset"
bluez.path = "/org/bluez/843/hci0/dev_00_0B_E4_A6_6C_0D"
bluez.class = "0x240404"
bluez.name = "Nokia BH-905i"
device.icon_name = "audio-headset-bluetooth"
device.intended_roles = "phone"
Profiles:
a2dp: High Fidelity Playback (A2DP) (sinks: 1, sources: 0, priority. 10)
hsp: Telephony Duplex (HSP/HFP) (sinks: 1, sources: 1, priority. 20)
off: Off (sinks: 0, sources: 0, priority. 0)
Active Profile: hsp

If I try to switch profiles on the command line it says:
$ pactl set-card-profile 2 a2dp
Failure: Input/Output error

and /var/log/messages shows:
module-bluetooth-device.c: A2DP is not connected, refused to switch profile

Why isn't A2DP connecting? How can I debug this further?

Thanks,
J

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/