summaryrefslogtreecommitdiffstats
path: root/drivers/misc
diff options
context:
space:
mode:
authorOded Gabbay <ogabbay@kernel.org>2021-01-26 21:56:56 +0100
committerOded Gabbay <ogabbay@kernel.org>2021-01-27 20:03:51 +0100
commit7838504171d910a0934c0b4043386a471309649e (patch)
tree7e9e36364fab1e59dd2177a5ad97d80fb685fdae /drivers/misc
parenthabanalabs: fix ETR security issue (diff)
downloadlinux-7838504171d910a0934c0b4043386a471309649e.tar.xz
linux-7838504171d910a0934c0b4043386a471309649e.zip
habanalabs: update SyncManager interrupt handling
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>
Diffstat (limited to 'drivers/misc')
-rw-r--r--drivers/misc/habanalabs/gaudi/gaudi.c14
-rw-r--r--drivers/misc/habanalabs/include/common/cpucp_if.h11
2 files changed, 16 insertions, 9 deletions
diff --git a/drivers/misc/habanalabs/gaudi/gaudi.c b/drivers/misc/habanalabs/gaudi/gaudi.c
index 1348016309e3..a9bd5aef6c02 100644
--- a/drivers/misc/habanalabs/gaudi/gaudi.c
+++ b/drivers/misc/habanalabs/gaudi/gaudi.c
@@ -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;
}
}
diff --git a/drivers/misc/habanalabs/include/common/cpucp_if.h b/drivers/misc/habanalabs/include/common/cpucp_if.h
index d75d1077461b..b77c1c16c32c 100644
--- a/drivers/misc/habanalabs/include/common/cpucp_if.h
+++ b/drivers/misc/habanalabs/include/common/cpucp_if.h
@@ -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 {