• Dmitry Torokhov's avatar
    ACPI: PM: postpone bringing devices to D0 unless we need them · f7599be2
    Dmitry Torokhov authored
    Currently ACPI power domain brings devices into D0 state in the "resume
    early" phase. Normally this does not cause any issues, as powering up
    happens quickly. However there are peripherals that have certain timing
    requirements for powering on, for example some models of Elan
    touchscreens need 300msec after powering up/releasing reset line before
    they can accept commands from the host. Such devices will dominate
    the time spent in early resume phase and cause increase in overall
    resume time as we wait for early resume to complete before we can
    proceed to the normal resume stage.
    
    There are ways for a driver to indicate that it can tolerate device
    being in the low power mode and that it knows how to power the device
    back up when resuming, bit that requires changes to individual drivers
    that may not really care about details of ACPI controlled power
    management.
    
    This change attempts to solve this issue at ACPI power domain level, by
    postponing powering up device until we get to the normal resume stage,
    unless there is early resume handler defined for the device, or device
    does not declare any resume handlers, in which case we continue powering
    up such devices early. This allows us to shave off several hundred
    milliseconds of resume time on affected systems.
    Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    f7599be2
device_pm.c 38 KB