habanalabs: show unsupported message for GAUDI
authorOded Gabbay <oded.gabbay@gmail.com>
Sat, 21 Mar 2020 08:58:32 +0000 (10:58 +0200)
committerOded Gabbay <oded.gabbay@gmail.com>
Tue, 24 Mar 2020 08:54:17 +0000 (10:54 +0200)
If a GAUDI device is present in the system, display an error message that
it is not supported by the current kernel.

Reviewed-by: Omer Shpigelman <oshpigelman@habana.ai>
Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com>
drivers/misc/habanalabs/habanalabs.h
drivers/misc/habanalabs/habanalabs_drv.c

index 9472da3..31ebcf9 100644 (file)
@@ -424,10 +424,12 @@ struct hl_eq {
  * enum hl_asic_type - supported ASIC types.
  * @ASIC_INVALID: Invalid ASIC type.
  * @ASIC_GOYA: Goya device.
+ * @ASIC_GAUDI: Gaudi device.
  */
 enum hl_asic_type {
        ASIC_INVALID,
-       ASIC_GOYA
+       ASIC_GOYA,
+       ASIC_GAUDI
 };
 
 struct hl_cs_parser;
index 8c342fb..b670859 100644 (file)
@@ -40,12 +40,13 @@ MODULE_PARM_DESC(reset_on_lockup,
 #define PCI_VENDOR_ID_HABANALABS       0x1da3
 
 #define PCI_IDS_GOYA                   0x0001
+#define PCI_IDS_GAUDI                  0x1000
 
 static const struct pci_device_id ids[] = {
        { PCI_DEVICE(PCI_VENDOR_ID_HABANALABS, PCI_IDS_GOYA), },
+       { PCI_DEVICE(PCI_VENDOR_ID_HABANALABS, PCI_IDS_GAUDI), },
        { 0, }
 };
-MODULE_DEVICE_TABLE(pci, ids);
 
 /*
  * get_asic_type - translate device id to asic type
@@ -63,6 +64,9 @@ static enum hl_asic_type get_asic_type(u16 device)
        case PCI_IDS_GOYA:
                asic_type = ASIC_GOYA;
                break;
+       case PCI_IDS_GAUDI:
+               asic_type = ASIC_GAUDI;
+               break;
        default:
                asic_type = ASIC_INVALID;
                break;
@@ -263,6 +267,11 @@ int create_hdev(struct hl_device **dev, struct pci_dev *pdev,
                        dev_err(&pdev->dev, "Unsupported ASIC\n");
                        rc = -ENODEV;
                        goto free_hdev;
+               } else if (hdev->asic_type == ASIC_GAUDI) {
+                       dev_err(&pdev->dev,
+                               "GAUDI is not supported by the current kernel\n");
+                       rc = -ENODEV;
+                       goto free_hdev;
                }
        } else {
                hdev->asic_type = asic_type;