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>
This commit is contained in:
Родитель
a675d7f1a0
Коммит
52de599e04
|
@ -3292,15 +3292,13 @@ static void hci_tx_work(struct work_struct *work)
|
|||
BT_DBG("%s acl %d sco %d le %d", hdev->name, hdev->acl_cnt,
|
||||
hdev->sco_cnt, hdev->le_cnt);
|
||||
|
||||
/* Schedule queues and send stuff to HCI driver */
|
||||
|
||||
hci_sched_acl(hdev);
|
||||
|
||||
hci_sched_sco(hdev);
|
||||
|
||||
hci_sched_esco(hdev);
|
||||
|
||||
hci_sched_le(hdev);
|
||||
if (!test_bit(HCI_USER_CHANNEL, &hdev->dev_flags)) {
|
||||
/* Schedule queues and send stuff to HCI driver */
|
||||
hci_sched_acl(hdev);
|
||||
hci_sched_sco(hdev);
|
||||
hci_sched_esco(hdev);
|
||||
hci_sched_le(hdev);
|
||||
}
|
||||
|
||||
/* Send next queued raw (unknown type) packet */
|
||||
while ((skb = skb_dequeue(&hdev->raw_q)))
|
||||
|
|
Загрузка…
Ссылка в новой задаче