summaryrefslogtreecommitdiffstats
path: root/include/linux/platform_device.h
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2010-01-04 15:33:22 -0800
committerDavid S. Miller <davem@davemloft.net>2010-01-04 15:33:22 -0800
commit5958eed76ccc8c361f872829bdc4b8c6dc9cd379 (patch)
tree8f8dfcced082db674b0ae3ca3af9fdb6dde59dae /include/linux/platform_device.h
parentc7c17c2779075e675cb3c7fe2ecde67e226771fb (diff)
parentc5974b835a909ff15c3b7e6cf6789b5eb919f419 (diff)
downloadkernel-crypto-5958eed76ccc8c361f872829bdc4b8c6dc9cd379.tar.gz
kernel-crypto-5958eed76ccc8c361f872829bdc4b8c6dc9cd379.tar.xz
kernel-crypto-5958eed76ccc8c361f872829bdc4b8c6dc9cd379.zip
Merge branch 'master' of /home/davem/src/GIT/linux-2.6/
Diffstat (limited to 'include/linux/platform_device.h')
-rw-r--r--include/linux/platform_device.h20
1 files changed, 15 insertions, 5 deletions
diff --git a/include/linux/platform_device.h b/include/linux/platform_device.h
index 3c6675c2444..71ff887ca44 100644
--- a/include/linux/platform_device.h
+++ b/include/linux/platform_device.h
@@ -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_ */