Skip to content

Commit

Permalink
PM / Hibernate: Add resumedelay kernel param in addition to resumewait
Browse files Browse the repository at this point in the history
Patch "PM / Hibernate: Add resumewait param to support MMC-like
devices as resume file" added the resumewait kernel command line
option.  The present patch adds resumedelay so that
resumewait/delay were analogous to rootwait/delay.

[rjw: Modified the subject and changelog slightly.]

Signed-off-by: Barry Song <baohua.song@csr.com>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
  • Loading branch information
Barry Song authored and Rafael J. Wysocki committed Oct 16, 2011
1 parent bf1c138 commit f126f73
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 0 deletions.
3 changes: 3 additions & 0 deletions Documentation/kernel-parameters.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2240,6 +2240,9 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
in <PAGE_SIZE> units (needed only for swap files).
See Documentation/power/swsusp-and-swap-files.txt

resumedelay= [HIBERNATION] Delay (in seconds) to pause before attempting to
read the resume files

resumewait [HIBERNATION] Wait (indefinitely) for resume device to show up.
Useful for devices that are detected asynchronously
(e.g. USB and MMC devices).
Expand Down
14 changes: 14 additions & 0 deletions kernel/power/hibernate.c
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
static int nocompress = 0;
static int noresume = 0;
static int resume_wait = 0;
static int resume_delay = 0;
static char resume_file[256] = CONFIG_PM_STD_PARTITION;
dev_t swsusp_resume_device;
sector_t swsusp_resume_block;
Expand Down Expand Up @@ -730,6 +731,12 @@ static int software_resume(void)

pr_debug("PM: Checking hibernation image partition %s\n", resume_file);

if (resume_delay) {
printk(KERN_INFO "Waiting %dsec before reading resume device...\n",
resume_delay);
ssleep(resume_delay);
}

/* Check if the device is there */
swsusp_resume_device = name_to_dev_t(resume_file);
if (!swsusp_resume_device) {
Expand Down Expand Up @@ -1079,8 +1086,15 @@ static int __init resumewait_setup(char *str)
return 1;
}

static int __init resumedelay_setup(char *str)
{
resume_delay = simple_strtoul(str, NULL, 0);
return 1;
}

__setup("noresume", noresume_setup);
__setup("resume_offset=", resume_offset_setup);
__setup("resume=", resume_setup);
__setup("hibernate=", hibernate_setup);
__setup("resumewait", resumewait_setup);
__setup("resumedelay=", resumedelay_setup);

0 comments on commit f126f73

Please sign in to comment.