diff options
Diffstat (limited to 'drivers/rtc')
| -rw-r--r-- | drivers/rtc/interface.c | 44 | 
1 files changed, 10 insertions, 34 deletions
diff --git a/drivers/rtc/interface.c b/drivers/rtc/interface.c index 3bcc7cfcaba..ed35a6b4753 100644 --- a/drivers/rtc/interface.c +++ b/drivers/rtc/interface.c @@ -323,20 +323,6 @@ int rtc_read_alarm(struct rtc_device *rtc, struct rtc_wkalrm *alarm)  }  EXPORT_SYMBOL_GPL(rtc_read_alarm); -static int ___rtc_set_alarm(struct rtc_device *rtc, struct rtc_wkalrm *alarm) -{ -	int err; - -	if (!rtc->ops) -		err = -ENODEV; -	else if (!rtc->ops->set_alarm) -		err = -EINVAL; -	else -		err = rtc->ops->set_alarm(rtc->dev.parent, alarm); - -	return err; -} -  static int __rtc_set_alarm(struct rtc_device *rtc, struct rtc_wkalrm *alarm)  {  	struct rtc_time tm; @@ -360,7 +346,14 @@ static int __rtc_set_alarm(struct rtc_device *rtc, struct rtc_wkalrm *alarm)  	 * over right here, before we set the alarm.  	 */ -	return ___rtc_set_alarm(rtc, alarm); +	if (!rtc->ops) +		err = -ENODEV; +	else if (!rtc->ops->set_alarm) +		err = -EINVAL; +	else +		err = rtc->ops->set_alarm(rtc->dev.parent, alarm); + +	return err;  }  int rtc_set_alarm(struct rtc_device *rtc, struct rtc_wkalrm *alarm) @@ -776,20 +769,6 @@ static int rtc_timer_enqueue(struct rtc_device *rtc, struct rtc_timer *timer)  	return 0;  } -static void rtc_alarm_disable(struct rtc_device *rtc) -{ -	struct rtc_wkalrm alarm; -	struct rtc_time tm; - -	__rtc_read_time(rtc, &tm); - -	alarm.time = rtc_ktime_to_tm(ktime_add(rtc_tm_to_ktime(tm), -				     ktime_set(300, 0))); -	alarm.enabled = 0; - -	___rtc_set_alarm(rtc, &alarm); -} -  /**   * rtc_timer_remove - Removes a rtc_timer from the rtc_device timerqueue   * @rtc rtc device @@ -811,10 +790,8 @@ static void rtc_timer_remove(struct rtc_device *rtc, struct rtc_timer *timer)  		struct rtc_wkalrm alarm;  		int err;  		next = timerqueue_getnext(&rtc->timerqueue); -		if (!next) { -			rtc_alarm_disable(rtc); +		if (!next)  			return; -		}  		alarm.time = rtc_ktime_to_tm(next->expires);  		alarm.enabled = 1;  		err = __rtc_set_alarm(rtc, &alarm); @@ -876,8 +853,7 @@ again:  		err = __rtc_set_alarm(rtc, &alarm);  		if (err == -ETIME)  			goto again; -	} else -		rtc_alarm_disable(rtc); +	}  	mutex_unlock(&rtc->ops_lock);  }  |