]> www.infradead.org Git - users/hch/misc.git/commitdiff
Bluetooth: btintel_pcie: Trigger device coredump on hardware exception
authorKiran K <kiran.k@intel.com>
Tue, 4 Mar 2025 16:21:35 +0000 (21:51 +0530)
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
Tue, 25 Mar 2025 16:46:08 +0000 (12:46 -0400)
Driver dumps device core dump on firmware exception.

Signed-off-by: Kiran K <kiran.k@intel.com>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
drivers/bluetooth/btintel_pcie.c

index a499bad58b53fa5dcc6ff10c493fcba35fc8f013..f3ab5b41b0507bde11f579aff5ca0e4ca19d0442 100644 (file)
@@ -60,6 +60,7 @@ MODULE_DEVICE_TABLE(pci, btintel_pcie_table);
 #define BTINTEL_PCIE_MAGIC_NUM 0xA5A5A5A5
 
 #define BTINTEL_PCIE_TRIGGER_REASON_USER_TRIGGER       0x17A2
+#define BTINTEL_PCIE_TRIGGER_REASON_FW_ASSERT          0x1E61
 
 /* Alive interrupt context */
 enum {
@@ -1202,6 +1203,11 @@ static void btintel_pcie_msix_hw_exp_handler(struct btintel_pcie_data *data)
 
        if (test_and_set_bit(BTINTEL_PCIE_HWEXP_INPROGRESS, &data->flags))
                return;
+
+       /* Trigger device core dump when there is HW  exception */
+       if (!test_and_set_bit(BTINTEL_PCIE_COREDUMP_INPROGRESS, &data->flags))
+               data->dmp_hdr.trigger_reason = BTINTEL_PCIE_TRIGGER_REASON_FW_ASSERT;
+
        queue_work(data->workqueue, &data->rx_work);
 }