diff options
| author | Konstantin Sinyuk <konstantin.sinyuk@intel.com> | 2024-08-15 15:24:24 +0300 |
|---|---|---|
| committer | Koby Elbaz <koby.elbaz@intel.com> | 2025-09-25 09:09:29 +0300 |
| commit | 0529b191ac9c907225593e12a68f1718a60b2fba (patch) | |
| tree | 1bd0fd37f3273096a5acbb367cc52e404758090c | |
| parent | 083c53a85490b4cf5ed63876b09c067358085e20 (diff) | |
accel/habanalabs/gaudi2: use the CPLD_SHUTDOWN event handler
After CPLD shutdown event the device is not usable anymore. The common
CPLD_SHUTDOWN event handler disables any subsequent device access.
Signed-off-by: Konstantin Sinyuk <konstantin.sinyuk@intel.com>
Reviewed-by: Koby Elbaz <koby.elbaz@intel.com>
Signed-off-by: Koby Elbaz <koby.elbaz@intel.com>
| -rw-r--r-- | drivers/accel/habanalabs/common/device.c | 2 | ||||
| -rw-r--r-- | drivers/accel/habanalabs/gaudi2/gaudi2.c | 4 |
2 files changed, 2 insertions, 4 deletions
diff --git a/drivers/accel/habanalabs/common/device.c b/drivers/accel/habanalabs/common/device.c index c6830c8026ac..999c92d7036e 100644 --- a/drivers/accel/habanalabs/common/device.c +++ b/drivers/accel/habanalabs/common/device.c @@ -2965,6 +2965,4 @@ void hl_eq_cpld_shutdown_event_handle(struct hl_device *hdev, u16 event_id, u64 /* Avoid any new accesses to the H/W */ hdev->disabled = true; hdev->cpld_shutdown = true; - hl_cn_hard_reset_prepare(hdev); - hl_cn_stop(hdev); } diff --git a/drivers/accel/habanalabs/gaudi2/gaudi2.c b/drivers/accel/habanalabs/gaudi2/gaudi2.c index d8f40f2c967c..72bfc5e639e4 100644 --- a/drivers/accel/habanalabs/gaudi2/gaudi2.c +++ b/drivers/accel/habanalabs/gaudi2/gaudi2.c @@ -5184,7 +5184,7 @@ static void gaudi2_halt_engines(struct hl_device *hdev, bool hard_reset, bool fw else wait_timeout_ms = GAUDI2_RESET_WAIT_MSEC; - if (fw_reset) + if (fw_reset || hdev->cpld_shutdown) goto skip_engines; gaudi2_stop_dma_qmans(hdev); @@ -10522,7 +10522,7 @@ static void gaudi2_handle_eqe(struct hl_device *hdev, struct hl_eq_entry *eq_ent dev_err(hdev->dev, "CPLD shutdown event, reset reason: 0x%llx\n", le64_to_cpu(eq_entry->data[0])); error_count = GAUDI2_NA_EVENT_CAUSE; - event_mask |= HL_NOTIFIER_EVENT_GENERAL_HW_ERR; + hl_eq_cpld_shutdown_event_handle(hdev, event_type, &event_mask); break; case GAUDI2_EVENT_CPU_PKT_SANITY_FAILED: |
