Commit 97740400bc76b64781d01f8cdfbcf750582006ef

Authored by Linus Torvalds

Merge branch 'pm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm

* 'pm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
  PM / Hibernate: Drop the check of swap space size for compressed image
  PM / shmobile: fix A3SP suspend method
  PM / Domains: Skip governor functions for CONFIG_PM_RUNTIME unset
  PM / Domains: Fix build for CONFIG_PM_SLEEP unset
  PM: Make sysrq-o be available for CONFIG_PM unset

Showing 5 changed files Side-by-side Diff

arch/arm/mach-shmobile/pm-sh7372.c
... ... @@ -276,7 +276,7 @@
276 276 * Serial consoles make use of SCIF hardware located in A3SP,
277 277 * keep such power domain on if "no_console_suspend" is set.
278 278 */
279   - return console_suspend_enabled ? -EBUSY : 0;
  279 + return console_suspend_enabled ? 0 : -EBUSY;
280 280 }
281 281  
282 282 struct sh7372_pm_domain sh7372_a3sp = {
drivers/base/power/domain.c
... ... @@ -1429,6 +1429,8 @@
1429 1429 return 0;
1430 1430 }
1431 1431  
  1432 +#ifdef CONFIG_PM_SLEEP
  1433 +
1432 1434 /**
1433 1435 * pm_genpd_default_suspend - Default "device suspend" for PM domians.
1434 1436 * @dev: Device to handle.
... ... @@ -1516,6 +1518,19 @@
1516 1518  
1517 1519 return cb ? cb(dev) : pm_generic_thaw(dev);
1518 1520 }
  1521 +
  1522 +#else /* !CONFIG_PM_SLEEP */
  1523 +
  1524 +#define pm_genpd_default_suspend NULL
  1525 +#define pm_genpd_default_suspend_late NULL
  1526 +#define pm_genpd_default_resume_early NULL
  1527 +#define pm_genpd_default_resume NULL
  1528 +#define pm_genpd_default_freeze NULL
  1529 +#define pm_genpd_default_freeze_late NULL
  1530 +#define pm_genpd_default_thaw_early NULL
  1531 +#define pm_genpd_default_thaw NULL
  1532 +
  1533 +#endif /* !CONFIG_PM_SLEEP */
1519 1534  
1520 1535 /**
1521 1536 * pm_genpd_init - Initialize a generic I/O PM domain object.
drivers/base/power/domain_governor.c
... ... @@ -12,6 +12,8 @@
12 12 #include <linux/pm_qos.h>
13 13 #include <linux/hrtimer.h>
14 14  
  15 +#ifdef CONFIG_PM_RUNTIME
  16 +
15 17 /**
16 18 * default_stop_ok - Default PM domain governor routine for stopping devices.
17 19 * @dev: Device to check.
18 20  
... ... @@ -137,15 +139,27 @@
137 139 return true;
138 140 }
139 141  
140   -struct dev_power_governor simple_qos_governor = {
141   - .stop_ok = default_stop_ok,
142   - .power_down_ok = default_power_down_ok,
143   -};
144   -
145 142 static bool always_on_power_down_ok(struct dev_pm_domain *domain)
146 143 {
147 144 return false;
148 145 }
  146 +
  147 +#else /* !CONFIG_PM_RUNTIME */
  148 +
  149 +bool default_stop_ok(struct device *dev)
  150 +{
  151 + return false;
  152 +}
  153 +
  154 +#define default_power_down_ok NULL
  155 +#define always_on_power_down_ok NULL
  156 +
  157 +#endif /* !CONFIG_PM_RUNTIME */
  158 +
  159 +struct dev_power_governor simple_qos_governor = {
  160 + .stop_ok = default_stop_ok,
  161 + .power_down_ok = default_power_down_ok,
  162 +};
149 163  
150 164 /**
151 165 * pm_genpd_gov_always_on - A governor implementing an always-on policy
... ... @@ -23,6 +23,7 @@
23 23 endif
24 24  
25 25 obj-y += sched/
  26 +obj-y += power/
26 27  
27 28 obj-$(CONFIG_FREEZER) += freezer.o
28 29 obj-$(CONFIG_PROFILING) += profile.o
... ... @@ -52,8 +53,6 @@
52 53 obj-$(CONFIG_UID16) += uid16.o
53 54 obj-$(CONFIG_MODULES) += module.o
54 55 obj-$(CONFIG_KALLSYMS) += kallsyms.o
55   -obj-$(CONFIG_PM) += power/
56   -obj-$(CONFIG_FREEZER) += power/
57 56 obj-$(CONFIG_BSD_PROCESS_ACCT) += acct.o
58 57 obj-$(CONFIG_KEXEC) += kexec.o
59 58 obj-$(CONFIG_BACKTRACE_SELF_TEST) += backtracetest.o
... ... @@ -773,8 +773,7 @@
773 773  
774 774 pr_debug("PM: Free swap pages: %u\n", free_swap);
775 775  
776   - required = PAGES_FOR_IO + ((flags & SF_NOCOMPRESS_MODE) ?
777   - nr_pages : (nr_pages * LZO_CMP_PAGES) / LZO_UNC_PAGES + 1);
  776 + required = PAGES_FOR_IO + nr_pages;
778 777 return free_swap > required;
779 778 }
780 779  
... ... @@ -802,10 +801,12 @@
802 801 printk(KERN_ERR "PM: Cannot get swap writer\n");
803 802 return error;
804 803 }
805   - if (!enough_swap(pages, flags)) {
806   - printk(KERN_ERR "PM: Not enough free swap\n");
807   - error = -ENOSPC;
808   - goto out_finish;
  804 + if (flags & SF_NOCOMPRESS_MODE) {
  805 + if (!enough_swap(pages, flags)) {
  806 + printk(KERN_ERR "PM: Not enough free swap\n");
  807 + error = -ENOSPC;
  808 + goto out_finish;
  809 + }
809 810 }
810 811 memset(&snapshot, 0, sizeof(struct snapshot_handle));
811 812 error = snapshot_read_next(&snapshot);