|
@@ -83,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
|
|
@@ -102,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_ */
|