On Monday, May 18, 2015 04:45:28 PM Jarod Wilson wrote:...
...On Thu, May 14, 2015 at 03:33:58PM -0400, Jarod Wilson wrote:
The HP ZBook 15 and 17 Mobile Workstations, generation 2, up to and
including at least BIOS revision 01.07, do not have an ACPI _RMV
object
associated with their expresscard slots, so acpi-based
hotplug-capable
slot detection fails. If we fall back to pcie-based detection, the
systems
work just fine
Ah, I forgot some additional details. pciehp_probe() in
drivers/pci/hotplug/pciehp_core.c fails on the
pciehp_acpi_slot_detection_check() call for the expresscard slot, which
is why the base pciehp doesn't bind. DEVICE_ACPI_HANDLE(&dev->dev) in
the slot detection check is winding up with a NULL acpi device.
So IMO the bug is that select_detection_mode() assumes that ACPI should be
used as the PCIe hotplug detection method if it has found at least one
device that looks like an "ACPI hotplug slot" (Thuderbolt breaks that "logic").
To be honest, I'm not sure why we need the pciehp_acpi_slot_detection_check()
in pciehp_probe() at all. It doesn't add any value as far as I can say.
If pciehp_probe() is called at all, we have registered a PCIe port service
and if this is a "hotplug" service, we wouldn't have registered it if the
_OSC handshake had not given us contol over native hotplug.
So I wonder if the patch below makes any difference.