On Mon, Jun 17, 2024 at 03:33:54PM +0530, Basavaraj Natikar wrote: > Add support for AMD AE4DMA controller. It performs high-bandwidth > memory to memory and IO copy operation. Device commands are managed > via a circular queue of 'descriptors', each of which specifies source > and destination addresses for copying a single buffer of data. > +++ b/drivers/dma/amd/ae4dma/Kconfig > @@ -0,0 +1,13 @@ > +# SPDX-License-Identifier: GPL-2.0 > +config AMD_AE4DMA > + tristate "AMD AE4DMA Engine" > + depends on X86_64 && PCI Possible "(X86_64 || COMPILE_TEST)"? > +++ b/drivers/dma/amd/ae4dma/ae4dma-pci.c > +static int ae4_get_irqs(struct ae4_device *ae4) > +{ > + struct pt_device *pt = &ae4->pt; > + struct device *dev = pt->dev; > + int ret; > + > + ret = ae4_get_msix_irqs(ae4); > + if (!ret) > + return 0; > + > + /* Couldn't get MSI-X vectors, try MSI */ > + dev_err(dev, "could not enable MSI-X (%d), trying MSI\n", ret); > + ret = ae4_get_msi_irq(ae4); > + if (!ret) > + return 0; Consider pci_alloc_irq_vectors() and pci_free_irq_vectors() here. > + /* Couldn't get MSI interrupt */ > + dev_err(dev, "could not enable MSI (%d)\n", ret); > + > + return ret; > +}