Reviewed-by: Jacek Lawrynowicz <jacek.lawrynowicz@xxxxxxxxxxxxxxx> On 10/4/2024 9:52 PM, Jeffrey Hugo wrote: > 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@xxxxxxxxxxx> > Signed-off-by: Jeffrey Hugo <quic_jhugo@xxxxxxxxxxx> > --- > Documentation/accel/qaic/aic080.rst | 14 ++++++++++++++ > Documentation/accel/qaic/index.rst | 1 + > drivers/accel/qaic/qaic_drv.c | 4 +++- > 3 files changed, 18 insertions(+), 1 deletion(-) > create mode 100644 Documentation/accel/qaic/aic080.rst > > diff --git a/Documentation/accel/qaic/aic080.rst b/Documentation/accel/qaic/aic080.rst > new file mode 100644 > index 000000000000..d563771ea6ce > --- /dev/null > +++ b/Documentation/accel/qaic/aic080.rst > @@ -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. > diff --git a/Documentation/accel/qaic/index.rst b/Documentation/accel/qaic/index.rst > index ad19b88d1a66..967b9dd8bace 100644 > --- a/Documentation/accel/qaic/index.rst > +++ b/Documentation/accel/qaic/index.rst > @@ -10,4 +10,5 @@ accelerator cards. > .. toctree:: > > qaic > + aic080 > aic100 > diff --git a/drivers/accel/qaic/qaic_drv.c b/drivers/accel/qaic/qaic_drv.c > index bf10156c334e..f139c564eadf 100644 > --- a/drivers/accel/qaic/qaic_drv.c > +++ b/drivers/accel/qaic/qaic_drv.c > @@ -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), }, > { } > };