Skip to content
  • Rafael J. Wysocki's avatar
    PCI: pciehp: Drop pointless ACPI-based "slot detection" check · e705c295
    Rafael J. Wysocki authored
    Jarod Wilson reports that ExpressCard hotplug doesn't work on HP ZBook G2.
    The problem turns out to be the ACPI-based "slot detection" code called
    from pciehp_probe() which uses questionable heuristics based on what ACPI
    objects are present for the PCIe port device to figure out whether to
    register a hotplug slot for that port.
    
    That code is used if there is at least one PCIe port having an ACPI device
    configuration object related to hotplug (such as _EJ0 or _RMV), and the
    Thunderbolt port on the ZBook has _RMV.  Of course, Thunderbolt and PCIe
    native hotplug need not be mutually exclusive (as they aren't on the
    ZBook), so that rule is simply incorrect.
    
    Moreover, the ACPI-based "slot detection" check does not add any value if
    pciehp_probe() is called at all and the service type of the device object
    it has been called for is PCIE_PORT_SERVICE_HP, because PCIe hotplug
    services are only registered if the _OSC handshake in acpi_pci_root_add()
    allows the kernel to control the PCIe native hotplug feature.  No more
    checks need to be carried out to decide whether or not to register a native
    PCIe hotlug slot in that case.
    
    For the above reasons, make pciehp_probe() check if it has been called for
    the right service type and drop the pointless ACPI-based "slot detection"
    check from it.  Also remove the entire code whose only user is that check
    (the entire pciehp_acpi.c file goes away as a result) and drop function
    headers related to it from the internal pciehp header file.
    
    Link: http://lkml.kernel.org/r/1431632038-39917-1-git-send-email-jarod@redhat.com
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=98581
    
    
    Reported-by: default avatarJarod Wilson <jarod@redhat.com>
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
    Reviewed-by: default avatarJarod Wilson <jarod@redhat.com>
    Tested-by: default avatarJarod Wilson <jarod@redhat.com>
    e705c295