[PATCH] drm/amd: Check if ASPM is enabled from PCIe subsystem

Limonciello, Mario Mario.Limonciello at amd.com
Thu Feb 17 04:58:48 UTC 2022


[AMD Official Use Only]

> > commit 0064b0ce85bb ("drm/amd/pm: enable ASPM by default") enabled
> ASPM
> > by default but a variety of hardware configurations it turns out that this
> > caused a regression.
> >
> > * PPC64LE hardware does not support ASPM at a hardware level.
> >    CONFIG_PCIEASPM is often disabled on these architectures.
> > * Some dGPUs on ALD platforms don't work with ASPM enabled and PCIe
> >    subsystem disables it
> >
> > Check with the PCIe subsystem to see that ASPM has been enabled
> > or not.
> >
> > Fixes: 0064b0ce85bb ("drm/amd/pm: enable ASPM by default")
> > Link:
> https://wiki.raptorcs.com/w/images/a/ad/P9_PHB_version1.0_27July2018_p
> ub.pdf
> > Link: https://gitlab.freedesktop.org/drm/amd/-/issues/1723
> > Link: https://gitlab.freedesktop.org/drm/amd/-/issues/1739
> > Link: https://gitlab.freedesktop.org/drm/amd/-/issues/1885
> > Link: https://gitlab.freedesktop.org/drm/amd/-/issues/1907
> > Tested-by: koba.ko at canonical.com
> > Signed-off-by: Mario Limonciello <mario.limonciello at amd.com>
> > ---
> >   drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 3 +++
> >   1 file changed, 3 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
> > index 5acd0473ed01..d2548fab51c5 100644
> > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
> > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
> > @@ -2008,6 +2008,9 @@ static int amdgpu_pci_probe(struct pci_dev
> *pdev,
> >   			return -ENODEV;
> >   	}
> >
> > +	if (amdgpu_aspm == -1 && !pcie_aspm_enabled(pdev))
> > +		amdgpu_aspm = 0;
> > +
> 
> Doesn't this disable aspm for all devices even though only one of the
> bridges doesn't have support?

At least with how it's a global parameter today I don't think we can do
much better without a refactor.

As it's actively breaking people I think I would prefer to get this in as it
is now (which can go to stable trees too), and then do the refactor as a
follow up.

> 
> Thanks,
> Lijo
> 
> >   	if (amdgpu_virtual_display ||
> >   	    amdgpu_device_asic_has_dc_support(flags & AMD_ASIC_MASK))
> >   		supports_atomic = true;
> >


More information about the amd-gfx mailing list