|
@@ -332,16 +332,23 @@ extern int clocksource_mmio_init(void __iomem *, const char *,
|
|
|
|
|
|
extern int clocksource_i8253_init(void);
|
|
|
|
|
|
+struct device_node;
|
|
|
+typedef void(*clocksource_of_init_fn)(struct device_node *);
|
|
|
#ifdef CONFIG_CLKSRC_OF
|
|
|
extern void clocksource_of_init(void);
|
|
|
|
|
|
#define CLOCKSOURCE_OF_DECLARE(name, compat, fn) \
|
|
|
static const struct of_device_id __clksrc_of_table_##name \
|
|
|
__used __section(__clksrc_of_table) \
|
|
|
- = { .compatible = compat, .data = fn };
|
|
|
+ = { .compatible = compat, \
|
|
|
+ .data = (fn == (clocksource_of_init_fn)NULL) ? fn : fn }
|
|
|
#else
|
|
|
static inline void clocksource_of_init(void) {}
|
|
|
-#define CLOCKSOURCE_OF_DECLARE(name, compat, fn)
|
|
|
+#define CLOCKSOURCE_OF_DECLARE(name, compat, fn) \
|
|
|
+ static const struct of_device_id __clksrc_of_table_##name \
|
|
|
+ __attribute__((unused)) \
|
|
|
+ = { .compatible = compat, \
|
|
|
+ .data = (fn == (clocksource_of_init_fn)NULL) ? fn : fn }
|
|
|
#endif
|
|
|
|
|
|
#endif /* _LINUX_CLOCKSOURCE_H */
|