Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=95d9ffbe01fb21d524c86bf77871255066bc6e55
Commit:     95d9ffbe01fb21d524c86bf77871255066bc6e55
Parent:     a065c86e1bfcdd36709025d018965afea3f3a2b6
Author:     Rafael J. Wysocki <[EMAIL PROTECTED]>
AuthorDate: Thu Oct 18 03:04:39 2007 -0700
Committer:  Linus Torvalds <[EMAIL PROTECTED]>
CommitDate: Thu Oct 18 14:37:18 2007 -0700

    PM: Move definition of struct pm_ops to suspend.h
    
    Move the definition of 'struct pm_ops' and related functions from 
<linux/pm.h>
    to <linux/suspend.h> .
    
    There are, at least, the following reasons to do that:
    * 'struct pm_ops' is specifically related to suspend and not to the power
      management in general.
    * As long as 'struct pm_ops' is defined in <linux/pm.h>, any modification 
of it
      causes the entire kernel to be recompiled, which is unnecessary and 
annoying.
    * Some suspend-related features are already defined in <linux/suspend.h>, 
so it
      is logical to move the definition of 'struct pm_ops' into there.
    * 'struct hibernation_ops', being the hibernation-related counterpart of
      'struct pm_ops', is defined in <linux/suspend.h> .
    
    Signed-off-by: Rafael J. Wysocki <[EMAIL PROTECTED]>
    Acked-by: Pavel Machek <[EMAIL PROTECTED]>
    Cc: Len Brown <[EMAIL PROTECTED]>
    Cc: Greg KH <[EMAIL PROTECTED]>
    Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
    Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>
---
 arch/arm/common/sharpsl_pm.c             |    1 +
 arch/arm/mach-at91/pm.c                  |    3 +-
 arch/arm/mach-omap1/pm.c                 |    3 +-
 arch/arm/mach-omap2/pm.c                 |    9 +--
 arch/arm/mach-pnx4008/pm.c               |    2 +-
 arch/arm/mach-pxa/pxa25x.c               |    2 +-
 arch/arm/mach-pxa/pxa27x.c               |    2 +-
 arch/blackfin/mach-common/pm.c           |    2 +-
 arch/powerpc/platforms/52xx/mpc52xx_pm.c |    2 +-
 drivers/char/apm-emulation.c             |    2 +-
 include/asm-arm/arch-pxa/pm.h            |    2 +
 include/linux/pm.h                       |   98 ------------------------
 include/linux/suspend.h                  |  121 +++++++++++++++++++++++++++---
 13 files changed, 122 insertions(+), 127 deletions(-)

diff --git a/arch/arm/common/sharpsl_pm.c b/arch/arm/common/sharpsl_pm.c
index 111a7fa..85795a7 100644
--- a/arch/arm/common/sharpsl_pm.c
+++ b/arch/arm/common/sharpsl_pm.c
@@ -24,6 +24,7 @@
 #include <linux/platform_device.h>
 #include <linux/leds.h>
 #include <linux/apm-emulation.h>
+#include <linux/suspend.h>
 
 #include <asm/hardware.h>
 #include <asm/mach-types.h>
diff --git a/arch/arm/mach-at91/pm.c b/arch/arm/mach-at91/pm.c
index ddf9184..c7c81c9 100644
--- a/arch/arm/mach-at91/pm.c
+++ b/arch/arm/mach-at91/pm.c
@@ -10,10 +10,9 @@
  * (at your option) any later version.
  */
 
-#include <linux/pm.h>
+#include <linux/suspend.h>
 #include <linux/sched.h>
 #include <linux/proc_fs.h>
-#include <linux/pm.h>
 #include <linux/interrupt.h>
 #include <linux/sysfs.h>
 #include <linux/module.h>
diff --git a/arch/arm/mach-omap1/pm.c b/arch/arm/mach-omap1/pm.c
index 089b820..1a27611 100644
--- a/arch/arm/mach-omap1/pm.c
+++ b/arch/arm/mach-omap1/pm.c
@@ -35,10 +35,9 @@
  * 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-#include <linux/pm.h>
