habanalabs: update SyncManager interrupt handling
authorOded Gabbay <ogabbay@kernel.org>
Tue, 26 Jan 2021 20:56:56 +0000 (22:56 +0200)
committerOded Gabbay <ogabbay@kernel.org>
Wed, 27 Jan 2021 19:03:51 +0000 (21:03 +0200)
The firmware provides more information about SyncManager events.
Adjust the code to the latest firmware interface file.

Signed-off-by: Oded Gabbay <ogabbay@kernel.org>
drivers/misc/habanalabs/gaudi/gaudi.c
drivers/misc/habanalabs/include/common/cpucp_if.h

index 1348016309e35ae2b8fd479aec2b52f0b56301ac..a9bd5aef6c022433264b63e21ed280a6952506bf 100644 (file)
@@ -6860,24 +6860,24 @@ static void gaudi_print_sm_sei_info(struct hl_device *hdev, u16 event_type,
        u32 index = event_type - GAUDI_EVENT_DMA_IF_SEI_0;
 
        switch (sei_data->sei_cause) {
-       case GAUDI_SM_SEI_SO_OVERFLOW:
+       case SM_SEI_SO_OVERFLOW:
                dev_err(hdev->dev,
                        "SM %u SEI Error: SO %u overflow/underflow",
-                       index, le16_to_cpu(sei_data->sei_log));
+                       index, le32_to_cpu(sei_data->sei_log));
                break;
-       case GAUDI_SM_SEI_LBW_4B_UNALIGNED:
+       case SM_SEI_LBW_4B_UNALIGNED:
                dev_err(hdev->dev,
                        "SM %u SEI Error: Unaligned 4B LBW access, monitor agent address low - %#x",
-                       index, le16_to_cpu(sei_data->sei_log));
+                       index, le32_to_cpu(sei_data->sei_log));
                break;
-       case GAUDI_SM_SEI_AXI_RESPONSE_ERR:
+       case SM_SEI_AXI_RESPONSE_ERR:
                dev_err(hdev->dev,
                        "SM %u SEI Error: AXI ID %u response error",
-                       index, le16_to_cpu(sei_data->sei_log));
+                       index, le32_to_cpu(sei_data->sei_log));
                break;
        default:
                dev_err(hdev->dev, "Unknown SM SEI cause %u",
-                               le16_to_cpu(sei_data->sei_log));
+                               le32_to_cpu(sei_data->sei_log));
                break;
        }
 }
index d75d1077461b32fa19021a9a187da90e38598f65..b77c1c16c32cf49acbc0450ef948bc88a49274a3 100644 (file)
@@ -58,10 +58,17 @@ struct hl_eq_ecc_data {
        __u8 pad[7];
 };
 
+enum hl_sm_sei_cause {
+       SM_SEI_SO_OVERFLOW,
+       SM_SEI_LBW_4B_UNALIGNED,
+       SM_SEI_AXI_RESPONSE_ERR
+};
+
 struct hl_eq_sm_sei_data {
-       __le16 sei_log;
+       __le32 sei_log;
+       /* enum hl_sm_sei_cause */
        __u8 sei_cause;
-       __u8 pad[5];
+       __u8 pad[3];
 };
 
 struct hl_eq_entry {