On Thu, Aug 10, 2017 at 07:10:16AM +0200, Lukas Wunner wrote: > On Thu, Aug 10, 2017 at 12:34:23AM +0200, Rafael J. Wysocki wrote: > > --- linux-pm.orig/drivers/acpi/scan.c > > +++ linux-pm/drivers/acpi/scan.c > > @@ -2139,6 +2139,10 @@ int __init acpi_scan_init(void) > > acpi_get_spcr_uart_addr(); > > } > > > > + acpi_gpe_apply_masked_gpes(); > > + acpi_update_all_gpes(); > > + acpi_ec_ecdt_start(); > > + > > mutex_lock(&acpi_scan_lock); > > /* > > * Enumerate devices in the ACPI namespace. > > I notice this is called from a subsys_initcall(). We scan the PCI bus > much earlier in arch/x86/kernel/early-quirks.c and it would be possible > to identify presence of Thunderbolt host controllers in an early quirk > (using the method of pci_is_thunderbolt_attached()) and, if found, > enable their GPEs or all GPEs. I don't think we want to differentiate between Thunderbolt controller and anything else. Point here is that we need to enable GPEs in the same order than Windows does (before PCI scan) to be on the path that is at least somehow tested. > Just as an aside in case your method doesn't work, I'm not affected by > this issue being a Mac user... ;-) ;-)