Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 254028
b: refs/heads/master
c: 1c6b39a
h: refs/heads/master
v: v3
  • Loading branch information
John Stultz committed Jun 21, 2011
1 parent 86e6750 commit 5ed37d2
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 2 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: c008ba58af24dc5d0d8e9fe6e59d876910254761
refs/heads/master: 1c6b39ad3f01514fd8dd84b5b412bafb75c19388
23 changes: 22 additions & 1 deletion trunk/kernel/time/alarmtimer.c
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,9 @@ static struct rtc_device *alarmtimer_get_rtcdev(void)

return ret;
}
#else
#define alarmtimer_get_rtcdev() (0)
#define rtcdev (0)
#endif


Expand Down Expand Up @@ -231,7 +234,7 @@ static int alarmtimer_suspend(struct device *dev)
freezer_delta = ktime_set(0, 0);
spin_unlock_irqrestore(&freezer_delta_lock, flags);

rtc = alarmtimer_get_rtcdev();
rtc = rtcdev;
/* If we have no rtcdev, just return */
if (!rtc)
return 0;
Expand Down Expand Up @@ -381,6 +384,9 @@ static int alarm_clock_getres(const clockid_t which_clock, struct timespec *tp)
{
clockid_t baseid = alarm_bases[clock2alarm(which_clock)].base_clockid;

if (!alarmtimer_get_rtcdev())
return -ENOTSUPP;

return hrtimer_get_res(baseid, tp);
}

Expand All @@ -395,6 +401,9 @@ static int alarm_clock_get(clockid_t which_clock, struct timespec *tp)
{
struct alarm_base *base = &alarm_bases[clock2alarm(which_clock)];

if (!alarmtimer_get_rtcdev())
return -ENOTSUPP;

*tp = ktime_to_timespec(base->gettime());
return 0;
}
Expand All @@ -410,6 +419,9 @@ static int alarm_timer_create(struct k_itimer *new_timer)
enum alarmtimer_type type;
struct alarm_base *base;

if (!alarmtimer_get_rtcdev())
return -ENOTSUPP;

if (!capable(CAP_WAKE_ALARM))
return -EPERM;

Expand Down Expand Up @@ -444,6 +456,9 @@ static void alarm_timer_get(struct k_itimer *timr,
*/
static int alarm_timer_del(struct k_itimer *timr)
{
if (!rtcdev)
return -ENOTSUPP;

alarm_cancel(&timr->it.alarmtimer);
return 0;
}
Expand All @@ -461,6 +476,9 @@ static int alarm_timer_set(struct k_itimer *timr, int flags,
struct itimerspec *new_setting,
struct itimerspec *old_setting)
{
if (!rtcdev)
return -ENOTSUPP;

/* Save old values */
old_setting->it_interval =
ktime_to_timespec(timr->it.alarmtimer.period);
Expand Down Expand Up @@ -600,6 +618,9 @@ static int alarm_timer_nsleep(const clockid_t which_clock, int flags,
int ret = 0;
struct restart_block *restart;

if (!alarmtimer_get_rtcdev())
return -ENOTSUPP;

if (!capable(CAP_WAKE_ALARM))
return -EPERM;

Expand Down

0 comments on commit 5ed37d2

Please sign in to comment.