accel/habanalabs/gaudi2: print power-mode changes
authorMoti Haimovski <mhaimovski@habana.ai>
Tue, 22 Aug 2023 12:10:55 +0000 (15:10 +0300)
committerOded Gabbay <ogabbay@kernel.org>
Mon, 9 Oct 2023 09:37:21 +0000 (12:37 +0300)
Print to kernel log any device power mode changes events reported by
the FW.

Signed-off-by: Moti Haimovski <mhaimovski@habana.ai>
Reviewed-by: Oded Gabbay <ogabbay@kernel.org>
Signed-off-by: Oded Gabbay <ogabbay@kernel.org>
drivers/accel/habanalabs/gaudi2/gaudi2.c
drivers/accel/habanalabs/include/gaudi2/gaudi2_async_events.h
drivers/accel/habanalabs/include/gaudi2/gaudi2_async_ids_map_extended.h

index dca19be42d5f6bce020664f832ef445eb6911321..677900e185191aa698ac922769c12f98ec931136 100644 (file)
@@ -7798,6 +7798,7 @@ static inline bool is_info_event(u32 event)
        switch (event) {
        case GAUDI2_EVENT_CPU_CPLD_SHUTDOWN_CAUSE:
        case GAUDI2_EVENT_CPU_FIX_POWER_ENV_S ... GAUDI2_EVENT_CPU_FIX_THERMAL_ENV_E:
+       case GAUDI2_EVENT_ARC_PWR_BRK_ENTRY ... GAUDI2_EVENT_ARC_PWR_RD_MODE3:
 
        /* return in case of NIC status event - these events are received periodically and not as
         * an indication to an error.
@@ -10178,6 +10179,17 @@ static void gaudi2_handle_eqe(struct hl_device *hdev, struct hl_eq_entry *eq_ent
                is_critical = true;
                break;
 
+       case GAUDI2_EVENT_ARC_PWR_BRK_ENTRY:
+       case GAUDI2_EVENT_ARC_PWR_BRK_EXT:
+       case GAUDI2_EVENT_ARC_PWR_RD_MODE0:
+       case GAUDI2_EVENT_ARC_PWR_RD_MODE1:
+       case GAUDI2_EVENT_ARC_PWR_RD_MODE2:
+       case GAUDI2_EVENT_ARC_PWR_RD_MODE3:
+               error_count = GAUDI2_NA_EVENT_CAUSE;
+               dev_info_ratelimited(hdev->dev, "%s event received\n",
+                                       gaudi2_irq_map_table[event_type].name);
+               break;
+
        default:
                if (gaudi2_irq_map_table[event_type].valid) {
                        dev_err_ratelimited(hdev->dev, "Cannot find handler for event %d\n",
index f661068d0c5f5027e704bcbd9ab258326d264b22..a426410139af9faee1f5d7c8713f09e15efbf445 100644 (file)
@@ -959,6 +959,13 @@ enum gaudi2_async_event_id {
        GAUDI2_EVENT_ARC_DCCM_FULL = 1319,
        GAUDI2_EVENT_CPU_FP32_NOT_SUPPORTED = 1320,
        GAUDI2_EVENT_CPU_DEV_RESET_REQ = 1321,
+       GAUDI2_EVENT_ARC_PWR_BRK_ENTRY = 1322,
+       GAUDI2_EVENT_ARC_PWR_BRK_EXT = 1323,
+       GAUDI2_EVENT_ARC_PWR_RD_MODE0 = 1324,
+       GAUDI2_EVENT_ARC_PWR_RD_MODE1 = 1325,
+       GAUDI2_EVENT_ARC_PWR_RD_MODE2 = 1326,
+       GAUDI2_EVENT_ARC_PWR_RD_MODE3 = 1327,
+       GAUDI2_EVENT_ARC_EQ_HEARTBEAT = 1328,
        GAUDI2_EVENT_SIZE,
 };
 
index ad01fc4e99406ecb33e6449ea459cb17b0d354f6..6cb0f615fc3ec3ca8aa971ef615698d16785da21 100644 (file)
@@ -2673,6 +2673,18 @@ static struct gaudi2_async_events_ids_map gaudi2_irq_map_table[] = {
                 .name = "FP32_NOT_SUPPORTED" },
        { .fc_id = 1321, .cpu_id = 627, .valid = 1, .msg = 1, .reset = EVENT_RESET_TYPE_HARD,
                 .name = "DEV_RESET_REQ" },
+       { .fc_id = 1322, .cpu_id = 628, .valid = 1, .msg = 1, .reset = EVENT_RESET_TYPE_NONE,
+                .name = "PWR_BRK_ENTRY" },
+       { .fc_id = 1323, .cpu_id = 629, .valid = 1, .msg = 1, .reset = EVENT_RESET_TYPE_NONE,
+                .name = "PWR_BRK_EXT" },
+       { .fc_id = 1324, .cpu_id = 630, .valid = 1, .msg = 1, .reset = EVENT_RESET_TYPE_NONE,
+                .name = "PWR_RD_MODE0" },
+       { .fc_id = 1325, .cpu_id = 631, .valid = 1, .msg = 1, .reset = EVENT_RESET_TYPE_NONE,
+                .name = "PWR_RD_MODE1" },
+       { .fc_id = 1326, .cpu_id = 632, .valid = 1, .msg = 1, .reset = EVENT_RESET_TYPE_NONE,
+                .name = "PWR_RD_MODE2" },
+       { .fc_id = 1327, .cpu_id = 633, .valid = 1, .msg = 1, .reset = EVENT_RESET_TYPE_NONE,
+                .name = "PWR_RD_MODE3" },
 };
 
 #endif /* __GAUDI2_ASYNC_IDS_MAP_EVENTS_EXT_H_ */