• Rafael J. Wysocki's avatar
    PCI PM: Make pci_set_power_state() handle devices with no PM support · 4a865905
    Rafael J. Wysocki authored
    There is a problem with PCI devices without any PM support (either
    native or through the platform) that pci_set_power_state() always
    returns error code for them, even if they are being put into D0.
    However, such devices are always in D0, so pci_set_power_state()
    should return success when attempting to put such a device into D0.
    It also should update the current_state field for these devices as
    appropriate.  This modification is necessary so that the standard
    configuration registers of these devices are successfully restored by
    pci_restore_standard_config() during the "early" phase of resume.
    
    In addition, pci_set_power_state() should check the value of
    current_state before calling the platform to change the power state
    of the device to avoid doing that unnecessarily.
    Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
    Acked-by: default avatarIngo Molnar <mingo@elte.hu>
    Acked-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
    4a865905
pci.c 62.6 KB