accel/qaic: Add AIC080 support
authorJeffrey Hugo <quic_jhugo@quicinc.com>
Fri, 4 Oct 2024 19:52:09 +0000 (13:52 -0600)
committerJeffrey Hugo <quic_jhugo@quicinc.com>
Sat, 12 Oct 2024 20:51:04 +0000 (14:51 -0600)
Add basic support for the new AIC080 product. The PCIe Device ID is
0xa080. AIC080 is a lower cost, lower performance SKU variant of AIC100.
From the qaic perspective, it is the same as AIC100.

Reviewed-by: Troy Hanson <quic_thanson@quicinc.com>
Signed-off-by: Jeffrey Hugo <quic_jhugo@quicinc.com>
Reviewed-by: Jacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20241004195209.3910996-1-quic_jhugo@quicinc.com
Documentation/accel/qaic/aic080.rst [new file with mode: 0644]
Documentation/accel/qaic/index.rst
drivers/accel/qaic/qaic_drv.c

diff --git a/Documentation/accel/qaic/aic080.rst b/Documentation/accel/qaic/aic080.rst
new file mode 100644 (file)
index 0000000..d563771
--- /dev/null
@@ -0,0 +1,14 @@
+.. SPDX-License-Identifier: GPL-2.0-only
+
+===============================
+ Qualcomm Cloud AI 80 (AIC080)
+===============================
+
+Overview
+========
+
+The Qualcomm Cloud AI 80/AIC080 family of products are a derivative of AIC100.
+The number of NSPs and clock rates are reduced to fit within resource
+constrained solutions. The PCIe Product ID is 0xa080.
+
+As a derivative product, all AIC100 documentation applies.
index ad19b88..967b9dd 100644 (file)
@@ -10,4 +10,5 @@ accelerator cards.
 .. toctree::
 
    qaic
+   aic080
    aic100
index bf10156..f139c56 100644 (file)
@@ -34,6 +34,7 @@
 
 MODULE_IMPORT_NS(DMA_BUF);
 
+#define PCI_DEV_AIC080                 0xa080
 #define PCI_DEV_AIC100                 0xa100
 #define QAIC_NAME                      "qaic"
 #define QAIC_DESC                      "Qualcomm Cloud AI Accelerators"
@@ -365,7 +366,7 @@ static struct qaic_device *create_qdev(struct pci_dev *pdev, const struct pci_de
                return NULL;
 
        qdev->dev_state = QAIC_OFFLINE;
-       if (id->device == PCI_DEV_AIC100) {
+       if (id->device == PCI_DEV_AIC080 || id->device == PCI_DEV_AIC100) {
                qdev->num_dbc = 16;
                qdev->dbc = devm_kcalloc(dev, qdev->num_dbc, sizeof(*qdev->dbc), GFP_KERNEL);
                if (!qdev->dbc)
@@ -607,6 +608,7 @@ static struct mhi_driver qaic_mhi_driver = {
 };
 
 static const struct pci_device_id qaic_ids[] = {
+       { PCI_DEVICE(PCI_VENDOR_ID_QCOM, PCI_DEV_AIC080), },
        { PCI_DEVICE(PCI_VENDOR_ID_QCOM, PCI_DEV_AIC100), },
        { }
 };