Tested-by: Tom St Denis <tom.stde...@amd.com> Cheers, Tom
On Thu, Oct 3, 2019 at 1:30 PM Alex Deucher <alexdeuc...@gmail.com> wrote: > Check the number of supported vectors and fall back to MSI if > we return or error or 0 MSI-X vectors. > > v2: only allocate one vector. We can't currently use more than > one anyway. > > v3: install the irq on vector 0. > > Signed-off-by: Alex Deucher <alexander.deuc...@amd.com> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c | 17 +++++++++++++---- > 1 file changed, 13 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c > index 50771b2757dc..6f3b03f6224f 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c > @@ -245,11 +245,19 @@ int amdgpu_irq_init(struct amdgpu_device *adev) > adev->irq.msi_enabled = false; > > if (amdgpu_msi_ok(adev)) { > - int nvec = pci_alloc_irq_vectors(adev->pdev, 1, > pci_msix_vec_count(adev->pdev), > - PCI_IRQ_MSI | PCI_IRQ_MSIX); > + int nvec = pci_msix_vec_count(adev->pdev); > + unsigned int flags; > + > + if (nvec <= 0) { > + flags = PCI_IRQ_MSI; > + } else { > + flags = PCI_IRQ_MSI | PCI_IRQ_MSIX; > + } > + /* we only need one vector */ > + nvec = pci_alloc_irq_vectors(adev->pdev, 1, 1, flags); > if (nvec > 0) { > adev->irq.msi_enabled = true; > - dev_dbg(adev->dev, "amdgpu: using MSI.\n"); > + dev_dbg(adev->dev, "amdgpu: using MSI/MSI-X.\n"); > } > } > > @@ -272,7 +280,8 @@ int amdgpu_irq_init(struct amdgpu_device *adev) > INIT_WORK(&adev->irq.ih2_work, amdgpu_irq_handle_ih2); > > adev->irq.installed = true; > - r = drm_irq_install(adev->ddev, adev->ddev->pdev->irq); > + /* Use vector 0 for MSI-X */ > + r = drm_irq_install(adev->ddev, pci_irq_vector(adev->pdev, 0)); > if (r) { > adev->irq.installed = false; > if (!amdgpu_device_has_dc_support(adev)) > -- > 2.20.1 > > _______________________________________________ > amd-gfx mailing list > amd-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/amd-gfx
_______________________________________________ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx