"Data Corruption"
};
-static const unsigned long xe_hw_error_map[] = {
- [XE_GT_ERROR] = DRM_XE_RAS_ERR_COMP_CORE_COMPUTE,
- [XE_SOC_ERROR] = DRM_XE_RAS_ERR_COMP_SOC_INTERNAL,
-};
-
enum gt_vector_regs {
ERR_STAT_GT_VECTOR0 = 0,
ERR_STAT_GT_VECTOR1,
return DRM_XE_RAS_ERR_SEV_UNCORRECTABLE;
}
+static inline u32 err_src_to_id(u32 err_bit)
+{
+ switch (err_bit) {
+ case XE_GT_ERROR:
+ return DRM_XE_RAS_ERR_COMP_CORE_COMPUTE;
+ case XE_SOC_ERROR:
+ return DRM_XE_RAS_ERR_COMP_SOC_INTERNAL;
+ default:
+ return 0;
+ }
+}
+
static const char * const pvc_master_global_err_reg[] = {
[0 ... 1] = "Undefined",
[2] = "HBM SS0: Channel0",
const char *name;
u32 error_id;
- /* Check error bit is within bounds */
- if (err_bit >= ARRAY_SIZE(xe_hw_error_map))
- break;
-
- error_id = xe_hw_error_map[err_bit];
-
- /* Check error component is within max */
- if (!error_id || error_id >= DRM_XE_RAS_ERR_COMP_MAX)
+ error_id = err_src_to_id(err_bit);
+ if (!error_id)
continue;
name = info[error_id].name;