Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752668AbdHIWnB (ORCPT ); Wed, 9 Aug 2017 18:43:01 -0400 Received: from cloudserver094114.home.net.pl ([79.96.170.134]:53150 "EHLO cloudserver094114.home.net.pl" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752607AbdHIWm4 (ORCPT ); Wed, 9 Aug 2017 18:42:56 -0400 From: "Rafael J. Wysocki" To: Linux ACPI Cc: Mika Westerberg , Srinivas Pandruvada , Linux PCI , LKML , Lv Zheng , Bob Moore Subject: [PATCH 0/3] ACPI: Initialize GPEs before the initial namespace scan Date: Thu, 10 Aug 2017 00:29:12 +0200 Message-ID: <12346760.yAFCnkEgf6@aspire.rjw.lan> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1539 Lines: 34 Hi, This is exceptional for at least two reasons. First, we need it now to work around boot problems on multiple platforms already seen in the field (which are shipping products). Second, the ACPICA changes in this series are kind of Linux-specific, because they are related to how Linux carries out the initialization of devices, which very well may be different from what the other OSes using ACPICA do. For these reasons, I'd like to make the following ACPICA changes in Linux only for the time being and then decide whether or not to take them into the upstream. If there are major concerns about that, please let me know. The issue at hand is that some platforms with Thunderbolt controllers won't boot if there are any Thunderbolt devices connected to them at boot time (if the devices are connected later, everything works as expected). That turns out to be related to a complicated sequence of events involving the platform firmware which needs to happen in exactly the right order at the right time for things to work and that requires GPEs to be enabled before enumerating the PCI bus. The first patch changes ACPICA to check the status of runtime GPEs before enabling them for the first time in order to avoid missing events (that is key for edge-triggered GPEs) and to process them early enough. The second one makes it possible to change the ordering of initialization between GPEs and devices, and the third one actually changes that ordering. The patches are based on Mika's work, so kudos to him. Thanks, Rafael