+#include <linux/suspend.h>
 #include <linux/sched.h>
 #include <linux/proc_fs.h>
-#include <linux/pm.h>
 #include <linux/interrupt.h>
 #include <linux/sysfs.h>
 #include <linux/module.h>
diff --git a/arch/arm/mach-omap2/pm.c b/arch/arm/mach-omap2/pm.c
index 6f4a543..f9fd3e3 100644
--- a/arch/arm/mach-omap2/pm.c
+++ b/arch/arm/mach-omap2/pm.c
@@ -16,10 +16,9 @@
  * published by the Free Software Foundation.
  */
 
-#include <linux/pm.h>
+#include <linux/suspend.h>
 #include <linux/sched.h>
 #include <linux/proc_fs.h>
-#include <linux/pm.h>
 #include <linux/interrupt.h>
 #include <linux/sysfs.h>
 #include <linux/module.h>
@@ -85,9 +84,6 @@ static int omap2_pm_prepare(suspend_state_t state)
        case PM_SUSPEND_MEM:
                break;
 
-       case PM_SUSPEND_DISK:
-               return -ENOTSUPP;
-
        default:
                return -EINVAL;
        }
@@ -353,9 +349,6 @@ static int omap2_pm_enter(suspend_state_t state)
        case PM_SUSPEND_MEM:
                ret = omap2_pm_suspend();
                break;
-       case PM_SUSPEND_DISK:
-               ret = -ENOTSUPP;
-               break;
        default:
                ret = -EINVAL;
        }
diff --git a/arch/arm/mach-pnx4008/pm.c b/arch/arm/mach-pnx4008/pm.c
index 2a137f3..2330786 100644
--- a/arch/arm/mach-pnx4008/pm.c
+++ b/arch/arm/mach-pnx4008/pm.c
@@ -15,7 +15,7 @@
 #include <linux/rtc.h>
 #include <linux/sched.h>
 #include <linux/proc_fs.h>
-#include <linux/pm.h>
+#include <linux/suspend.h>
 #include <linux/delay.h>
 #include <linux/clk.h>
 
diff --git a/arch/arm/mach-pxa/pxa25x.c b/arch/arm/mach-pxa/pxa25x.c
index 0d6a725..08ccd8f 100644
--- a/arch/arm/mach-pxa/pxa25x.c
+++ b/arch/arm/mach-pxa/pxa25x.c
@@ -20,7 +20,7 @@
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/platform_device.h>
-#include <linux/pm.h>
+#include <linux/suspend.h>
 
 #include <asm/hardware.h>
 #include <asm/arch/irqs.h>
diff --git a/arch/arm/mach-pxa/pxa27x.c b/arch/arm/mach-pxa/pxa27x.c
index 2d7fc39..d0f2b59 100644
--- a/arch/arm/mach-pxa/pxa27x.c
+++ b/arch/arm/mach-pxa/pxa27x.c
@@ -14,7 +14,7 @@
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
-#include <linux/pm.h>
+#include <linux/suspend.h>
 #include <linux/platform_device.h>
 
 #include <asm/hardware.h>
diff --git a/arch/blackfin/mach-common/pm.c b/arch/blackfin/mach-common/pm.c
index b103027..bcb5a49 100644
--- a/arch/blackfin/mach-common/pm.c
+++ b/arch/blackfin/mach-common/pm.c
@@ -32,7 +32,7 @@
  * 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
-#include <linux/pm.h>
+#include <linux/suspend.h>
 #include <linux/sched.h>
 #include <linux/proc_fs.h>
 #include <linux/io.h>
diff --git a/arch/powerpc/platforms/52xx/mpc52xx_pm.c 
b/arch/powerpc/platforms/52xx/mpc52xx_pm.c
index ee2e763..0809ec1 100644
--- a/arch/powerpc/platforms/52xx/mpc52xx_pm.c
+++ b/arch/powerpc/platforms/52xx/mpc52xx_pm.c
@@ -1,5 +1,5 @@
 #include <linux/init.h>
-#include <linux/pm.h>
+#include <linux/suspend.h>
 #include <linux/io.h>
 #include <asm/time.h>
 #include <asm/cacheflush.h>
