Bluetooth: btintel_pcie: treat boot stage bit 12 as warning
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.
---
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
@@ -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
@@ -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
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
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