[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