Skip to content

Commit

Permalink
alarmtimer: Don't call rtc_timer_init() when CONFIG_RTC_CLASS=n
Browse files Browse the repository at this point in the history
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 <[email protected]>
Signed-off-by: Thomas Gleixner <[email protected]>
Cc: John Stultz <[email protected]>
  • Loading branch information
KAGA-KOKO committed Mar 24, 2012
1 parent 68fe7b2 commit c5e14e7
Showing 1 changed file with 8 additions and 3 deletions.
11 changes: 8 additions & 3 deletions kernel/time/alarmtimer.c
Original file line number Diff line number Diff line change
Expand Up @@ -46,10 +46,9 @@ static struct alarm_base {
static ktime_t freezer_delta;
static DEFINE_SPINLOCK(freezer_delta_lock);

static struct rtc_timer rtctimer;

#ifdef CONFIG_RTC_CLASS
/* rtc timer and device for setting alarm wakeups at suspend */
static struct rtc_timer rtctimer;
static struct rtc_device *rtcdev;
static DEFINE_SPINLOCK(rtcdev_lock);

Expand Down Expand Up @@ -97,6 +96,11 @@ static int alarmtimer_rtc_add_device(struct device *dev,
return 0;
}

static inline void alarmtimer_rtc_timer_init(void)
{
rtc_timer_init(&rtctimer, NULL, NULL);
}

static struct class_interface alarmtimer_rtc_interface = {
.add_dev = &alarmtimer_rtc_add_device,
};
Expand All @@ -118,6 +122,7 @@ static inline struct rtc_device *alarmtimer_get_rtcdev(void)
#define rtcdev (NULL)
static inline int alarmtimer_rtc_interface_setup(void) { return 0; }
static inline void alarmtimer_rtc_interface_remove(void) { }
static inline void alarmtimer_rtc_timer_init(void) { }
#endif

/**
Expand Down Expand Up @@ -784,7 +789,7 @@ static int __init alarmtimer_init(void)
.nsleep = alarm_timer_nsleep,
};

rtc_timer_init(&rtctimer, NULL, NULL);
alarmtimer_rtc_timer_init();

posix_timers_register_clock(CLOCK_REALTIME_ALARM, &alarm_clock);
posix_timers_register_clock(CLOCK_BOOTTIME_ALARM, &alarm_clock);
Expand Down

0 comments on commit c5e14e7

Please sign in to comment.