From: Ravindra <ravindra@intel.com>
To: linux-bluetooth@vger.kernel.org
Cc: lsa.uz@pm.me, pmenzel@molgen.mpg.de, marcel@holtmann.org,
luiz.dentz@gmail.com, kiran.k@intel.com,
chethan.tumkur.narayan@intel.com, linux-kernel@vger.kernel.org,
Ravindra <ravindra@intel.com>
Subject: [PATCH v6 4/4] Bluetooth: btintel_pcie: clear the GP0 cause with a W1C write
Date: Mon, 28 Sep 2026 22:40:03 +0530 [thread overview]
Message-ID: <20260928171003.2925480-5-ravindra@intel.com> (raw)
In-Reply-To: <20260928171003.2925480-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>
Tested-by: Sergey Lebedev <lsa.uz@pm.me>
Reviewed-by: Sergey Lebedev <lsa.uz@pm.me>
---
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 a5b0576e922c..9d3b5adfa847 100644
--- a/drivers/bluetooth/btintel_pcie.c
+++ b/drivers/bluetooth/btintel_pcie.c
@@ -4222,10 +4222,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-28 17:07 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-28 17:09 [PATCH v6 0/4] Bluetooth: btintel_pcie: fix D-state transitions and PM flows Ravindra
2026-09-28 17:10 ` [PATCH v6 1/4] Bluetooth: btintel_pcie: fix stale cache in set_dxstate fallback check Ravindra
2026-09-28 17:10 ` [PATCH v6 2/4] Bluetooth: btintel_pcie: fix PM flow for S0ix, S3 and S4 Ravindra
2026-09-28 17:10 ` [PATCH v6 3/4] Bluetooth: btintel_pcie: verify and serialize D-state transitions Ravindra
2026-09-28 17:10 ` Ravindra [this message]
2026-09-28 21:14 ` [PATCH v6 0/4] Bluetooth: btintel_pcie: fix D-state transitions and PM flows Sergey Lebedev
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=20260928171003.2925480-5-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=linux-kernel@vger.kernel.org \
--cc=lsa.uz@pm.me \
--cc=luiz.dentz@gmail.com \
--cc=marcel@holtmann.org \
--cc=pmenzel@molgen.mpg.de \
/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
all inboxes | Powered by JetHome®