* [PATCH 07/15] drm/amdgpu: use PCI_IRQ_MSI_TYPES where appropriate @ 2020-06-02 9:20 Piotr Stankiewicz 2020-06-02 9:49 ` Andy Shevchenko 2020-06-02 13:35 ` Ruhl, Michael J 0 siblings, 2 replies; 9+ messages in thread From: Piotr Stankiewicz @ 2020-06-02 9:20 UTC (permalink / raw) To: Alex Deucher, Christian König, David Zhou, David Airlie, Daniel Vetter Cc: Piotr Stankiewicz, dri-devel, amd-gfx, linux-kernel Seeing as there is shorthand available to use when asking for any type of interrupt, or any type of message signalled interrupt, leverage it. Signed-off-by: Piotr Stankiewicz <piotr.stankiewicz@intel.com> Reviewed-by: Andy Shevchenko <andriy.shevchenko@intel.com> --- drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c index 5ed4227f304b..6dbe173a9fd4 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c @@ -251,11 +251,11 @@ int amdgpu_irq_init(struct amdgpu_device *adev) int nvec = pci_msix_vec_count(adev->pdev); unsigned int flags; - if (nvec <= 0) { + if (nvec > 0) + flags = PCI_IRQ_MSI_TYPES; + else 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) { -- 2.17.2 _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 07/15] drm/amdgpu: use PCI_IRQ_MSI_TYPES where appropriate 2020-06-02 9:20 [PATCH 07/15] drm/amdgpu: use PCI_IRQ_MSI_TYPES where appropriate Piotr Stankiewicz @ 2020-06-02 9:49 ` Andy Shevchenko 2020-06-02 9:57 ` Stankiewicz, Piotr 2020-06-02 13:35 ` Ruhl, Michael J 1 sibling, 1 reply; 9+ messages in thread From: Andy Shevchenko @ 2020-06-02 9:49 UTC (permalink / raw) To: Piotr Stankiewicz Cc: David Airlie, Linux Kernel Mailing List, amd-gfx, dri-devel, Alex Deucher, Christian König On Tue, Jun 2, 2020 at 12:24 PM Piotr Stankiewicz <piotr.stankiewicz@intel.com> wrote: > > Seeing as there is shorthand available to use when asking for any type > of interrupt, or any type of message signalled interrupt, leverage it. > > Signed-off-by: Piotr Stankiewicz <piotr.stankiewicz@intel.com> > Reviewed-by: Andy Shevchenko <andriy.shevchenko@intel.com> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c > index 5ed4227f304b..6dbe173a9fd4 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c > @@ -251,11 +251,11 @@ int amdgpu_irq_init(struct amdgpu_device *adev) > int nvec = pci_msix_vec_count(adev->pdev); > unsigned int flags; > > - if (nvec <= 0) { > + if (nvec > 0) > + flags = PCI_IRQ_MSI_TYPES; > + else > 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); I'm not sure if you have seen my last comment internally about this patch. I don't understand why we need these pci_msix_vec_count() followed by conditional at all. Perhaps we may simple drop all these and supply flag directly? But OTOH, I don't know the initial motivation, so, the above patch is non-intrusive and keeps original logic. > if (nvec > 0) { > -- > 2.17.2 > -- With Best Regards, Andy Shevchenko _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 9+ messages in thread
* RE: [PATCH 07/15] drm/amdgpu: use PCI_IRQ_MSI_TYPES where appropriate 2020-06-02 9:49 ` Andy Shevchenko @ 2020-06-02 9:57 ` Stankiewicz, Piotr 2020-06-02 9:59 ` Andy Shevchenko 0 siblings, 1 reply; 9+ messages in thread From: Stankiewicz, Piotr @ 2020-06-02 9:57 UTC (permalink / raw) To: Andy Shevchenko Cc: David Airlie, Linux Kernel Mailing List, amd-gfx, dri-devel, Alex Deucher, Christian König > -----Original Message----- > From: Andy Shevchenko <andy.shevchenko@gmail.com> > Sent: Tuesday, June 2, 2020 11:49 AM > To: Stankiewicz, Piotr <piotr.stankiewicz@intel.com> > Cc: Alex Deucher <alexander.deucher@amd.com>; Christian König > <christian.koenig@amd.com>; David Zhou <David1.Zhou@amd.com>; David > Airlie <airlied@linux.ie>; Daniel Vetter <daniel@ffwll.ch>; amd- > gfx@lists.freedesktop.org; dri-devel <dri-devel@lists.freedesktop.org>; Linux > Kernel Mailing List <linux-kernel@vger.kernel.org> > Subject: Re: [PATCH 07/15] drm/amdgpu: use PCI_IRQ_MSI_TYPES where > appropriate > > On Tue, Jun 2, 2020 at 12:24 PM Piotr Stankiewicz > <piotr.stankiewicz@intel.com> wrote: > > > > Seeing as there is shorthand available to use when asking for any type > > of interrupt, or any type of message signalled interrupt, leverage it. > > > > Signed-off-by: Piotr Stankiewicz <piotr.stankiewicz@intel.com> > > Reviewed-by: Andy Shevchenko <andriy.shevchenko@intel.com> > > --- > > drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c | 8 ++++---- > > 1 file changed, 4 insertions(+), 4 deletions(-) > > > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c > > index 5ed4227f304b..6dbe173a9fd4 100644 > > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c > > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c > > @@ -251,11 +251,11 @@ int amdgpu_irq_init(struct amdgpu_device *adev) > > int nvec = pci_msix_vec_count(adev->pdev); > > unsigned int flags; > > > > - if (nvec <= 0) { > > + if (nvec > 0) > > + flags = PCI_IRQ_MSI_TYPES; > > + else > > 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); > > I'm not sure if you have seen my last comment internally about this patch. > > I don't understand why we need these pci_msix_vec_count() followed by > conditional at all. > Perhaps we may simple drop all these and supply flag directly? > > But OTOH, I don't know the initial motivation, so, the above patch is > non-intrusive and keeps original logic. > Sorry, I must have misunderstood or missed that comment. I am happy to do a V2 if dropping the conditional is preferable. > > if (nvec > 0) { > > -- > > 2.17.2 > > > > > -- > With Best Regards, > Andy Shevchenko BR, Piotr Stankiewicz _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 07/15] drm/amdgpu: use PCI_IRQ_MSI_TYPES where appropriate 2020-06-02 9:57 ` Stankiewicz, Piotr @ 2020-06-02 9:59 ` Andy Shevchenko 0 siblings, 0 replies; 9+ messages in thread From: Andy Shevchenko @ 2020-06-02 9:59 UTC (permalink / raw) To: Stankiewicz, Piotr Cc: David Airlie, Linux Kernel Mailing List, amd-gfx, dri-devel, Alex Deucher, Christian König On Tue, Jun 2, 2020 at 12:58 PM Stankiewicz, Piotr <piotr.stankiewicz@intel.com> wrote: > > -----Original Message----- > > From: Andy Shevchenko <andy.shevchenko@gmail.com> > > Sent: Tuesday, June 2, 2020 11:49 AM > > To: Stankiewicz, Piotr <piotr.stankiewicz@intel.com> > > Cc: Alex Deucher <alexander.deucher@amd.com>; Christian König > > <christian.koenig@amd.com>; David Zhou <David1.Zhou@amd.com>; David > > Airlie <airlied@linux.ie>; Daniel Vetter <daniel@ffwll.ch>; amd- > > gfx@lists.freedesktop.org; dri-devel <dri-devel@lists.freedesktop.org>; Linux > > Kernel Mailing List <linux-kernel@vger.kernel.org> > > Subject: Re: [PATCH 07/15] drm/amdgpu: use PCI_IRQ_MSI_TYPES where > > appropriate > > On Tue, Jun 2, 2020 at 12:24 PM Piotr Stankiewicz > > <piotr.stankiewicz@intel.com> wrote: ... > > > int nvec = pci_msix_vec_count(adev->pdev); > > > unsigned int flags; > > > > > > - if (nvec <= 0) { > > > + if (nvec > 0) > > > + flags = PCI_IRQ_MSI_TYPES; > > > + else > > > 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); > > > > I'm not sure if you have seen my last comment internally about this patch. > > > > I don't understand why we need these pci_msix_vec_count() followed by > > conditional at all. > > Perhaps we may simple drop all these and supply flag directly? > > > > But OTOH, I don't know the initial motivation, so, the above patch is > > non-intrusive and keeps original logic. > > > > Sorry, I must have misunderstood or missed that comment. I am happy > to do a V2 if dropping the conditional is preferable. Let's wait for AMD people to confirm either. -- With Best Regards, Andy Shevchenko _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 9+ messages in thread
* RE: [PATCH 07/15] drm/amdgpu: use PCI_IRQ_MSI_TYPES where appropriate 2020-06-02 9:20 [PATCH 07/15] drm/amdgpu: use PCI_IRQ_MSI_TYPES where appropriate Piotr Stankiewicz 2020-06-02 9:49 ` Andy Shevchenko @ 2020-06-02 13:35 ` Ruhl, Michael J 2020-06-02 14:00 ` Andy Shevchenko 1 sibling, 1 reply; 9+ messages in thread From: Ruhl, Michael J @ 2020-06-02 13:35 UTC (permalink / raw) To: Stankiewicz, Piotr, Alex Deucher, Christian König, David Zhou, David Airlie, Daniel Vetter Cc: Stankiewicz, Piotr, amd-gfx, dri-devel, linux-kernel >-----Original Message----- >From: dri-devel <dri-devel-bounces@lists.freedesktop.org> On Behalf Of >Piotr Stankiewicz >Sent: Tuesday, June 2, 2020 5:21 AM >To: Alex Deucher <alexander.deucher@amd.com>; Christian König ><christian.koenig@amd.com>; David Zhou <David1.Zhou@amd.com>; David >Airlie <airlied@linux.ie>; Daniel Vetter <daniel@ffwll.ch> >Cc: Stankiewicz, Piotr <piotr.stankiewicz@intel.com>; dri- >devel@lists.freedesktop.org; amd-gfx@lists.freedesktop.org; linux- >kernel@vger.kernel.org >Subject: [PATCH 07/15] drm/amdgpu: use PCI_IRQ_MSI_TYPES where >appropriate > >Seeing as there is shorthand available to use when asking for any type >of interrupt, or any type of message signalled interrupt, leverage it. > >Signed-off-by: Piotr Stankiewicz <piotr.stankiewicz@intel.com> >Reviewed-by: Andy Shevchenko <andriy.shevchenko@intel.com> >--- > drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > >diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c >b/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c >index 5ed4227f304b..6dbe173a9fd4 100644 >--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c >+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c >@@ -251,11 +251,11 @@ int amdgpu_irq_init(struct amdgpu_device *adev) > int nvec = pci_msix_vec_count(adev->pdev); > unsigned int flags; > >- if (nvec <= 0) { >+ if (nvec > 0) >+ flags = PCI_IRQ_MSI_TYPES; >+ else > flags = PCI_IRQ_MSI; >- } else { >- flags = PCI_IRQ_MSI | PCI_IRQ_MSIX; >- } Minor nit: Is it really necessary to set do this check? Can flags just be set? I.e.: flags = PCI_IRQ_MSI_TYPES; pci_alloc_irq_vector() tries stuff in order. If MSIX is not available, it will try MSI. M >+ > /* we only need one vector */ > nvec = pci_alloc_irq_vectors(adev->pdev, 1, 1, flags); > if (nvec > 0) { >-- >2.17.2 > >_______________________________________________ >dri-devel mailing list >dri-devel@lists.freedesktop.org >https://lists.freedesktop.org/mailman/listinfo/dri-devel _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 07/15] drm/amdgpu: use PCI_IRQ_MSI_TYPES where appropriate 2020-06-02 13:35 ` Ruhl, Michael J @ 2020-06-02 14:00 ` Andy Shevchenko 2020-06-02 14:21 ` Alex Deucher 0 siblings, 1 reply; 9+ messages in thread From: Andy Shevchenko @ 2020-06-02 14:00 UTC (permalink / raw) To: Ruhl, Michael J Cc: David Airlie, linux-kernel, dri-devel, Stankiewicz, Piotr, amd-gfx, Alex Deucher, Christian König On Tue, Jun 2, 2020 at 4:38 PM Ruhl, Michael J <michael.j.ruhl@intel.com> wrote: > >-----Original Message----- > >From: dri-devel <dri-devel-bounces@lists.freedesktop.org> On Behalf Of > >Piotr Stankiewicz > >Sent: Tuesday, June 2, 2020 5:21 AM > >To: Alex Deucher <alexander.deucher@amd.com>; Christian König > ><christian.koenig@amd.com>; David Zhou <David1.Zhou@amd.com>; David > >Airlie <airlied@linux.ie>; Daniel Vetter <daniel@ffwll.ch> > >Cc: Stankiewicz, Piotr <piotr.stankiewicz@intel.com>; dri- > >devel@lists.freedesktop.org; amd-gfx@lists.freedesktop.org; linux- > >kernel@vger.kernel.org > >Subject: [PATCH 07/15] drm/amdgpu: use PCI_IRQ_MSI_TYPES where > >appropriate ... > > int nvec = pci_msix_vec_count(adev->pdev); > > unsigned int flags; > > > >- if (nvec <= 0) { > >+ if (nvec > 0) > >+ flags = PCI_IRQ_MSI_TYPES; > >+ else > > flags = PCI_IRQ_MSI; > >- } else { > >- flags = PCI_IRQ_MSI | PCI_IRQ_MSIX; > >- } > > Minor nit: > > Is it really necessary to set do this check? Can flags just > be set? > > I.e.: > flags = PCI_IRQ_MSI_TYPES; > > pci_alloc_irq_vector() tries stuff in order. If MSIX is not available, > it will try MSI. That's also what I proposed earlier. But I suggested as well to wait for AMD people to confirm that neither pci_msix_vec_count() nor flags is needed and we can directly supply MSI_TYPES to the below call. > > /* we only need one vector */ > > nvec = pci_alloc_irq_vectors(adev->pdev, 1, 1, flags); -- With Best Regards, Andy Shevchenko _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 07/15] drm/amdgpu: use PCI_IRQ_MSI_TYPES where appropriate 2020-06-02 14:00 ` Andy Shevchenko @ 2020-06-02 14:21 ` Alex Deucher 2020-06-02 14:35 ` Andy Shevchenko 0 siblings, 1 reply; 9+ messages in thread From: Alex Deucher @ 2020-06-02 14:21 UTC (permalink / raw) To: Andy Shevchenko Cc: David Airlie, linux-kernel, amd-gfx, Ruhl, Michael J, Stankiewicz, Piotr, dri-devel, Alex Deucher, Christian König On Tue, Jun 2, 2020 at 10:00 AM Andy Shevchenko <andy.shevchenko@gmail.com> wrote: > > On Tue, Jun 2, 2020 at 4:38 PM Ruhl, Michael J <michael.j.ruhl@intel.com> wrote: > > >-----Original Message----- > > >From: dri-devel <dri-devel-bounces@lists.freedesktop.org> On Behalf Of > > >Piotr Stankiewicz > > >Sent: Tuesday, June 2, 2020 5:21 AM > > >To: Alex Deucher <alexander.deucher@amd.com>; Christian König > > ><christian.koenig@amd.com>; David Zhou <David1.Zhou@amd.com>; David > > >Airlie <airlied@linux.ie>; Daniel Vetter <daniel@ffwll.ch> > > >Cc: Stankiewicz, Piotr <piotr.stankiewicz@intel.com>; dri- > > >devel@lists.freedesktop.org; amd-gfx@lists.freedesktop.org; linux- > > >kernel@vger.kernel.org > > >Subject: [PATCH 07/15] drm/amdgpu: use PCI_IRQ_MSI_TYPES where > > >appropriate > > ... > > > > int nvec = pci_msix_vec_count(adev->pdev); > > > unsigned int flags; > > > > > >- if (nvec <= 0) { > > >+ if (nvec > 0) > > >+ flags = PCI_IRQ_MSI_TYPES; > > >+ else > > > flags = PCI_IRQ_MSI; > > >- } else { > > >- flags = PCI_IRQ_MSI | PCI_IRQ_MSIX; > > >- } > > > > Minor nit: > > > > Is it really necessary to set do this check? Can flags just > > be set? > > > > I.e.: > > flags = PCI_IRQ_MSI_TYPES; > > > > pci_alloc_irq_vector() tries stuff in order. If MSIX is not available, > > it will try MSI. > > That's also what I proposed earlier. But I suggested as well to wait > for AMD people to confirm that neither pci_msix_vec_count() nor flags > is needed and we can directly supply MSI_TYPES to the below call. > I think it was leftover from debugging and just to be careful. We had some issues when we originally enabled MSI-X on certain boards. The fix was to just allocate a single vector (since that is all we use anyway) and we were using the wrong irq (pdev->irq vs pci_irq_vector(pdev, 0)). For reference, the original patch to add MSI-X: commit bd660f4f111161f60392dd02424c3a3d2240dc2f Author: shaoyunl <shaoyun.liu@amd.com> Date: Tue Oct 1 15:52:31 2019 -0400 drm/amdgpu : enable msix for amdgpu driver We might used out of the msi resources in some cloud project which have a lot gpu devices(including PF and VF), msix can provide enough resources from system level view Signed-off-by: shaoyunl <shaoyun.liu@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> And the fix: commit 8a745c7ff2ddb8511ef760b4d9cb4cf56a15fc8d Author: Alex Deucher <alexander.deucher@amd.com> Date: Thu Oct 3 10:34:30 2019 -0500 drm/amdgpu: improve MSI-X handling (v3) 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. Tested-by: Tom St Denis <tom.stdenis@amd.com> Reviewed-by: Shaoyun liu <shaoyun.liu@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Alex _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 07/15] drm/amdgpu: use PCI_IRQ_MSI_TYPES where appropriate 2020-06-02 14:21 ` Alex Deucher @ 2020-06-02 14:35 ` Andy Shevchenko 2020-06-02 14:39 ` Alex Deucher 0 siblings, 1 reply; 9+ messages in thread From: Andy Shevchenko @ 2020-06-02 14:35 UTC (permalink / raw) To: Alex Deucher Cc: David Airlie, linux-kernel, amd-gfx, Ruhl, Michael J, Stankiewicz, Piotr, dri-devel, Alex Deucher, Christian König On Tue, Jun 2, 2020 at 5:21 PM Alex Deucher <alexdeucher@gmail.com> wrote: > On Tue, Jun 2, 2020 at 10:00 AM Andy Shevchenko > <andy.shevchenko@gmail.com> wrote: > > On Tue, Jun 2, 2020 at 4:38 PM Ruhl, Michael J <michael.j.ruhl@intel.com> wrote: > > > >From: dri-devel <dri-devel-bounces@lists.freedesktop.org> On Behalf Of > > > >Piotr Stankiewicz > > > > int nvec = pci_msix_vec_count(adev->pdev); > > > > unsigned int flags; > > > > > > > >- if (nvec <= 0) { > > > >+ if (nvec > 0) > > > >+ flags = PCI_IRQ_MSI_TYPES; > > > >+ else > > > > flags = PCI_IRQ_MSI; > > > >- } else { > > > >- flags = PCI_IRQ_MSI | PCI_IRQ_MSIX; > > > >- } > > > > > > Minor nit: > > > > > > Is it really necessary to set do this check? Can flags just > > > be set? > > > > > > I.e.: > > > flags = PCI_IRQ_MSI_TYPES; > > > > > > pci_alloc_irq_vector() tries stuff in order. If MSIX is not available, > > > it will try MSI. > > > > That's also what I proposed earlier. But I suggested as well to wait > > for AMD people to confirm that neither pci_msix_vec_count() nor flags > > is needed and we can directly supply MSI_TYPES to the below call. > > > > I think it was leftover from debugging and just to be careful. We had > some issues when we originally enabled MSI-X on certain boards. The > fix was to just allocate a single vector (since that is all we use > anyway) and we were using the wrong irq (pdev->irq vs > pci_irq_vector(pdev, 0)). Do you agree that simple nvec = pci_alloc_irq_vectors(adev->pdev, 1, 1, PCI_IRQ_MSI_TYPES); will work and we can remove that leftover? -- With Best Regards, Andy Shevchenko _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 07/15] drm/amdgpu: use PCI_IRQ_MSI_TYPES where appropriate 2020-06-02 14:35 ` Andy Shevchenko @ 2020-06-02 14:39 ` Alex Deucher 0 siblings, 0 replies; 9+ messages in thread From: Alex Deucher @ 2020-06-02 14:39 UTC (permalink / raw) To: Andy Shevchenko, Tom St Denis Cc: David Airlie, linux-kernel, amd-gfx, Ruhl, Michael J, Stankiewicz, Piotr, dri-devel, Alex Deucher, Christian König On Tue, Jun 2, 2020 at 10:35 AM Andy Shevchenko <andy.shevchenko@gmail.com> wrote: > > On Tue, Jun 2, 2020 at 5:21 PM Alex Deucher <alexdeucher@gmail.com> wrote: > > On Tue, Jun 2, 2020 at 10:00 AM Andy Shevchenko > > <andy.shevchenko@gmail.com> wrote: > > > On Tue, Jun 2, 2020 at 4:38 PM Ruhl, Michael J <michael.j.ruhl@intel.com> wrote: > > > > >From: dri-devel <dri-devel-bounces@lists.freedesktop.org> On Behalf Of > > > > >Piotr Stankiewicz > > > > > > int nvec = pci_msix_vec_count(adev->pdev); > > > > > unsigned int flags; > > > > > > > > > >- if (nvec <= 0) { > > > > >+ if (nvec > 0) > > > > >+ flags = PCI_IRQ_MSI_TYPES; > > > > >+ else > > > > > flags = PCI_IRQ_MSI; > > > > >- } else { > > > > >- flags = PCI_IRQ_MSI | PCI_IRQ_MSIX; > > > > >- } > > > > > > > > Minor nit: > > > > > > > > Is it really necessary to set do this check? Can flags just > > > > be set? > > > > > > > > I.e.: > > > > flags = PCI_IRQ_MSI_TYPES; > > > > > > > > pci_alloc_irq_vector() tries stuff in order. If MSIX is not available, > > > > it will try MSI. > > > > > > That's also what I proposed earlier. But I suggested as well to wait > > > for AMD people to confirm that neither pci_msix_vec_count() nor flags > > > is needed and we can directly supply MSI_TYPES to the below call. > > > > > > > I think it was leftover from debugging and just to be careful. We had > > some issues when we originally enabled MSI-X on certain boards. The > > fix was to just allocate a single vector (since that is all we use > > anyway) and we were using the wrong irq (pdev->irq vs > > pci_irq_vector(pdev, 0)). > > Do you agree that simple > > nvec = pci_alloc_irq_vectors(adev->pdev, 1, 1, PCI_IRQ_MSI_TYPES); > > will work and we can remove that leftover? Yes, I believe so. Tom, can you give this a quick spin on raven just in case if you get a chance? Something like this: diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c index 0cc4c67f95f7..c59111b57cc2 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c @@ -248,16 +248,10 @@ int amdgpu_irq_init(struct amdgpu_device *adev) adev->irq.msi_enabled = false; if (amdgpu_msi_ok(adev)) { - int nvec = pci_msix_vec_count(adev->pdev); - unsigned int flags; + int nvec; - 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); + nvec = pci_alloc_irq_vectors(adev->pdev, 1, 1, PCI_IRQ_MSI | PCI_IRQ_MSIX); if (nvec > 0) { adev->irq.msi_enabled = true; dev_dbg(adev->dev, "using MSI/MSI-X.\n"); Thanks, Alex _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply related [flat|nested] 9+ messages in thread
end of thread, other threads:[~2020-06-02 14:40 UTC | newest] Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2020-06-02 9:20 [PATCH 07/15] drm/amdgpu: use PCI_IRQ_MSI_TYPES where appropriate Piotr Stankiewicz 2020-06-02 9:49 ` Andy Shevchenko 2020-06-02 9:57 ` Stankiewicz, Piotr 2020-06-02 9:59 ` Andy Shevchenko 2020-06-02 13:35 ` Ruhl, Michael J 2020-06-02 14:00 ` Andy Shevchenko 2020-06-02 14:21 ` Alex Deucher 2020-06-02 14:35 ` Andy Shevchenko 2020-06-02 14:39 ` Alex Deucher
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).