Skip to contentSkip to conversation

Bluetooth: btintel_pcie: treat boot stage bit 12 as warning

PATCH Applied Kiran K 3 participants 3 messages Apr 20 Bluetooth drivers

lore
Share & tools
lore

Kiran K

author
#0 lore raw

PATCH v2 1/1 Bluetooth: btintel_pcie: treat boot stage bit 12 as warning

From: Sai Teja Aluvala <[email protected]>

CSR boot stage register bit 12 is documented as a device warning, not a fatal error. Rename the bit definition accordingly and stop including it in btintel_pcie_in_error().

This keeps warning-only boot stage values from being classified as errors while preserving abort-handler state as the actual error condition.

Fixes 190377500fde ("Bluetooth: btintel_pcie: Dump debug registers on error")

---
v2: - Add warning log in btintel_pcie_in_error() when bit 12 is set,
including the boot_stage register value for diagnostics
- Add warning log in btintel_pcie_dump_debug_registers() to cover paths that update boot_stage_cache without going through btintel_pcie_in_error() (gp1 handler, hw_error, TX timeout)
- Use consistent "(boot_stage: 0x%8.8x)" format across all boot_stage log messages

 drivers/bluetooth/btintel_pcie.c | 13 ++++++++++---
 drivers/bluetooth/btintel_pcie.h |  2 +-
 2 files changed, 11 insertions(+), 4 deletions(-)
drivers/bluetooth/btintel_pcie.c +10 -3
index 076beb45c410..fda474406003 100644
@@ -301,6 +301,9 @@ static inline void btintel_pcie_dump_debug_registers(struct hci_dev *hdev)
 	skb_put_data(skb, buf, strlen(buf));
 	data->boot_stage_cache = reg;
 
+	if (reg & BTINTEL_PCIE_CSR_BOOT_STAGE_DEVICE_WARNING)
+		bt_dev_warn(hdev, "Controller device warning (boot_stage: 0x%8.8x)", reg);
+
 	reg = btintel_pcie_rd_reg32(data, BTINTEL_PCIE_CSR_IPC_STATUS_REG);
 	snprintf(buf, sizeof(buf), "ipc status: 0x%8.8x", reg);
 	skb_put_data(skb, buf, strlen(buf));
@@ -892,8 +895,11 @@ static inline bool btintel_pcie_in_lockdown(struct btintel_pcie_data *data)
 
 static inline bool btintel_pcie_in_error(struct btintel_pcie_data *data)
 {
-	return (data->boot_stage_cache & BTINTEL_PCIE_CSR_BOOT_STAGE_DEVICE_ERR) ||
-		(data->boot_stage_cache & BTINTEL_PCIE_CSR_BOOT_STAGE_ABORT_HANDLER);
+	if (data->boot_stage_cache & BTINTEL_PCIE_CSR_BOOT_STAGE_DEVICE_WARNING)
+		bt_dev_warn(data->hdev, "Controller device warning (boot_stage: 0x%8.8x)",
+			    data->boot_stage_cache);
+
+	return	data->boot_stage_cache & BTINTEL_PCIE_CSR_BOOT_STAGE_ABORT_HANDLER;
 }
 
 static void btintel_pcie_msix_gp1_handler(struct btintel_pcie_data *data)
@@ -926,7 +932,8 @@ static void btintel_pcie_msix_gp0_handler(struct btintel_pcie_data *data)
 		data->img_resp_cache = reg;
 
 	if (btintel_pcie_in_error(data)) {
-		bt_dev_err(data->hdev, "Controller in error state");
+		bt_dev_err(data->hdev, "Controller in error state (boot_stage: 0x%8.8x)",
+			   data->boot_stage_cache);
 		btintel_pcie_dump_debug_registers(data->hdev);
 		return;
 	}
drivers/bluetooth/btintel_pcie.h +1 -1
index d5b6d5121548..2db85f71b2f8 100644
@@ -48,7 +48,7 @@
 #define BTINTEL_PCIE_CSR_BOOT_STAGE_OPFW		(BIT(2))
 #define BTINTEL_PCIE_CSR_BOOT_STAGE_ROM_LOCKDOWN	(BIT(10))
 #define BTINTEL_PCIE_CSR_BOOT_STAGE_IML_LOCKDOWN	(BIT(11))
-#define BTINTEL_PCIE_CSR_BOOT_STAGE_DEVICE_ERR		(BIT(12))
+#define BTINTEL_PCIE_CSR_BOOT_STAGE_DEVICE_WARNING	(BIT(12))
 #define BTINTEL_PCIE_CSR_BOOT_STAGE_ABORT_HANDLER	(BIT(13))
 #define BTINTEL_PCIE_CSR_BOOT_STAGE_DEVICE_HALTED	(BIT(14))
 #define BTINTEL_PCIE_CSR_BOOT_STAGE_MAC_ACCESS_ON	(BIT(16))
Signature · 1 line
2.53.0
#1 lore raw

This is automated email and please do not reply to this email!

Dear submitter,

Thank you for submitting the patches to the linux bluetooth mailing list. This is a CI test results with your patch series:
PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=1083445

---Test result---

Test Summary:

CheckPatch                    PASS      0.97 seconds
GitLint                       PASS      0.35 seconds
SubjectPrefix                 PASS      0.14 seconds
BuildKernel                   PASS      24.78 seconds
CheckAllWarning               PASS      27.12 seconds
CheckSparse                   PASS      26.03 seconds
BuildKernel32                 PASS      24.11 seconds
TestRunnerSetup               PASS      520.07 seconds
IncrementalBuild              PASS      23.10 seconds

https://github.com/bluez/bluetooth-next/pull/106

---
Regards,
Linux Bluetooth

#2 lore raw
In reply to Kiran K
This patch was applied to bluetooth/bluetooth-next.git (master) by Luiz Augusto von Dentz <[email protected]>:

Hello:

This patch was applied to bluetooth/bluetooth-next.git (master) by Luiz Augusto von Dentz <[email protected]>:

Quoted 11 lines · On Mon, 20 Apr 2026 23:07:35 +0530 you wrote:

From: Sai Teja Aluvala <[email protected]>

CSR boot stage register bit 12 is documented as a device warning, not a fatal error. Rename the bit definition accordingly and stop including it in btintel_pcie_in_error().

This keeps warning-only boot stage values from being classified as errors while preserving abort-handler state as the actual error condition.

[...]

Here is the summary with links:
- [v2] Bluetooth: btintel_pcie: treat boot stage bit 12 as warning
https://git.kernel.org/bluetooth/bluetooth-next/c/dbcf6151ff1e

You are awesome, thank you!

Signature · 2 lines
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html