diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2012-03-24 07:46:23 -0400 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2012-03-24 07:46:23 -0400 |
commit | c5e14e763046b11dd8bf57b5dc9f3ab444af8e60 (patch) | |
tree | 8f3c68218ef4ffadeb5c0620b9d2fe6e1fd17281 /kernel | |
parent | 68fe7b23d559763a2e19e5fc1cf7036e4aaecb10 (diff) |
alarmtimer: Don't call rtc_timer_init() when CONFIG_RTC_CLASS=n
rtc_timer_init() is not available when CONFIG_RTC_CLASS=n. Provide a
proper wrapper in the RTC section of alarmtimer.c
Reported-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: John Stultz <john.stultz@linaro.org>
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/time/alarmtimer.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/kernel/time/alarmtimer.c b/kernel/time/alarmtimer.c index c16548807f1e..8a538c55fc7b 100644 --- a/kernel/time/alarmtimer.c +++ b/kernel/time/alarmtimer.c | |||
@@ -46,10 +46,9 @@ static struct alarm_base { | |||
46 | static ktime_t freezer_delta; | 46 | static ktime_t freezer_delta; |
47 | static DEFINE_SPINLOCK(freezer_delta_lock); | 47 | static DEFINE_SPINLOCK(freezer_delta_lock); |
48 | 48 | ||
49 | static struct rtc_timer rtctimer; | ||
50 | |||
51 | #ifdef CONFIG_RTC_CLASS | 49 | #ifdef CONFIG_RTC_CLASS |
52 | /* rtc timer and device for setting alarm wakeups at suspend */ | 50 | /* rtc timer and device for setting alarm wakeups at suspend */ |
51 | static struct rtc_timer rtctimer; | ||
53 | static struct rtc_device *rtcdev; | 52 | static struct rtc_device *rtcdev; |
54 | static DEFINE_SPINLOCK(rtcdev_lock); | 53 | static DEFINE_SPINLOCK(rtcdev_lock); |
55 | 54 | ||
@@ -97,6 +96,11 @@ static int alarmtimer_rtc_add_device(struct device *dev, | |||
97 | return 0; | 96 | return 0; |
98 | } | 97 | } |
99 | 98 | ||
99 | static inline void alarmtimer_rtc_timer_init(void) | ||
100 | { | ||
101 | rtc_timer_init(&rtctimer, NULL, NULL); | ||
102 | } | ||
103 | |||
100 | static struct class_interface alarmtimer_rtc_interface = { | 104 | static struct class_interface alarmtimer_rtc_interface = { |
101 | .add_dev = &alarmtimer_rtc_add_device, | 105 | .add_dev = &alarmtimer_rtc_add_device, |
102 | }; | 106 | }; |
@@ -118,6 +122,7 @@ static inline struct rtc_device *alarmtimer_get_rtcdev(void) | |||
118 | #define rtcdev (NULL) | 122 | #define rtcdev (NULL) |
119 | static inline int alarmtimer_rtc_interface_setup(void) { return 0; } | 123 | static inline int alarmtimer_rtc_interface_setup(void) { return 0; } |
120 | static inline void alarmtimer_rtc_interface_remove(void) { } | 124 | static inline void alarmtimer_rtc_interface_remove(void) { } |
125 | static inline void alarmtimer_rtc_timer_init(void) { } | ||
121 | #endif | 126 | #endif |
122 | 127 | ||
123 | /** | 128 | /** |
@@ -784,7 +789,7 @@ static int __init alarmtimer_init(void) | |||
784 | .nsleep = alarm_timer_nsleep, | 789 | .nsleep = alarm_timer_nsleep, |
785 | }; | 790 | }; |
786 | 791 | ||
787 | rtc_timer_init(&rtctimer, NULL, NULL); | 792 | alarmtimer_rtc_timer_init(); |
788 | 793 | ||
789 | posix_timers_register_clock(CLOCK_REALTIME_ALARM, &alarm_clock); | 794 | posix_timers_register_clock(CLOCK_REALTIME_ALARM, &alarm_clock); |
790 | posix_timers_register_clock(CLOCK_BOOTTIME_ALARM, &alarm_clock); | 795 | posix_timers_register_clock(CLOCK_BOOTTIME_ALARM, &alarm_clock); |