Bluetooth: Fallback to SCO on error code 0x10 (Connection Accept Timeout).
authorNick Pelly <npelly@google.com>
Tue, 22 Sep 2009 22:19:46 +0000 (15:19 -0700)
committerColin Cross <ccross@android.com>
Tue, 14 Jun 2011 16:09:16 +0000 (09:09 -0700)
commit5c9b4de70db251b1b8e9d927948e9604a5aaeccd
tree64e71850f4e803ad767e131d42a359d9f047852b
parent40a803df07b9954d28258f77ca14ecc83d087891
Bluetooth: Fallback to SCO on error code 0x10 (Connection Accept Timeout).

This is to support the Motorola HF850 carkit which reports the error code 0x10
for an eSCO attempt, even though it advertises eSCO support. Here is the
hcidump:

2009-09-22 15:40:24.492391 < HCI Command: Setup Synchronous Connection
(0x01|0x0028) plen 17
    handle 1 voice setting 0x0060
2009-09-22 15:40:24.493002 > HCI Event: Command Status (0x0f) plen 4
    Setup Synchronous Connection (0x01|0x0028) status 0x00 ncmd 1
2009-09-22 15:40:30.594869 > HCI Event: Synchronous Connect Complete (0x2c)
plen 17
    status 0x10 handle 257 bdaddr 00:50:CD:20:C6:84 type eSCO
    Error: Connection Accept Timeout Exceeded

With this patch we will retry with a SCO connection, which succeeds.

Unfortunately the Moto HF850 also takes 5 seconds to return the error for the
eSCO attempt, so it will still take 5 seconds to fallback to SCO with this
patch.

Signed-off-by: Nick Pelly <npelly@google.com>
net/bluetooth/hci_event.c