On Thu, Jan 24, 2019 at 04:12:27PM +0300, Mika Westerberg wrote: > --- a/drivers/pci/pci.c > +++ b/drivers/pci/pci.c > @@ -2501,6 +2501,23 @@ void pci_config_pm_runtime_put(struct pci_dev *pdev) > pm_runtime_put_sync(parent); > } > > +static const struct dmi_system_id bridge_d3_blacklist[] = { > + { > + /* > + * Gigabyte X299 root port is not marked as hotplug > + * capable which allows Linux to power manage it. > + * However, this confuses the BIOS SMI handler so don't > + * power manage root ports on that system. > + */ > + .ident = "X299 DESIGNARE EX-CF", > + .matches = { > + DMI_MATCH(DMI_BOARD_VENDOR, "Gigabyte Technology Co., Ltd."), > + DMI_MATCH(DMI_BOARD_NAME, "X299 DESIGNARE EX-CF"), > + }, > + }, > + { } > +}; Unfortunately this doesn't take my comment voiced Jan 8 into account: "Please constrain either the blacklist entry for the Gigabyte mainboard or the blacklist check itself to x86 using IS_ENABLED() or #ifdef to avoid code bloat on other arches." https://patchwork.kernel.org/patch/10750549/#22408911 Note that CONFIG_DMI may be enabled on arm64 and ia64 which have no use for this quirk. It's generally undesirable to have arch-specific quirks in generic code and folks running Linux on memory-constrained mips routers have complained before that quirks.c contains too much code unrelated to their arch. Thanks, Lukas