diff options
author | Nick Pelly <npelly@google.com> | 2009-11-13 14:16:32 -0800 |
---|---|---|
committer | Arve Hjønnevåg <arve@android.com> | 2010-02-08 15:35:59 -0800 |
commit | 8fd3238575a5410507846838dbb2d4553f3f5aa2 (patch) | |
tree | 71975cce3344022bd1c4345080c235fdc5f6921b /net | |
parent | df28bc9c1957170dbf796063853a4a1aee1af6ac (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 b7c4224f4e7d..b10e3cdb08f8 100644 --- a/net/bluetooth/hci_conn.c +++ b/net/bluetooth/hci_conn.c @@ -377,6 +377,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 |