lkml.org 
[lkml]   [2012]   [Feb]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[RFC][PATCH 1/7] PM / Sleep: Look for wakeup events in later stages of device suspend
    Date
    From: Rafael J. Wysocki <rjw@sisk.pl>

    Currently, the device suspend code in drivers/base/power/main.c
    only checks if there have been any wakeup events, and therefore the
    ongoing system transition to a sleep state should be aborted, during
    the first (i.e. "suspend") device suspend phase. However, wakeup
    events may be reported later as well, so it's reasonable to look for
    them in the in the subsequent (i.e. "late suspend" and "suspend
    noirq") phases.

    Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
    ---
    drivers/base/power/main.c | 10 ++++++++++
    1 file changed, 10 insertions(+)

    Index: linux/drivers/base/power/main.c
    ===================================================================
    --- linux.orig/drivers/base/power/main.c
    +++ linux/drivers/base/power/main.c
    @@ -889,6 +889,11 @@ static int dpm_suspend_noirq(pm_message_
    if (!list_empty(&dev->power.entry))
    list_move(&dev->power.entry, &dpm_noirq_list);
    put_device(dev);
    +
    + if (pm_wakeup_pending()) {
    + error = -EBUSY;
    + break;
    + }
    }
    mutex_unlock(&dpm_list_mtx);
    if (error)
    @@ -962,6 +967,11 @@ static int dpm_suspend_late(pm_message_t
    if (!list_empty(&dev->power.entry))
    list_move(&dev->power.entry, &dpm_late_early_list);
    put_device(dev);
    +
    + if (pm_wakeup_pending()) {
    + error = -EBUSY;
    + break;
    + }
    }
    mutex_unlock(&dpm_list_mtx);
    if (error)


    \
     
     \ /
      Last update: 2012-02-22 00:37    [W:2.591 / U:0.384 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site