Skip to content
  • Rafael J. Wysocki's avatar
    ACPI / power: Drop automaitc resume of power resource dependent devices · 41863fce
    Rafael J. Wysocki authored
    
    
    The mechanism causing devices depending on a given power resource
    (that is, devices that can be in D0 only if that power resource is
    on) to be resumed automatically when the power resource is turned
    on (and their "inferred" power state becomes D0 as a result) is
    inherently racy and in fact unnecessary.
    
    It is racy, because if the power resource is turned on and then
    immediately off, the device resume triggered by the first transition
    to "on" may still happen, causing the power resource to be turned
    on again.  That again will trigger the "resume of dependent devices"
    mechanism, but if the devices in question are not in use, they will
    be suspended in the meantime causing the power resource to be turned
    off.  However, the "resume of dependent devices" will next resume
    them again and so on.  In some cases (USB port PM in particular) that
    leads to an endless busy loop of flipping the resource on and off
    continuously.
    
    It is needless, because whoever turns a power resource on will most
    likely turn it off at some point and the devices that go into "D0"
    as a result of turning it on will then go back into D3cold
    (generally, the state they were in before).
    
    Moreover, turning on all power resources a device needs to go into
    D0 is not sufficient for a full transition into D0 in general.
    Namely, _PS0 may need to be executed in addition to that in some
    cases.  This means that the whole rationale of the "resume of
    dependent devices" mechanism was incorrect to begin with and it's
    best to remove it entirely.
    
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    41863fce