[PATCH 0/3] ACPI / dock / PCI: Fix problems with dock and PCI hotplug
From: Rafael J. Wysocki
Date: Sat Jun 22 2013 - 17:17:10 EST
Unfortunately, the Alexander's docking station for Sony VAIO VPCZ23A4R is
basically unusable with v3.10-rc6 and, as it turns out, there are multiple
problems with it.
First, the acpiphp initialization ordering has changed recently,
acpiphp_enumerate_slots() is now always run for the first time during the
initial ACPI namespace scan in acpi_scan_init() which has broken support
for PCI devices on ACPI-based docking stations, because the ACPI dock
subsystem has to be initialized *before* acpiphp_enumerate_slots() is first
Fix that, and it turns out that undocking actually doesn't work correctly
because of some synchronization problems between the dock driver, acpiphp
and the PCI core. [That part was actually the most difficult to fix.]
Fix that, and you'll find that PCI resources are not allocated correctly
after undocking and re-docking (when initially docked).
The three patches in this series make the Alexander's docking station kind
of usable, so if no one has objections, I'd like to put them on a fast track
[1/3] Initialize ACPI dock subsystem before enumerating the PCI hierarchy
(that also makes the dock driver non-modular).
[2/3] Make acpiphp use the same rules for allocating PCI resources that are
used at boot time.
[3/3] Make acpiphp handle dock events synchronously (instead of spawning
separate work items to handle them). [The changelog of this patch
is likely one of the longest I've ever written and it sort of looks
like a crime story.]
This series is mostly based on the work of Jiang Liu (thanks Gerry!) and
the Alexander's testing that we wouldn't have done much progress without
Alexander, I've modified patch [3/3] a bit since you have tested it.
The modifications shouldn't affect the behavior, but if you could re-test it,
that would be great.
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/