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 828a36af5b14909598c5d1b85dfff98f1c5a8009..bd66e4f8415607876060b8060edbb7eeb334dbeb 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;
        }