diff options
author | Nick Pelly <npelly@google.com> | 2009-11-13 14:16:32 -0800 |
---|---|---|
committer | Nick Pelly <npelly@google.com> | 2009-11-13 14:19:18 -0800 |
commit | 201ac2f225a31dffcb05f1db4d609c467c9c694c (patch) | |
tree | 6f07569294a2eb14bd6bb9be27a0cdf4142dbd69 /net | |
parent | 4f8dbbb4638a458901ab4e8621efcf9b5652baa8 (diff) |
Bluetooth: Enter active mode before establishing a SCO link.
When in sniff mode with a long interval time (1.28s) it can take 4+ seconds to
establish a SCO link. Fix by requesting active mode before requesting SCO
connection. This improves SCO setup time to ~500ms.
Bluetooth headsets that use a long interval time, and exhibit the long SCO
connection time include Motorola H790, HX1 and H17. They have a CSR 2.1 chipset
Verified this behavior and fix with host Bluetooth chipsets: BCM4329 and
TI1271.
Signed-off-by: Nick Pelly <npelly@google.com>
Diffstat (limited to 'net')
-rw-r--r-- | net/bluetooth/hci_conn.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/net/bluetooth/hci_conn.c b/net/bluetooth/hci_conn.c index 055ac5723a35..e082b89ca822 100644 --- a/net/bluetooth/hci_conn.c +++ b/net/bluetooth/hci_conn.c @@ -372,6 +372,9 @@ struct hci_conn *hci_connect(struct hci_dev *hdev, int type, bdaddr_t *dst, __u8 if (acl->state == BT_CONNECTED && (sco->state == BT_OPEN || sco->state == BT_CLOSED)) { + acl->power_save = 1; + hci_conn_enter_active_mode(acl); + if (lmp_esco_capable(hdev)) hci_setup_sync(sco, acl->handle); else |