habanalabs/gaudi: use graceful hard reset for F/W events
authorTomer Tayar <ttayar@habana.ai>
Fri, 30 Sep 2022 13:43:47 +0000 (16:43 +0300)
committerOded Gabbay <ogabbay@kernel.org>
Wed, 23 Nov 2022 14:13:43 +0000 (16:13 +0200)
Use graceful hard reset for F/W events on Gaudi device that require a
device reset.

Signed-off-by: Tomer Tayar <ttayar@habana.ai>
Reviewed-by: Oded Gabbay <ogabbay@kernel.org>
Signed-off-by: Oded Gabbay <ogabbay@kernel.org>
drivers/misc/habanalabs/gaudi/gaudi.c

index 337123f..3dfb9ec 100644 (file)
@@ -7942,16 +7942,14 @@ reset_device:
                reset_required = false;
        }
 
-       /* despite reset doesn't execute. a notification on
-        * occurred event needs to be sent here
-        */
-       if (event_mask)
-               hl_notifier_event_send_all(hdev, event_mask);
-
-       if (reset_required)
-               hl_device_reset(hdev, flags);
-       else
+       if (reset_required) {
+               hl_device_cond_reset(hdev, flags, event_mask);
+       } else {
                hl_fw_unmask_irq(hdev, event_type);
+               /* Notification on occurred event needs to be sent although reset is not executed */
+               if (event_mask)
+                       hl_notifier_event_send_all(hdev, event_mask);
+       }
 }
 
 static void *gaudi_get_events_stat(struct hl_device *hdev, bool aggregate, u32 *size)