habanalabs: avoid unnecessary error print
authorDani Liberman <dliberman@habana.ai>
Thu, 2 Jun 2022 13:15:03 +0000 (16:15 +0300)
committerOded Gabbay <ogabbay@kernel.org>
Tue, 12 Jul 2022 06:09:23 +0000 (09:09 +0300)
When sending a packet to FW right after it made reset, we will get
packet timeout. Since it is expected behavior, we don't need to
print an error in such case.
Hence, when driver is in hard reset it will avoid from printing error
messages about packet timeout.

Signed-off-by: Dani Liberman <dliberman@habana.ai>
Reviewed-by: Oded Gabbay <ogabbay@kernel.org>
Signed-off-by: Oded Gabbay <ogabbay@kernel.org>
drivers/misc/habanalabs/common/firmware_if.c

index 828a36a..bd66e4f 100644 (file)
@@ -267,7 +267,14 @@ int hl_fw_send_cpu_message(struct hl_device *hdev, u32 hw_queue_id, u32 *msg,
        hl_hw_queue_inc_ci_kernel(hdev, hw_queue_id);
 
        if (rc == -ETIMEDOUT) {
-               dev_err(hdev->dev, "Device CPU packet timeout (0x%x)\n", tmp);
+               /* If FW performed reset just before sending it a packet, we will get a timeout.
+                * This is expected behavior, hence no need for error message.
+                */
+               if (!hl_device_operational(hdev, NULL) && !hdev->reset_info.is_in_soft_reset)
+                       dev_dbg(hdev->dev, "Device CPU packet timeout (0x%x) due to FW reset\n",
+                                       tmp);
+               else
+                       dev_err(hdev->dev, "Device CPU packet timeout (0x%x)\n", tmp);
                hdev->device_cpu_disabled = true;
                goto out;
        }