Message ID | 201304130022.49987.heiko@sntech.de |
---|---|
State | New |
Headers | show |
On Saturday 13 April 2013 00:22:48 Heiko Stübner wrote: > > Without dt support, you get this: > > CC drivers/clocksource/samsung_pwm.o > drivers/clocksource/samsung_pwm.c:620: warning: ‘samsung_pwm_clocksource_init_of’ defined but not used > > So, something like the following might be necessary That patch should not be required any more with the definition #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 == (clocksource_of_init_fn)NULL) ? fn : fn } #else static inline void clocksource_of_init(void) {} #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 which turns the ‘samsung_pwm_clocksource_init_of’ function into an unused symbol that gets silently dropped by gcc, at least in theory. Are you using the latest clksrc/cleanup branch as a base? Arnd
Am Samstag, 13. April 2013, 00:26:43 schrieb Arnd Bergmann: > On Saturday 13 April 2013 00:22:48 Heiko Stübner wrote: > > Without dt support, you get this: > > CC drivers/clocksource/samsung_pwm.o > > > > drivers/clocksource/samsung_pwm.c:620: warning: > > ‘samsung_pwm_clocksource_init_of’ defined but not used > > > > So, something like the following might be necessary > > That patch should not be required any more with the definition > > #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 == (clocksource_of_init_fn)NULL) ? fn : fn > } #else > static inline void clocksource_of_init(void) {} > #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 > > which turns the ‘samsung_pwm_clocksource_init_of’ function into an unused > symbol that gets silently dropped by gcc, at least in theory. Are you > using the latest clksrc/cleanup branch as a base? Nope, I just put the stuff on top of all the other changes. So it seems everything is fine and working ... very nice :-) Heiko
On Saturday 13 of April 2013 00:39:24 Heiko Stübner wrote: > Am Samstag, 13. April 2013, 00:26:43 schrieb Arnd Bergmann: > > On Saturday 13 April 2013 00:22:48 Heiko Stübner wrote: > > > Without dt support, you get this: > > > CC drivers/clocksource/samsung_pwm.o > > > > > > drivers/clocksource/samsung_pwm.c:620: warning: > > > ‘samsung_pwm_clocksource_init_of’ defined but not used > > > > > > So, something like the following might be necessary > > > > That patch should not be required any more with the definition > > > > #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 == (clocksource_of_init_fn)NULL) ? fn > > : fn > > > > } #else > > static inline void clocksource_of_init(void) {} > > #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 > > > > which turns the ‘samsung_pwm_clocksource_init_of’ function into an > > unused symbol that gets silently dropped by gcc, at least in theory. > > Are you using the latest clksrc/cleanup branch as a base? > > Nope, I just put the stuff on top of all the other changes. So it seems > everything is fine and working ... very nice :-) Great. Thanks for testing. I will try to rebase my patches for s3c64xx on top of this and do some testing as well. Best regards, Tomasz
diff --git a/drivers/clocksource/samsung_pwm.c b/drivers/clocksource/samsung_pwm.c index a12ee08..2bf8303 100644 --- a/drivers/clocksource/samsung_pwm.c +++ b/drivers/clocksource/samsung_pwm.c @@ -617,6 +617,7 @@ static void __init __samsung_pwm_clocksource_init( samsung_clocksource_init(); } +#ifdef CONFIG_CLKSRC_OF static void __init samsung_pwm_clocksource_init_of(struct device_node *np) { __samsung_pwm_clocksource_init(NULL, np); @@ -629,6 +630,7 @@ CLOCKSOURCE_OF_DECLARE(s5p6440_pwm, "samsung,s5p6440-pwm", samsung_pwm_clocksource_init_of); CLOCKSOURCE_OF_DECLARE(s5pc100_pwm, "samsung,s5pc100-pwm", samsung_pwm_clocksource_init_of); +#endif void __init samsung_pwm_clocksource_init(struct platform_device *pdev) {