[PATCH] drm/amdgpu: disable ASPM for legacy products that don't support ASPM

Alex Deucher alexdeucher at gmail.com
Fri Apr 8 15:54:15 UTC 2022


On Fri, Apr 8, 2022 at 11:47 AM Limonciello, Mario
<Mario.Limonciello at amd.com> wrote:
>
> [Public]
>
>
>
> > -----Original Message-----
> > From: Gong, Richard <Richard.Gong at amd.com>
> > Sent: Friday, April 8, 2022 10:45
> > To: Deucher, Alexander <Alexander.Deucher at amd.com>; Koenig, Christian
> > <Christian.Koenig at amd.com>; Pan, Xinhui <Xinhui.Pan at amd.com>;
> > airlied at linux.ie; daniel at ffwll.ch
> > Cc: amd-gfx at lists.freedesktop.org; dri-devel at lists.freedesktop.org; linux-
> > kernel at vger.kernel.org; Limonciello, Mario <Mario.Limonciello at amd.com>;
> > Gong, Richard <Richard.Gong at amd.com>
> > Subject: [PATCH] drm/amdgpu: disable ASPM for legacy products that don't
> > support ASPM
> >
> > Active State Power Management (ASPM) feature is enabled since kernel
> > 5.14.
> > However there are some legacy products (WX3200 and RX640 are examples)
> > that
> > do not support ASPM. Use them as video/display output and system would
> > hang
> > during suspend/resume.
> >
> > Add extra check to disable ASPM for old products that don't have
> > ASPM support.

The patch description is incorrect.  ASPM works just fine on these
GPUs.  It's more of an issue with whether the underlying platform
supports ASPM or not.  Rather than disabling a chip family, I would
prefer to add a check for problematic platforms and disable ASPM on
those platforms.

Alex

> >
> > Signed-off-by: Richard Gong <richard.gong at amd.com>
> > Link: https://gitlab.freedesktop.org/drm/amd/-/issues/1885
> > ---
> >  drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 4 ++++
> >  1 file changed, 4 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
> > b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
> > index bb1c025d9001..8987107f41ee 100644
> > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
> > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
> > @@ -2012,6 +2012,10 @@ static int amdgpu_pci_probe(struct pci_dev
> > *pdev,
> >       if (amdgpu_aspm == -1 && !pcie_aspm_enabled(pdev))
> >               amdgpu_aspm = 0;
> >
> > +     /* disable ASPM for the legacy products that don't support ASPM */
> > +     if ((flags & AMD_ASIC_MASK) == CHIP_POLARIS12)
> > +             amdgpu_aspm = 0;
> > +
>
> I think it's problematic to disable it for the entire driver.  There might be multiple
> AMDGPUs in the system, and others may support ASPM.
>
> Can it be done just as part of probe for Polaris?
>
> >       if (amdgpu_virtual_display ||
> >           amdgpu_device_asic_has_dc_support(flags & AMD_ASIC_MASK))
> >               supports_atomic = true;
> > --
> > 2.25.1


More information about the amd-gfx mailing list