diff --git a/drivers/char/apm-emulation.c b/drivers/char/apm-emulation.c
index ec116df..c99e43b 100644
--- a/drivers/char/apm-emulation.c
+++ b/drivers/char/apm-emulation.c
@@ -18,7 +18,7 @@
 #include <linux/apm_bios.h>
 #include <linux/capability.h>
 #include <linux/sched.h>
-#include <linux/pm.h>
+#include <linux/suspend.h>
 #include <linux/apm-emulation.h>
 #include <linux/freezer.h>
 #include <linux/device.h>
diff --git a/include/asm-arm/arch-pxa/pm.h b/include/asm-arm/arch-pxa/pm.h
index 6903db7..9d9f4b5 100644
--- a/include/asm-arm/arch-pxa/pm.h
+++ b/include/asm-arm/arch-pxa/pm.h
@@ -7,6 +7,8 @@
  *
  */
 
+#include <linux/suspend.h>
+
 struct pxa_cpu_pm_fns {
        int     save_size;
        void    (*save)(unsigned long *);
diff --git a/include/linux/pm.h b/include/linux/pm.h
index 48b71ba..09a309b 100644
--- a/include/linux/pm.h
+++ b/include/linux/pm.h
@@ -104,104 +104,6 @@ extern void (*pm_idle)(void);
 extern void (*pm_power_off)(void);
 extern void (*pm_power_off_prepare)(void);
 
-typedef int __bitwise suspend_state_t;
-
-#define PM_SUSPEND_ON          ((__force suspend_state_t) 0)
-#define PM_SUSPEND_STANDBY     ((__force suspend_state_t) 1)
-#define PM_SUSPEND_MEM         ((__force suspend_state_t) 3)
-#define PM_SUSPEND_MAX         ((__force suspend_state_t) 4)
-
-/**
- * struct pm_ops - Callbacks for managing platform dependent system sleep
- *     states.
- *
- * @valid: Callback to determine if given system sleep state is supported by
- *     the platform.
- *     Valid (ie. supported) states are advertised in /sys/power/state.  Note
- *     that it still may be impossible to enter given system sleep state if the
- *     conditions aren't right.
- *     There is the %pm_valid_only_mem function available that can be assigned
- *     to this if the platform only supports mem sleep.
- *
- * @set_target: Tell the platform which system sleep state is going to be
- *     entered.
- *     @set_target() is executed right prior to suspending devices.  The
- *     information conveyed to the platform code by @set_target() should be
- *     disregarded by the platform as soon as @finish() is executed and if
- *     @prepare() fails.  If @set_target() fails (ie. returns nonzero),
- *     @prepare(), @enter() and @finish() will not be called by the PM core.
- *     This callback is optional.  However, if it is implemented, the argument
- *     passed to @prepare(), @enter() and @finish() is meaningless and should
- *     be ignored.
- *
- * @prepare: Prepare the platform for entering the system sleep state indicated
- *     by @set_target() or represented by the argument if @set_target() is not
- *     implemented.
- *     @prepare() is called right after devices have been suspended (ie. the
- *     appropriate .suspend() method has been executed for each device) and
- *     before the nonboot CPUs are disabled (it is executed with IRQs enabled).
- *     This callback is optional.  It returns 0 on success or a negative
- *     error code otherwise, in which case the system cannot enter the desired
- *     sleep state (@enter() and @finish() will not be called in that case).
- *
- * @enter: Enter the system sleep state indicated by @set_target() or
- *     represented by the argument if @set_target() is not implemented.
- *     This callback is mandatory.  It returns 0 on success or a negative
- *     error code otherwise, in which case the system cannot enter the desired
- *     sleep state.
- *
- * @finish: Called when the system has just left a sleep state, right after
- *     the nonboot CPUs have been enabled and before devices are resumed (it is
- *     executed with IRQs enabled).  If @set_target() is not implemented, the
- *     argument represents the sleep state being left.
- *     This callback is optional, but should be implemented by the platforms
- *     that implement @prepare().  If implemented, it is always called after
- *     @enter() (even if @enter() fails).
- */
-struct pm_ops {
-       int (*valid)(suspend_state_t state);
-       int (*set_target)(suspend_state_t state);
-       int (*prepare)(suspend_state_t state);
-       int (*enter)(suspend_state_t state);
-       int (*finish)(suspend_state_t state);
-};
-
-#ifdef CONFIG_SUSPEND
-extern struct pm_ops *pm_ops;
-
-/**
- * pm_set_ops - set platform dependent power management ops
- * @pm_ops: The new power management operations to set.
- */
-extern void pm_set_ops(struct pm_ops *pm_ops);
-extern int pm_valid_only_mem(suspend_state_t state);
-
-/**
- * arch_suspend_disable_irqs - disable IRQs for suspend
- *
- * Disables IRQs (in the default case). This is a weak symbol in the common
- * code and thus allows architectures to override it if more needs to be
- * done. Not called for suspend to disk.
- */
-extern void arch_suspend_disable_irqs(void);
-
-/**
- * arch_suspend_enable_irqs - enable IRQs after suspend
- *
- * Enables IRQs (in the default case). This is a weak symbol in the common
- * code and thus allows architectures to override it if more needs to be
- * done. Not called for suspend to disk.
- */
-extern void arch_suspend_enable_irqs(void);
-
-extern int pm_suspend(suspend_state_t state);
-#else /* !CONFIG_SUSPEND */
-#define suspend_valid_only_mem NULL
-
-static inline void pm_set_ops(struct pm_ops *pm_ops) {}
-static inline int pm_suspend(suspend_state_t state) { return -ENOSYS; }
-#endif /* !CONFIG_SUSPEND */
-
 /*
  * Device power management
  */
diff --git a/include/linux/suspend.h b/include/linux/suspend.h
index 388cace..c230680 100644
--- a/include/linux/suspend.h
+++ b/include/linux/suspend.h
@@ -1,5 +1,5 @@
-#ifndef _LINUX_SWSUSP_H
-#define _LINUX_SWSUSP_H
+#ifndef _LINUX_SUSPEND_H
+#define _LINUX_SUSPEND_H
 
 #if defined(CONFIG_X86) || defined(CONFIG_FRV) || defined(CONFIG_PPC32) || 
defined(CONFIG_PPC64)
 #include <asm/suspend.h>
@@ -9,6 +9,113 @@
 #include <linux/init.h>
 #include <linux/pm.h>
 #include <linux/mm.h>
+#include <asm/errno.h>
+
+#if defined(CONFIG_PM_SLEEP) && defined(CONFIG_VT) && 
defined(CONFIG_VT_CONSOLE)
+extern int pm_prepare_console(void);
+extern void pm_restore_console(void);
+#else
+static inline int pm_prepare_console(void) { return 0; }
+static inline void pm_restore_console(void) {}
+#endif
+
+typedef int __bitwise suspend_state_t;
+
+#define PM_SUSPEND_ON          ((__force suspend_state_t) 0)
+#define PM_SUSPEND_STANDBY     ((__force suspend_state_t) 1)
+#define PM_SUSPEND_MEM         ((__force suspend_state_t) 3)
+#define PM_SUSPEND_MAX         ((__force suspend_state_t) 4)
+
+/**
+ * struct pm_ops - Callbacks for managing platform dependent system sleep
+ *     states.
+ *
+ * @valid: Callback to determine if given system sleep state is supported by
+ *     the platform.
+ *     Valid (ie. supported) states are advertised in /sys/power/state.  Note
+ *     that it still may be impossible to enter given system sleep state if the
+ *     conditions aren't right.
+ *     There is the %pm_valid_only_mem function available that can be assigned
+ *     to this if the platform only supports mem sleep.
+ *
+ * @set_target: Tell the platform which system sleep state is going to be
+ *     entered.
+ *     @set_target() is executed right prior to suspending devices.  The
+ *     information conveyed to the platform code by @set_target() should be
+ *     disregarded by the platform as soon as @finish() is executed and if
+ *     @prepare() fails.  If @set_target() fails (ie. returns nonzero),
+ *     @prepare(), @enter() and @finish() will not be called by the PM core.
+ *     This callback is optional.  However, if it is implemented, the argument
+ *     passed to @prepare(), @enter() and @finish() is meaningless and should
+ *     be ignored.
+ *
+ * @prepare: Prepare the platform for entering the system sleep state indicated
+ *     by @set_target() or represented by the argument if @set_target() is not
+ *     implemented.
+ *     @prepare() is called right after devices have been suspended (ie. the
+ *     appropriate .suspend() method has been executed for each device) and
+ *     before the nonboot CPUs are disabled (it is executed with IRQs enabled).
+ *     This callback is optional.  It returns 0 on success or a negative
+ *     error code otherwise, in which case the system cannot enter the desired
+ *     sleep state (@enter() and @finish() will not be called in that case).
+ *
+ * @enter: Enter the system sleep state indicated by @set_target() or
+ *     represented by the argument if @set_target() is not implemented.
+ *     This callback is mandatory.  It returns 0 on success or a negative
+ *     error code otherwise, in which case the system cannot enter the desired
+ *     sleep state.
+ *
+ * @finish: Called when the system has just left a sleep state, right after
+ *     the nonboot CPUs have been enabled and before devices are resumed (it is
+ *     executed with IRQs enabled).  If @set_target() is not implemented, the
+ *     argument represents the sleep state being left.
+ *     This callback is optional, but should be implemented by the platforms
+ *     that implement @prepare().  If implemented, it is always called after
+ *     @enter() (even if @enter() fails).
+ */
+struct pm_ops {
+       int (*valid)(suspend_state_t state);
+       int (*set_target)(suspend_state_t state);
+       int (*prepare)(suspend_state_t state);
+       int (*enter)(suspend_state_t state);
+       int (*finish)(suspend_state_t state);
+};
+
+#ifdef CONFIG_SUSPEND
+extern struct pm_ops *pm_ops;
+
+/**
+ * pm_set_ops - set platform dependent power management ops
+ * @pm_ops: The new power management operations to set.
+ */
+extern void pm_set_ops(struct pm_ops *pm_ops);
+extern int pm_valid_only_mem(suspend_state_t state);
+
+/**
+ * arch_suspend_disable_irqs - disable IRQs for suspend
+ *
+ * Disables IRQs (in the default case). This is a weak symbol in the common
+ * code and thus allows architectures to override it if more needs to be
+ * done. Not called for suspend to disk.
+ */
+extern void arch_suspend_disable_irqs(void);
+
+/**
+ * arch_suspend_enable_irqs - enable IRQs after suspend
+ *
+ * Enables IRQs (in the default case). This is a weak symbol in the common
+ * code and thus allows architectures to override it if more needs to be
+ * done. Not called for suspend to disk.
+ */
+extern void arch_suspend_enable_irqs(void);
+
+extern int pm_suspend(suspend_state_t state);
+#else /* !CONFIG_SUSPEND */
+#define suspend_valid_only_mem NULL
+
+static inline void pm_set_ops(struct pm_ops *pm_ops) {}
+static inline int pm_suspend(suspend_state_t state) { return -ENOSYS; }
+#endif /* !CONFIG_SUSPEND */
 
 /* struct pbe is used for creating lists of pages that should be restored
  * atomically during the resume from disk, because the page frames they have
@@ -24,14 +131,6 @@ struct pbe {
 extern void drain_local_pages(void);
 extern void mark_free_pages(struct zone *zone);
 
-#if defined(CONFIG_PM_SLEEP) && defined(CONFIG_VT) && 
defined(CONFIG_VT_CONSOLE)
-extern int pm_prepare_console(void);
-extern void pm_restore_console(void);
-#else
-static inline int pm_prepare_console(void) { return 0; }
-static inline void pm_restore_console(void) {}
-#endif
-
 /**
  * struct hibernation_ops - hibernation platform support
  *
@@ -130,4 +229,4 @@ static inline void register_nosave_region_late(unsigned 
long b, unsigned long e)
 }
 #endif
 
-#endif /* _LINUX_SWSUSP_H */
+#endif /* _LINUX_SUSPEND_H */
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to