aboutsummaryrefslogtreecommitdiffstats
path: root/net/bluetooth/hci_core.c
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2013-09-03 21:08:38 -0400
committerGustavo Padovan <gustavo.padovan@collabora.co.uk>2013-09-16 13:35:56 -0400
commit52de599e04e8767b0d9b7874451cb5db91a4a70b (patch)
tree86d237fa0f90c78713ad85d92ddddef4b69b507a /net/bluetooth/hci_core.c
parenta675d7f1a0a0c0d7bde56ae89609dee56f2033e1 (diff)
Bluetooth: Only schedule raw queue when user channel is active
When the user channel is set and an user application has full control over the device, do not bother trying to schedule any queues except the raw queue. This is an optimization since with user channel, only the raw queue is in use. Signed-off-by: Marcel Holtmann <marcel@holtmann.org> Acked-by: Johan Hedberg <johan.hedberg@intel.com> Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Diffstat (limited to 'net/bluetooth/hci_core.c')
-rw-r--r--net/bluetooth/hci_core.c16
1 files changed, 7 insertions, 9 deletions
diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c
index 26673d332997..b24d2fa02c2f 100644
--- a/net/bluetooth/hci_core.c
+++ b/net/bluetooth/hci_core.c
@@ -3292,15 +3292,13 @@ static void hci_tx_work(struct work_struct *work)
3292 BT_DBG("%s acl %d sco %d le %d", hdev->name, hdev->acl_cnt, 3292 BT_DBG("%s acl %d sco %d le %d", hdev->name, hdev->acl_cnt,
3293 hdev->sco_cnt, hdev->le_cnt); 3293 hdev->sco_cnt, hdev->le_cnt);
3294 3294
3295 /* Schedule queues and send stuff to HCI driver */ 3295 if (!test_bit(HCI_USER_CHANNEL, &hdev->dev_flags)) {
3296 3296 /* Schedule queues and send stuff to HCI driver */
3297 hci_sched_acl(hdev); 3297 hci_sched_acl(hdev);
3298 3298 hci_sched_sco(hdev);
3299 hci_sched_sco(hdev); 3299 hci_sched_esco(hdev);
3300 3300 hci_sched_le(hdev);
3301 hci_sched_esco(hdev); 3301 }
3302
3303 hci_sched_le(hdev);
3304 3302
3305 /* Send next queued raw (unknown type) packet */ 3303 /* Send next queued raw (unknown type) packet */
3306 while ((skb = skb_dequeue(&hdev->raw_q))) 3304 while ((skb = skb_dequeue(&hdev->raw_q)))