OSDN Git Service

habanalabs: remove dead code in habanalabs_drv.c
authorOded Gabbay <oded.gabbay@gmail.com>
Wed, 8 May 2019 06:55:23 +0000 (09:55 +0300)
committerOded Gabbay <oded.gabbay@gmail.com>
Wed, 8 May 2019 06:55:23 +0000 (09:55 +0300)
This patch removes some dead code that performs checks about variables
with hard-coded values.

The patch also moves the initialization of those variables to a separate
function, that will possibly have different values per ASIC.

Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com>
drivers/misc/habanalabs/habanalabs_drv.c

index 42a8c0b..6f6dbe9 100644 (file)
@@ -172,6 +172,17 @@ close_device:
        return rc;
 }
 
+static void set_driver_behavior_per_device(struct hl_device *hdev)
+{
+       hdev->mmu_enable = 1;
+       hdev->cpu_enable = 1;
+       hdev->fw_loading = 1;
+       hdev->cpu_queues_enable = 1;
+       hdev->heartbeat = 1;
+
+       hdev->reset_pcilink = 0;
+}
+
 /*
  * create_hdev - create habanalabs device instance
  *
@@ -196,29 +207,25 @@ int create_hdev(struct hl_device **dev, struct pci_dev *pdev,
        if (!hdev)
                return -ENOMEM;
 
+       /* First, we must find out which ASIC are we handling. This is needed
+        * to configure the behavior of the driver (kernel parameters)
+        */
+       if (pdev) {
+               hdev->asic_type = get_asic_type(pdev->device);
+               if (hdev->asic_type == ASIC_INVALID) {
+                       dev_err(&pdev->dev, "Unsupported ASIC\n");
+                       rc = -ENODEV;
+                       goto free_hdev;
+               }
+       } else {
+               hdev->asic_type = asic_type;
+       }
+
        hdev->major = hl_major;
        hdev->reset_on_lockup = reset_on_lockup;
-
-       /* Parameters for bring-up - set them to defaults */
-       hdev->mmu_enable = 1;
-       hdev->cpu_enable = 1;
-       hdev->reset_pcilink = 0;
-       hdev->cpu_queues_enable = 1;
-       hdev->fw_loading = 1;
        hdev->pldm = 0;
-       hdev->heartbeat = 1;
-
-       /* If CPU is disabled, no point in loading FW */
-       if (!hdev->cpu_enable)
-               hdev->fw_loading = 0;
 
-       /* If we don't load FW, no need to initialize CPU queues */
-       if (!hdev->fw_loading)
-               hdev->cpu_queues_enable = 0;
-
-       /* If CPU queues not enabled, no way to do heartbeat */
-       if (!hdev->cpu_queues_enable)
-               hdev->heartbeat = 0;
+       set_driver_behavior_per_device(hdev);
 
        if (timeout_locked)
                hdev->timeout_jiffies = msecs_to_jiffies(timeout_locked * 1000);
@@ -228,17 +235,6 @@ int create_hdev(struct hl_device **dev, struct pci_dev *pdev,
        hdev->disabled = true;
        hdev->pdev = pdev; /* can be NULL in case of simulator device */
 
-       if (pdev) {
-               hdev->asic_type = get_asic_type(pdev->device);
-               if (hdev->asic_type == ASIC_INVALID) {
-                       dev_err(&pdev->dev, "Unsupported ASIC\n");
-                       rc = -ENODEV;
-                       goto free_hdev;
-               }
-       } else {
-               hdev->asic_type = asic_type;
-       }
-
        /* Set default DMA mask to 32 bits */
        hdev->dma_mask = 32;