From: Ravindra <ravindra@intel.com>
To: linux-bluetooth@vger.kernel.org, lsa.uz@pm.me,
vladimirkondratyev2@gmail.com
Cc: chethan.tumkur.narayan@intel.com, kiran.k@intel.com,
Paul Menzel <pmenzel@molgen.mpg.de>,
Ravindra <ravindra@intel.com>
Subject: [PATCH v4 4/4] Bluetooth: btintel_pcie: clear the GP0 cause with a W1C write
Date: Sat, 26 Sep 2026 14:23:02 +0530 [thread overview]
Message-ID: <20260926085302.2879093-4-ravindra@intel.com> (raw)
In-Reply-To: <20260926085302.2879093-1-ravindra@intel.com>
MSIX_HW_INT_CAUSES is a write-one-to-clear register. Using a
read-modify-write helper writes zero to GP0, leaving the cause uncleared,
and can acknowledge unrelated pending causes through the read value.
Write only the GP0 bit directly, matching the interrupt handler's W1C
acknowledgment convention.
Fixes: 88c6216a52ea ("Bluetooth: btintel_pcie: Suspend/Resume: Controller doorbell interrupt handling")
Signed-off-by: Ravindra <ravindra@intel.com>
---
drivers/bluetooth/btintel_pcie.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/drivers/bluetooth/btintel_pcie.c b/drivers/bluetooth/btintel_pcie.c
index 553fa927cf0a..9fda057ca9a1 100644
--- a/drivers/bluetooth/btintel_pcie.c
+++ b/drivers/bluetooth/btintel_pcie.c
@@ -4217,10 +4217,12 @@ static int btintel_pcie_set_dxstate(struct btintel_pcie_data *data, u32 dxstate)
"Timeout (%u ms) on alive interrupt for D%d entry, retry count %d",
dx_intr_timeout_ms, dxstate, retry);
- /* clear gp0 cause */
- btintel_pcie_clr_reg_bits(data,
- BTINTEL_PCIE_CSR_MSIX_HW_INT_CAUSES,
- BTINTEL_PCIE_MSIX_HW_INT_CAUSES_GP0);
+ /* MSIX_HW_INT_CAUSES is W1C. Write only GP0 so other
+ * pending causes are not acknowledged here.
+ */
+ btintel_pcie_wr_reg32(data,
+ BTINTEL_PCIE_CSR_MSIX_HW_INT_CAUSES,
+ BTINTEL_PCIE_MSIX_HW_INT_CAUSES_GP0);
}
/* gp0_received is set at the top of the handler, before the switch on
--
2.43.0
next prev parent reply other threads:[~2026-09-26 8:50 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-26 8:52 [PATCH v4 1/4] Bluetooth: btintel_pcie: fix stale cache in set_dxstate fallback check Ravindra
2026-09-26 8:53 ` [PATCH v4 2/4] Bluetooth: btintel_pcie: fix PM flow for S0ix, S3 and S4 Ravindra
2026-09-26 8:53 ` [PATCH v4 3/4] Bluetooth: btintel_pcie: verify state after alive interrupt Ravindra
2026-09-26 8:53 ` Ravindra [this message]
2026-09-26 14:45 ` [PATCH v4 4/4] Bluetooth: btintel_pcie: clear the GP0 cause with a W1C write Sergey Lebedev
2026-09-27 23:23 ` [v4,1/4] Bluetooth: btintel_pcie: fix stale cache in set_dxstate fallback check bluez.test.bot
2026-09-29 15:10 ` [PATCH v4 1/4] " patchwork-bot+bluetooth
-- strict thread matches above, loose matches on Subject: below --
2026-09-27 15:23 [PATCH v4 4/4] Bluetooth: btintel_pcie: clear the GP0 cause with a W1C write Ravindra
2026-09-29 15:10 ` patchwork-bot+bluetooth
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260926085302.2879093-4-ravindra@intel.com \
--to=ravindra@intel.com \
--cc=chethan.tumkur.narayan@intel.com \
--cc=kiran.k@intel.com \
--cc=linux-bluetooth@vger.kernel.org \
--cc=lsa.uz@pm.me \
--cc=pmenzel@molgen.mpg.de \
--cc=vladimirkondratyev2@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox