diff mbox series

[v3] Bluetooth: hci_qca: Stop IBS timer during BT OFF

Message ID 1639484691-28202-1-git-send-email-quic_pharish@quicinc.com (mailing list archive)
State Superseded
Headers show
Series [v3] Bluetooth: hci_qca: Stop IBS timer during BT OFF | expand

Checks

Context Check Description
tedd_an/checkpatch success Checkpatch PASS
tedd_an/gitlint fail [v3] Bluetooth: hci_qca: Stop IBS timer during BT OFF 7: B1 Line exceeds max length (92>80): "Fixes: 3e4be65eb82c ("Bluetooth: hci_qca: Add poweroff support during hci down for wcn3990")"
tedd_an/buildkernel success Build Kernel PASS
tedd_an/incremental_build success Pass
tedd_an/testrunnersetup success Test Runner Setup PASS
tedd_an/testrunnerl2cap-tester success Total: 40, Passed: 40 (100.0%), Failed: 0, Not Run: 0
tedd_an/testrunnerbnep-tester success Total: 1, Passed: 1 (100.0%), Failed: 0, Not Run: 0
tedd_an/testrunnermgmt-tester success Total: 493, Passed: 493 (100.0%), Failed: 0, Not Run: 0
tedd_an/testrunnerrfcomm-tester success Total: 9, Passed: 9 (100.0%), Failed: 0, Not Run: 0
tedd_an/testrunnersco-tester success Total: 12, Passed: 12 (100.0%), Failed: 0, Not Run: 0
tedd_an/testrunnersmp-tester success Total: 8, Passed: 8 (100.0%), Failed: 0, Not Run: 0
tedd_an/testrunneruserchan-tester success Total: 4, Passed: 4 (100.0%), Failed: 0, Not Run: 0

Commit Message

Panicker Harish Dec. 14, 2021, 12:24 p.m. UTC
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@quicinc.com>
---
 drivers/bluetooth/hci_qca.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

Matthias Kaehlcke Dec. 14, 2021, 5:22 p.m. UTC | #1
On Tue, Dec 14, 2021 at 05:54:51PM +0530, Panicker Harish wrote:
> 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@quicinc.com>
> ---
>  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..6f44b26 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;
>  
> +	mod_timer(&qca->tx_idle_timer, 0);
> +	mod_timer(&qca->wake_retrans_timer, 0);
> +

If one of the timers is already running it wouldn't be stopped by mod_timer().
I think you want a del_timer_sync() here to ensure the timers aren't running
when the chip is powered off.
Panicker Harish Dec. 21, 2021, 4:52 a.m. UTC | #2
-----Original Message-----
From: Matthias Kaehlcke <mka@chromium.org> 
Sent: Tuesday, December 14, 2021 10:53 PM
To: PANICKER HARISH (Temp) (QUIC) <quic_pharish@quicinc.com>
Cc: marcel@holtmann.org; johan.hedberg@gmail.com; linux-kernel@vger.kernel.org; linux-bluetooth@vger.kernel.org; Hemant Gupta (QUIC) <quic_hemantg@quicinc.com>; linux-arm-msm@vger.kernel.org; quic_bgodavar <quic_bgodavar@quicinc.com>; rjliao@codeaurora.org; hbandi@codeaurora.org; abhishekpandit@chromium.org; mcchou@chromium.org; Sai Teja Aluvala (Temp) (QUIC) <quic_saluvala@quicinc.com>
Subject: Re: [PATCH v3] Bluetooth: hci_qca: Stop IBS timer during BT OFF

On Tue, Dec 14, 2021 at 05:54:51PM +0530, Panicker Harish wrote:
> 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@quicinc.com>
> ---
>  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..6f44b26 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;
>  
> +	mod_timer(&qca->tx_idle_timer, 0);
> +	mod_timer(&qca->wake_retrans_timer, 0);
> +

If one of the timers is already running it wouldn't be stopped by mod_timer().
I think you want a del_timer_sync() here to ensure the timers aren't running when the chip is powered off.

[Harish] : I will check and update in next patch.
diff mbox series

Patch

diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c
index dd768a8..6f44b26 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;
 
+	mod_timer(&qca->tx_idle_timer, 0);
+	mod_timer(&qca->wake_retrans_timer, 0);
+
 	/* Stop sending shutdown command if soc crashes. */
 	if (soc_type != QCA_ROME
 		&& qca->memdump_state == QCA_MEMDUMP_IDLE) {