From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Rafael J. Wysocki" Subject: [PATCH 0/30] ACPI / hotplug / PCI: Major rework + Thunderbolt workarounds Date: Thu, 18 Jul 2013 01:05:53 +0200 Message-ID: <2366394.4EoP1MXmG2@vostro.rjw.lan> References: <26431283.HJCKsss0rt@vostro.rjw.lan> <3718119.FLASu5DBx8@vostro.rjw.lan> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7Bit Return-path: In-Reply-To: <3718119.FLASu5DBx8@vostro.rjw.lan> Sender: linux-kernel-owner@vger.kernel.org To: ACPI Devel Maling List Cc: Bjorn Helgaas , LKML , Linux PCI , Yinghai Lu , Jiang Liu , Mika Westerberg , "Kirill A. Shutemov" List-Id: linux-acpi@vger.kernel.org Hi All, Now the series has been rebased on top of current linux-pm.git/linux-next and tested on two systems with Thunderbolt. Some changes have been made too. -> On Friday, July 12, 2013 01:34:20 AM Rafael J. Wysocki wrote: > Hi, > > I've made some progress with my ACPIPHP rework since I posted the series last > time and here goes an update. > > First off, the previous series was somewhat racy, which should be fixed now. > Apart from this there's quite some new material on top of the patches I posted > last time (or rather on top of their new versions) and I integrated the > Thunderbolt series from Mika with that. As a result, > > https://patchwork.kernel.org/patch/2817341/ > > is required to be applied. > > Still untested, still based on 3.10 with ACPI+PM 3.11 material merged on top, > but this time I don't have any plans to add more patches to the series for the > time being. Also 3.11-rc1 should be out in a couple of days, so I'll be able > to integrate this work with the previous cleanups series from Gerry and myself > on top of it. > > I did my best not to change too much at a time and some steps add stuff that > is removed by the subsequent ones, so hopefully it is bisectable. > > If anyone finds something questionable or outright bogus in these patches, > please let me know before it's too late. ;-) > > [ 1/30] Make bus registration and unregistration symmetric. [Resend] > [ 2/30] Consolidate acpiphp_enumerate_slots(). [Resend] > [ 3/30] Fix error code path in register_slot(). [Resend] > [ 4/30] Introduce hotplug context objects for ACPI device objects corresponding > to PCI hotplug devices. [Update] > [ 5/30] Unified notify handler for hotplug events. [Update] > [ 6/30] Drop acpiphp_handle_to_bridge() and use context objects instead of it. [Update] > [ 7/30] Pass entire hotplug context objects (instead of their fields > individually) to event handling work functions. [Update] > [ 8/30] Merge hotplug event handling functions. [Update] > [ 9/30] Drop func field from struct acpiphp_bridge. > [10/30] Refactor slot allocation code in register_slot(). > [11/30] Make acpiphp_enumerate_slots() to register all devices on the given bus > and install the notification handler for all of them. > [12/30] Drop sun field from struct acpiphp_slot. > [13/30] Use common slot count variable in register_slot(). -> The one above has been dropped, because it might cause regressions to appear on some systems, but that's not a big deal. The numbering of the patches below has changed as a result, so the next one is [13/30] now and so on. > [14/30] Drop flags field from struct acpiphp_bridge. > [15/30] Embed function structure into struct acpiphp_context. > [16/30] Drop handle field from struct acpiphp_func. > [17/30] Drop handle field from struct acpiphp_bridge. > [18/30] Store parent bridge pointer in function objects and bus pointer in slot > objects. > [19/30] Rework ACPI namespace scanning and trimming routines. > [20/30] Drop redundant checks from check_hotplug_bridge(). > [21/30] Consolidate slot disabling and ejecting > [22/30] Do not queue up event handling work items for non-hotplug events. > [23/30] Do not execute _PS0 and _PS3 directly. This one was fixed after Mika had reported a problem with it. > [24/30] Do not check SLOT_ENABLED in enable_device(). [Thunderbolt series] > [25/30] Allow slots without new devices to be rescanned. [Thunderbolt series] > [26/30] Check for new devices on enabled slots. [Thunderbolt series, TBD] This one was reworked to use acpi_bus_trim() on ACPI device objects corresponding to PCI devices being removed (it also uses _STA to check the status of those devices if available). > [27/30] Get rid of unused constands in acpiphp.h. [Thunderbolt series] > [28/30] Sanitize acpiphp_get_(latch)|(adapter)_status(). [Thunderbolt series] > [29/30] Redefine enable_device() and disable_device() (rename and change to void). > [30/30] Clean up the usage of bridge_mutex. The one above is [29/30] now and we have added one more patch: [30/30] Drop check_sub_bridges() which isn't necessary any more. The updated patches follow. If you don't hate this stuff, I'll put it into linux-next over the weekend for further testing. Thanks, Rafael -- I speak only for myself. Rafael J. Wysocki, Intel Open Source Technology Center.