Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 30e945fb authored by Loic Poulain's avatar Loic Poulain Committed by Marcel Holtmann
Browse files

Bluetooth: hci_intel: Give priority to LPM packets



Change the way to insert LPM packets into the txq.
Use skb_queue_head instead of skb_queue_tail to always prioritise LPM
packets over potential tx queue content.

Signed-off-by: default avatarLoic Poulain <loic.poulain@intel.com>
Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
parent 9def9afd
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -190,7 +190,8 @@ static int intel_lpm_suspend(struct hci_uart *hu)

	set_bit(STATE_LPM_TRANSACTION, &intel->flags);

	skb_queue_tail(&intel->txq, skb);
	/* LPM flow is a priority, enqueue packet at list head */
	skb_queue_head(&intel->txq, skb);
	hci_uart_tx_wakeup(hu);

	intel_wait_lpm_transaction(hu);
@@ -233,7 +234,8 @@ static int intel_lpm_resume(struct hci_uart *hu)

	set_bit(STATE_LPM_TRANSACTION, &intel->flags);

	skb_queue_tail(&intel->txq, skb);
	/* LPM flow is a priority, enqueue packet at list head */
	skb_queue_head(&intel->txq, skb);
	hci_uart_tx_wakeup(hu);

	intel_wait_lpm_transaction(hu);
@@ -272,7 +274,8 @@ static int intel_lpm_host_wake(struct hci_uart *hu)
	       sizeof(lpm_resume_ack));
	bt_cb(skb)->pkt_type = HCI_LPM_PKT;

	skb_queue_tail(&intel->txq, skb);
	/* LPM flow is a priority, enqueue packet at list head */
	skb_queue_head(&intel->txq, skb);
	hci_uart_tx_wakeup(hu);

	bt_dev_dbg(hu->hdev, "Resumed by controller");