[Public]
> -----Original Message----- > From: Gong, Richard <[email protected]> > Sent: Friday, April 8, 2022 11:20 > To: Limonciello, Mario <[email protected]>; Deucher, Alexander > <[email protected]>; Koenig, Christian > <[email protected]>; Pan, Xinhui <[email protected]>; > [email protected]; [email protected] > Cc: [email protected]; [email protected]; linux- > [email protected] > Subject: Re: [PATCH] drm/amdgpu: disable ASPM for legacy products that > don't support ASPM > > > On 4/8/2022 10:47 AM, Limonciello, Mario wrote: > > [Public] > > > > > > > >> -----Original Message----- > >> From: Gong, Richard <[email protected]> > >> Sent: Friday, April 8, 2022 10:45 > >> To: Deucher, Alexander <[email protected]>; Koenig, > Christian > >> <[email protected]>; Pan, Xinhui <[email protected]>; > >> [email protected]; [email protected] > >> Cc: [email protected]; [email protected]; > linux- > >> [email protected]; Limonciello, Mario > <[email protected]>; > >> Gong, Richard <[email protected]> > >> 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. > >> > >> Signed-off-by: Richard Gong <[email protected]> > >> 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. > > The "problem" are WX3200 and RX640, both are from the same POLARIS12 > family. > Right but what if some other "working" cards are included in the system too? Then ASPM gets disabled for them too. It should only be disabled for the pci_dev corresponding to problematic GPUs in problematic situations. > > 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
