string: factorize skip_spaces and export it to be generally available
[safe/jmp/linux-2.6] / include / linux / platform_device.h
index 672a698..71ff887 100644 (file)
@@ -60,8 +60,6 @@ struct platform_driver {
        int (*remove)(struct platform_device *);
        void (*shutdown)(struct platform_device *);
        int (*suspend)(struct platform_device *, pm_message_t state);
-       int (*suspend_late)(struct platform_device *, pm_message_t state);
-       int (*resume_early)(struct platform_device *);
        int (*resume)(struct platform_device *);
        struct device_driver driver;
        struct platform_device_id *id_table;
@@ -85,6 +83,8 @@ struct early_platform_driver {
        struct platform_driver *pdrv;
        struct list_head list;
        int requested_id;
+       char *buffer;
+       int bufsize;
 };
 
 #define EARLY_PLATFORM_ID_UNSET -2
@@ -104,21 +104,29 @@ extern int early_platform_driver_probe(char *class_str,
                                       int nr_probe, int user_only);
 extern void early_platform_cleanup(void);
 
+#define early_platform_init(class_string, platdrv)             \
+       early_platform_init_buffer(class_string, platdrv, NULL, 0)
 
 #ifndef MODULE
-#define early_platform_init(class_string, platform_driver)             \
+#define early_platform_init_buffer(class_string, platdrv, buf, bufsiz) \
 static __initdata struct early_platform_driver early_driver = {                \
        .class_str = class_string,                                      \
-       .pdrv = platform_driver,                                        \
+       .buffer = buf,                                                  \
+       .bufsize = bufsiz,                                              \
+       .pdrv = platdrv,                                                \
        .requested_id = EARLY_PLATFORM_ID_UNSET,                        \
 };                                                                     \
-static int __init early_platform_driver_setup_func(char *buf)          \
+static int __init early_platform_driver_setup_func(char *buffer)       \
 {                                                                      \
-       return early_platform_driver_register(&early_driver, buf);      \
+       return early_platform_driver_register(&early_driver, buffer);   \
 }                                                                      \
 early_param(class_string, early_platform_driver_setup_func)
 #else /* MODULE */
-#define early_platform_init(class_string, platform_driver)
+#define early_platform_init_buffer(class_string, platdrv, buf, bufsiz) \
+static inline char *early_platform_driver_setup_func(void)             \
+{                                                                      \
+       return bufsiz ? buf : NULL;                                     \
+}
 #endif /* MODULE */
 
 #endif /* _PLATFORM_DEVICE_H_ */