diff mbox series

[v1] Bluetooth: hci_qca: Request Tx clock vote off only when Tx is pending

Message ID 1591964117-8228-1-git-send-email-bgodavar@codeaurora.org (mailing list archive)
State New, archived
Delegated to: Marcel Holtmann
Headers show
Series [v1] Bluetooth: hci_qca: Request Tx clock vote off only when Tx is pending | expand

Commit Message

Balakrishna Godavarthi June 12, 2020, 12:15 p.m. UTC
Tx pending flag is set to true when HOST IBS state is AWAKE or
AWAKEING. If IBS state is ASLEEP, then Tx clock is already voted
off. To optimize further directly calling serial_clock_vote()
instead of qca_wq_serial_tx_clock_vote_off(), at this point of
qca_suspend() already data is sent out. No need to wake up hci to
send data.

Signed-off-by: Balakrishna Godavarthi <bgodavar@codeaurora.org>
---
 drivers/bluetooth/hci_qca.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Marcel Holtmann June 12, 2020, 1:19 p.m. UTC | #1
Hi Balakrishna,

> Tx pending flag is set to true when HOST IBS state is AWAKE or
> AWAKEING. If IBS state is ASLEEP, then Tx clock is already voted
> off. To optimize further directly calling serial_clock_vote()
> instead of qca_wq_serial_tx_clock_vote_off(), at this point of
> qca_suspend() already data is sent out. No need to wake up hci to
> send data.
> 
> Signed-off-by: Balakrishna Godavarthi <bgodavar@codeaurora.org>
> ---
> drivers/bluetooth/hci_qca.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)

patch has been applied to bluetooth-next tree.

Regards

Marcel
diff mbox series

Patch

diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c
index f3fde99..50f896f 100644
--- a/drivers/bluetooth/hci_qca.c
+++ b/drivers/bluetooth/hci_qca.c
@@ -2107,6 +2107,7 @@  static int __maybe_unused qca_suspend(struct device *dev)
 	if (tx_pending) {
 		serdev_device_wait_until_sent(hu->serdev,
 					      msecs_to_jiffies(CMD_TRANS_TIMEOUT_MS));
+		serial_clock_vote(HCI_IBS_TX_VOTE_CLOCK_OFF, hu);
 	}
 
 	/* Wait for HCI_IBS_SLEEP_IND sent by device to indicate its Tx is going
@@ -2120,7 +2121,6 @@  static int __maybe_unused qca_suspend(struct device *dev)
 		goto error;
 	}
 
-	qca_wq_serial_tx_clock_vote_off(&qca->ws_tx_vote_off);
 	return 0;
 
 error: