lkml.org 
[lkml]   [2014]   [Jan]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Subject[RFC][PATCH 0/3] PM: Mechanism to avoid resuming runtime-suspended devices during system suspend
    Date
    Hi,

    The following experimental series of 3 patches implements a mechanism allowing
    subsystems to avoid resuming runtime-suspended devices during system suspend.

    As far as the PM core goes, it introduces a new flag, power.no_suspend, that
    will be set by the core for devices which can stay suspended. The idea is that
    subsystems should know which devices can stay suspended over system suspend
    and to allow them to tell the core about that patch [1/3] changes the calling
    convention of the device PM .prepare() callback so that it can return a positive
    value on success to be interpreted as "this device has been runtime-suspended
    and doesn't need to be resumed" information. If .prepare() returns a positive
    number for certain device, the core will set power.no_suspend and will not run
    suspend callbacks for device with that flag set going forward (during this
    particular system suspend transition).

    However, parents may generally need to be resumed so that the suspend of their
    children can be carried out, so the PM core will clear power.no_suspend for
    the parents of devices whose power.no_suspend is not set (unless those parents
    have power.ignore_children set).

    Patch [2/3] adds a new runtime PM helper function that subsystems can use to
    check whether or not a given device is runtime-suspended when .prepare() is being
    executed for it.

    Patch [3/3] implements the subsystem part for the ACPI PM domain, because that
    is relatively straightforward. If the general approach makes sense, I'll think
    about doing the same for PCI.

    Comments welcome!

    Thanks,
    Rafael



    \
     
     \ /
      Last update: 2014-01-15 01:01    [W:4.179 / U:0.876 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site