mirror of
https://github.com/torvalds/linux.git
synced 2026-11-13 05:04:29 +01:00
drm/xe: Handle PUNIT errors by requesting cold-reset recovery
When PUNIT (power management unit) errors are detected that persist across warm resets, mark the device as wedged with DRM_WEDGE_RECOVERY_COLD_RESET and notify userspace that a complete device power cycle is required to restore normal operation. Signed-off-by: Mallesh Koujalagi <mallesh.koujalagi@intel.com> Reviewed-by: Raag Jadav <raag.jadav@intel.com> Link: https://patch.msgid.link/20260805071152.1225416-9-mallesh.koujalagi@intel.com Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
This commit is contained in:
parent
048364a21a
commit
9b00f61536
|
|
@ -306,6 +306,12 @@ static u8 handle_core_compute_errors(struct xe_ras_error_array *arr)
|
|||
return XE_RAS_RECOVERY_ACTION_RECOVERED;
|
||||
}
|
||||
|
||||
static void punit_error_handler(struct xe_device *xe)
|
||||
{
|
||||
xe_device_set_wedged_method(xe, DRM_WEDGE_RECOVERY_COLD_RESET);
|
||||
xe_device_declare_wedged(xe);
|
||||
}
|
||||
|
||||
static u8 handle_soc_internal_errors(struct xe_device *xe, struct xe_ras_error_array *arr)
|
||||
{
|
||||
struct xe_ras_soc_error *info = (void *)arr->details;
|
||||
|
|
@ -337,7 +343,7 @@ static u8 handle_soc_internal_errors(struct xe_device *xe, struct xe_ras_error_a
|
|||
xe_err(xe, "[RAS]: PUNIT %s detected: 0x%x\n",
|
||||
sev_to_str(counter->common.severity),
|
||||
ieh_error->global_error_status);
|
||||
/* TODO: Add PUNIT error handling */
|
||||
punit_error_handler(xe);
|
||||
return XE_RAS_RECOVERY_ACTION_DISCONNECT;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user