[PATCH v4] Bluetooth: hci_qca: Stop IBS timer during BT OFF

From: Panicker Harish
Date: Wed Dec 22 2021 - 02:29:49 EST


The IBS timers are not stopped properly once BT OFF is triggered.
we could see IBS commands being sent along with version command,
so stopped IBS timers while Bluetooth is off.

Fixes: 3e4be65eb82c ("Bluetooth: hci_qca: Add poweroff support during hci down for wcn3990")

Signed-off-by: Panicker Harish <quic_pharish@xxxxxxxxxxx>
----
v4:
* Used del_timer_sync() instead of mod_timer() to stop the timer and
to make sure the handler has finished executing on other CPUs.

v3:
*Addressed reviewers comments
*updated commit message

v2:
* Addressed the username
* The full implementation of IBS is based on timers
to that reason we have used timers.

v1: initial patch
---
drivers/bluetooth/hci_qca.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c
index dd768a8..9e99311 100644
--- a/drivers/bluetooth/hci_qca.c
+++ b/drivers/bluetooth/hci_qca.c
@@ -1928,6 +1928,9 @@ static int qca_power_off(struct hci_dev *hdev)
hu->hdev->hw_error = NULL;
hu->hdev->cmd_timeout = NULL;

+ del_timer_sync(&qca->wake_retrans_timer);
+ del_timer_sync(&qca->tx_idle_timer);
+
/* Stop sending shutdown command if soc crashes. */
if (soc_type != QCA_ROME
&& qca->memdump_state == QCA_MEMDUMP_IDLE) {
--
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc.