11 May, 2010

2 commits


13 Jun, 2009

1 commit

  • Remove the ->suspend_late() and ->resume_early() callbacks
    from struct bus_type V2. These callbacks are legacy stuff
    at this point and since there seem to be no in-tree users
    we may as well remove them. New users should use dev_pm_ops.

    Signed-off-by: Magnus Damm
    Acked-by: Pavel Machek
    Acked-by: Greg Kroah-Hartman
    Signed-off-by: Rafael J. Wysocki

    Magnus Damm
     

20 Apr, 2008

1 commit

  • Modify the PM core to protect its data structures, specifically the
    dpm_active list, from being corrupted if a child of the currently
    suspending device is registered concurrently with its ->suspend()
    callback. In that case, since the new device (the child) is added
    to dpm_active after its parent, the PM core will attempt to
    suspend it after the parent, which is wrong.

    Introduce a new member of struct dev_pm_info, called 'sleeping',
    and use it to check if the parent of the device being added to
    dpm_active has been suspended, in which case the device registration
    fails. Also, use 'sleeping' for checking if the ordering of devices
    on dpm_active is correct.

    Introduce variable 'all_sleeping' that will be set to 'true' once all
    devices have been suspended and make new device registrations fail
    until 'all_sleeping' is reset to 'false', in order to avoid having
    unsuspended devices around while the system is going into a sleep state.

    Remove pm_sleep_rwsem which is not necessary any more.

    Special thanks to Alan Stern for discussions and suggestions that
    lead to the creation of this patch.

    Signed-off-by: Rafael J. Wysocki
    Acked-by: Pavel Machek
    Signed-off-by: Greg Kroah-Hartman

    Rafael J. Wysocki
     

24 Feb, 2008

1 commit

  • During the last step of hibernation in the "platform" mode (with the
    help of ACPI) we use the suspend code, including the devices'
    ->suspend() methods, to prepare the system for entering the ACPI S4
    system sleep state.

    But at least for some devices the operations performed by the
    ->suspend() callback in that case must be different from its operations
    during regular suspend.

    For this reason, introduce the new PM event type PM_EVENT_HIBERNATE and
    pass it to the device drivers' ->suspend() methods during the last phase
    of hibernation, so that they can distinguish this case and handle it as
    appropriate. Modify the drivers that handle PM_EVENT_SUSPEND in a
    special way and need to handle PM_EVENT_HIBERNATE in the same way.

    These changes are necessary to fix a hibernation regression related
    to the i915 driver (ref. http://lkml.org/lkml/2008/2/22/488).

    Signed-off-by: Rafael J. Wysocki
    Acked-by: Pavel Machek
    Tested-by: Jeff Chua
    Signed-off-by: Linus Torvalds

    Rafael J. Wysocki
     

02 Feb, 2008

1 commit

  • The /sys/devices/.../power/state files have been gone for a while
    now, but I just noticed some documentation that still refers to
    them. (Fortunately described as DEPRECATED and WILL REMOVE).

    Time to remove that obsolete documentation too ...

    Signed-off-by: David Brownell
    Acked-by: Pavel Machek
    Signed-off-by: Rafael J. Wysocki
    Signed-off-by: Len Brown

    David Brownell
     

26 Sep, 2006

1 commit

  • This turned into a rewrite of Documentation/power/devices.txt:

    - Provide more of the "big picture"

    - Fixup some of the horribly ancient/obsolete description of device suspend()
    semantics; lots of text just got deleted.

    - Add a decent description of PM_EVENT_* codes, including the new PRETHAW code
    needed in some swsusp scenarios.

    - Describe the new PM factorization from Linus:
    * class suspend, current suspend, then suspend_late
    * NOT suspend_prepare, it wasn't really usable
    * resume_early, current resume, class resume.

    - Updates power/state docs to be correct, and deprecate its usage except for
    driver testing.

    Signed-off-by: David Brownell
    Signed-off-by: Greg Kroah-Hartman

    David Brownell
     

22 Jun, 2006

1 commit


18 May, 2005

1 commit

  • The driver model has a "detach_state" mechanism that:

    - Has never been used by any in-kernel drive;
    - Is superfluous, since driver remove() methods can do the same thing;
    - Became buggy when the suspend() parameter changed semantics and type;
    - Could self-deadlock when called from certain suspend contexts;
    - Is effectively wasted documentation, object code, and headspace.

    This removes that "detach_state" mechanism; net code shrink, as well
    as a per-device saving in the driver model and sysfs.

    Signed-off-by: David Brownell
    Signed-off-by: Greg Kroah-Hartman

    David Brownell
     

17 Apr, 2005

1 commit

  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds