Bluetooth: Hack: Do not use power_save feature.
authorNick Pelly <npelly@google.com>
Thu, 4 Feb 2010 17:06:57 +0000 (09:06 -0800)
committerColin Cross <ccross@android.com>
Thu, 30 Sep 2010 00:49:24 +0000 (17:49 -0700)
power_save is a feature to allow HID devices to control the sniff mode.
Unfortunately it also prevents us exiting sniff mode on some A2DP devices
that do not explicitly exit sniff mode themselves, resulting in skipping
audio.

Marcel is trying to finalize a setsockopt() API to control whether power_save
is enabled on a per socket basis. In the mean-time, turn off power_save for
Android, since we do not have official HID support, and this is causing
problems for A2DP which we do support.

(Note the power_save logic is reversed, 0 is on, 1 is off).

Change-Id: Ife4478055128b81669bf49308d2e2199e1aa11a1
Signed-off-by: Nick Pelly <npelly@google.com>
net/bluetooth/hci_conn.c

index 9f4ebc187dccbec63ed855134e98d40a8f93e31c..367f4d9c002b1e122453a9ee992ef707fcd0e813 100644 (file)
@@ -529,7 +529,7 @@ void hci_conn_enter_active_mode(struct hci_conn *conn)
        if (test_bit(HCI_RAW, &hdev->flags))
                return;
 
-       if (conn->mode != HCI_CM_SNIFF || !conn->power_save)
+       if (conn->mode != HCI_CM_SNIFF /* || !conn->power_save */)
                goto timer;
 
        if (!test_and_set_bit(HCI_CONN_MODE_CHANGE_PEND, &conn->pend)) {