linux/net/bluetooth
Marcel Holtmann e73439d8c0 Bluetooth: Defer SCO setup if mode change is pending
Certain headsets such as the Motorola H350 will reject SCO and eSCO
connection requests while the ACL is transitioning from sniff mode
to active mode. Add synchronization so that SCO and eSCO connection
requests will wait until the ACL has fully transitioned to active mode.

< HCI Command: Exit Sniff Mode (0x02|0x0004) plen 2
    handle 12
> HCI Event: Command Status (0x0f) plen 4
    Exit Sniff Mode (0x02|0x0004) status 0x00 ncmd 1
< HCI Command:  Setup Synchronous Connection (0x01|0x0028) plen 17
    handle 12 voice setting 0x0040
> HCI Event: Command Status (0x0f) plen 4
    Setup Synchronous Connection (0x01|0x0028) status 0x00 ncmd 1
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 12 packets 1
> HCI Event: Mode Change (0x14) plen 6
    status 0x00 handle 12 mode 0x00 interval 0
    Mode: Active
> HCI Event: Synchronous Connect Complete (0x2c) plen 17
    status 0x10 handle 14 bdaddr 00:1A:0E:50:28:A4 type SCO
    Error: Connection Accept Timeout Exceeded

Signed-off-by: Ron Shaffer <rshaffer@codeaurora.org>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
2010-07-27 12:29:04 -07:00
..
bnep Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2010-07-07 15:59:38 -07:00
cmtp net: sk_sleep() helper 2010-04-20 16:37:13 -07:00
hidp net: sk_sleep() helper 2010-04-20 16:37:13 -07:00
rfcomm net: Remove unnecessary returns from void function()s 2010-05-17 23:23:14 -07:00
af_bluetooth.c net: sk_sleep() helper 2010-04-20 16:37:13 -07:00
hci_conn.c Bluetooth: Defer SCO setup if mode change is pending 2010-07-27 12:29:04 -07:00
hci_core.c Bluetooth: Implemented HCI frame reassembly for RX from stream 2010-07-21 10:39:12 -07:00
hci_event.c Bluetooth: Defer SCO setup if mode change is pending 2010-07-27 12:29:04 -07:00
hci_sock.c Bluetooth: Add blacklist support for incoming connections 2010-07-21 10:39:05 -07:00
hci_sysfs.c Bluetooth: Add debugfs support for showing the blacklist 2010-07-21 10:39:05 -07:00
Kconfig Bluetooth: Remove L2CAP Extended Features from Kconfig 2010-07-21 10:39:04 -07:00
l2cap.c Bluetooth: Enable L2CAP Extended features by default 2010-07-21 10:39:13 -07:00
lib.c
Makefile
sco.c net: Remove unnecessary returns from void function()s 2010-05-17 23:23:14 -07:00