• R
    ACPI / hotplug / PCI: Do not exectute _PS0 and _PS3 directly · bc805a55
    Rafael J. Wysocki 提交于
    The ACPI-based PCI hotplug (acpiphp) core code need not and really
    should not execute _PS0 and _PS3 directly for devices it handles.
    
    First of all, it is not necessary to put devices into D3 after
    acpi_bus_trim() has walked through them, because
    acpi_device_unregister() invoked by it puts each device into D3cold
    before returning.  Thus after disable_device() the slot should be
    powered down already.
    
    Second, calling _PS0 directly on ACPI device objects may not be
    appropriate, because it may require power resources to be set up in
    a specific way in advance and that must be taken care of by the ACPI
    core.  Thus modify acpiphp_bus_add() to power up the device using
    the appropriate interface after it has run acpi_bus_scan() on its
    handle.
    
    After that, the functions executing _PS0 and _PS3, power_on_slot()
    and power_off_slot(), are not necessary any more, so drop them
    and update the code calling them accordingly.  Also drop the
    function flags related to device power states, since they aren't
    useful any more too.
    Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
    Tested-by: NMika Westerberg <mika.westerberg@linux.intel.com>
    bc805a55
acpiphp.h 5.3 KB