habanalabs: Handle HW_IP_INFO if device disabled or in reset
authorTomer Tayar <ttayar@habana.ai>
Thu, 8 Aug 2019 12:30:22 +0000 (12:30 +0000)
committerOded Gabbay <oded.gabbay@gmail.com>
Thu, 5 Sep 2019 11:55:27 +0000 (14:55 +0300)
The HW IP information is relevant even if the device is disabled or in
reset, so always handle the corresponding INFO IOCTL opcode.

Signed-off-by: Tomer Tayar <ttayar@habana.ai>
Reviewed-by: Oded Gabbay <oded.gabbay@gmail.com>
Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com>
drivers/misc/habanalabs/habanalabs_ioctl.c

index 6351fbf..1458b95 100644 (file)
@@ -204,10 +204,21 @@ static int _hl_info_ioctl(struct hl_fpriv *hpriv, void *data,
        struct hl_device *hdev = hpriv->hdev;
        int rc;
 
-       /* We want to return device status even if it disabled or in reset */
-       if (args->op == HL_INFO_DEVICE_STATUS)
+       /*
+        * Information is returned for the following opcodes even if the device
+        * is disabled or in reset.
+        */
+       switch (args->op) {
+       case HL_INFO_HW_IP_INFO:
+               return hw_ip_info(hdev, args);
+
+       case HL_INFO_DEVICE_STATUS:
                return device_status_info(hdev, args);
 
+       default:
+               break;
+       }
+
        if (hl_device_disabled_or_in_reset(hdev)) {
                dev_warn_ratelimited(dev,
                        "Device is %s. Can't execute INFO IOCTL\n",
@@ -216,10 +227,6 @@ static int _hl_info_ioctl(struct hl_fpriv *hpriv, void *data,
        }
 
        switch (args->op) {
-       case HL_INFO_HW_IP_INFO:
-               rc = hw_ip_info(hdev, args);
-               break;
-
        case HL_INFO_HW_EVENTS:
                rc = hw_events_info(hdev, args);
                break;