Bluetooth: Hack: Do not use power_save feature.
authorNick Pelly <npelly@google.com>
Thu, 4 Feb 2010 17:06:57 +0000 (09:06 -0800)
committerArve Hjønnevåg <arve@android.com>
Mon, 8 Feb 2010 23:36:01 +0000 (15:36 -0800)
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 0cf25114a3f576fc2788a549eb96d0087dd39b44..fa8b412205cd89546b4a325c558c68040eeaf491 100644 (file)
@@ -500,7 +500,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)) {