• Rafael J. Wysocki's avatar
    ACPI / hotplug / PCI: Register all devices under the given bridge · bbd34fcd
    Rafael J. Wysocki authored
    Rework register_slot() to create a struct acpiphp_func object for
    every function it is called for and to create acpiphp slots for all
    of them.  Although acpiphp_register_hotplug_slot() is only called for
    the slots whose functions are identified as "ejectable", so that user
    space can manipulate them, the ACPIPHP notify handler,
    handle_hotplug_event(), is now installed for all of the registered
    functions (that aren't dock stations) and hotplug events may be
    handled for all of them.
    
    As a result, essentially, all PCI bridges represented by objects in
    the ACPI namespace are now going to be "hotplug" bridges and that may
    affect resources allocation in general, although it shouldn't lead to
    problems.
    
    This allows the code to be simplified substantially and addresses
    the problem where bus check or device check notifications for some
    PCI bridges or devices are not handled, because those devices are
    not recognized as "ejectable" or there appear to be no "ejectable"
    devices under those bridges.
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    Tested-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
    bbd34fcd
acpiphp_glue.c 29.9 KB