On Tue, Sep 22, 2020 at 2:54 AM Lukas Wunner <lukas@xxxxxxxxx> wrote: > > [cc += Mika] > > On Mon, Sep 21, 2020 at 07:10:55PM -0400, Alex Deucher wrote: > > Recent AMD laptops which have iGPU + dGPU have been non-functional on > > Linux. The issue is that the laptops rely on ACPI to control the dGPU > > power and that is not happening because the bridges are hotplug > > capable, and the current pci code does not allow runtime pm on hotplug > > capable bridges. This worked on previous laptops presumably because > > the bridges did not support hotplug or they hit one of the allowed > > cases. The driver enables runtime power management, but since the > > dGPU does not actually get powered down via the platform ACPI > > controls, no power is saved, and things fall apart on resume leading > > to an unusable GPU or a system hang. To work around this users can > > currently disable runtime pm in the GPU driver or specify > > pcie_port_pm=force to force d3 on bridges. I'm not sure what the best > > solution for this is. I'd rather not have to add device IDs to a > > whitelist every time we release a new platform. Suggestions? What > > about something like the attached patch work? > > What is Windows doing on these machines? Microsoft came up with an > ACPI _DSD property to tell OSPM that it's safe to suspend a hotplug > port to D3: > > https://docs.microsoft.com/en-us/windows-hardware/drivers/pci/dsd-for-pcie-root-ports#identifying-pcie-root-ports-supporting-hot-plug-in-d3 > > We support that since 26ad34d510a8 ("PCI / ACPI: Whitelist D3 for more > PCIe hotplug ports"). > > I've skimmed the three gitlab bugs you mention below and none of them > seems to contain an ACPI dump. First thing to do is request that > from the users and check if the HotPlugSupportInD3 property is > present. And if it's not, we need to find out why it's working > on Windows. Thanks. acpidumps posted on the bug reports. Alex > > Thanks, > > Lukas > > > From 3a08cb6ac38c47b921b8b6f31b03fcd8f13c4018 Mon Sep 17 00:00:00 2001 > > From: Alex Deucher <alexander.deucher@xxxxxxx> > > Date: Mon, 21 Sep 2020 18:07:27 -0400 > > Subject: [PATCH] pci: allow d3 on hotplug bridges after 2018 > > > > Newer AMD laptops have hotplug capabe bridges with dGPUs behind them. > > If d3 is disabled on the bridge, the dGPU is never powered down even > > though the dGPU driver may think it is because power is handled by > > the pci core. Things fall apart when the driver attempts to resume > > a dGPU that was not properly powered down which leads to hangs. > > > > Bug: https://gitlab.freedesktop.org/drm/amd/-/issues/1252 > > Bug: https://gitlab.freedesktop.org/drm/amd/-/issues/1222 > > Bug: https://gitlab.freedesktop.org/drm/amd/-/issues/1304 > > Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx> > > --- > > drivers/pci/pci.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c > > index a458c46d7e39..12927d5df4b9 100644 > > --- a/drivers/pci/pci.c > > +++ b/drivers/pci/pci.c > > @@ -2856,7 +2856,7 @@ bool pci_bridge_d3_possible(struct pci_dev *bridge) > > * by vendors for runtime D3 at least until 2018 because there > > * was no OS support. > > */ > > - if (bridge->is_hotplug_bridge) > > + if (bridge->is_hotplug_bridge && (dmi_get_bios_year() <= 2018)) > > return false; > > > > if (dmi_check_system(bridge_d3_blacklist)) > > -- > > 2.25.4 > >