diff options
| author | Andrew Morton <akpm@linux-foundation.org> | 2007-05-08 00:34:05 -0700 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-05-08 11:15:18 -0700 | 
| commit | 416ce32e704d778c283f2f86cadd836cd5d3696c (patch) | |
| tree | ede7fe08271e40367d228ef4b7a79eba68030ad4 | |
| parent | 19bfe37caa8184768ecc15269302f42036625259 (diff) | |
| download | olio-linux-3.10-416ce32e704d778c283f2f86cadd836cd5d3696c.tar.xz olio-linux-3.10-416ce32e704d778c283f2f86cadd836cd5d3696c.zip  | |
revert "rtc: Add rtc_merge_alarm()"
David says "884b4aaaa242a2db8c8252796f0118164a680ab5 should be reverted.  It
added an rtc_merge_alarm() call to the 2.6.20 kernel, which hasn't yet been
used by any in-tree driver; this patch obviates the need for that call, and
uses a more robust approach."
Cc: Scott Wood <scottwood@freescale.com>
Cc: Alessandro Zummo <a.zummo@towertech.it>
Cc: David Brownell <david-b@pacbell.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
| -rw-r--r-- | drivers/rtc/rtc-lib.c | 81 | ||||
| -rw-r--r-- | include/linux/rtc.h | 1 | 
2 files changed, 0 insertions, 82 deletions
diff --git a/drivers/rtc/rtc-lib.c b/drivers/rtc/rtc-lib.c index 7bbc26a34bd..ba795a4db1e 100644 --- a/drivers/rtc/rtc-lib.c +++ b/drivers/rtc/rtc-lib.c @@ -117,85 +117,4 @@ int rtc_tm_to_time(struct rtc_time *tm, unsigned long *time)  }  EXPORT_SYMBOL(rtc_tm_to_time); - -/* Merge the valid (i.e. non-negative) fields of alarm into the current - * time.  If the valid alarm fields are earlier than the equivalent - * fields in the time, carry one into the least significant invalid - * field, so that the alarm expiry is in the future.  It assumes that the - * least significant invalid field is more significant than the most - * significant valid field, and that the seconds field is valid. - * - * This is used by alarms that take relative (rather than absolute) - * times, and/or have a simple binary second counter instead of - * day/hour/minute/sec registers. - */ -void rtc_merge_alarm(struct rtc_time *now, struct rtc_time *alarm) -{ -	int *alarmp = &alarm->tm_sec; -	int *timep = &now->tm_sec; -	int carry_into, i; - -	/* Ignore everything past the 6th element (tm_year). */ -	for (i = 5; i > 0; i--) { -		if (alarmp[i] < 0) -			alarmp[i] = timep[i]; -		else -			break; -	} - -	/* No carry needed if all fields are valid. */ -	if (i == 5) -		return; - -	for (carry_into = i + 1; i >= 0; i--) { -		if (alarmp[i] < timep[i]) -			break; - -		if (alarmp[i] > timep[i]) -			return; -	} - -	switch (carry_into) { -		case 1: -			alarm->tm_min++; - -			if (alarm->tm_min < 60) -				return; - -			alarm->tm_min = 0; -			/* fall-through */ - -		case 2: -			alarm->tm_hour++; - -			if (alarm->tm_hour < 60) -				return; - -			alarm->tm_hour = 0; -			/* fall-through */ - -		case 3: -			alarm->tm_mday++; - -			if (alarm->tm_mday <= rtc_days_in_month[alarm->tm_mon]) -				return; - -			alarm->tm_mday = 1; -			/* fall-through */ - -		case 4: -			alarm->tm_mon++; - -			if (alarm->tm_mon <= 12) -				return; - -			alarm->tm_mon = 1; -			/* fall-through */ - -		case 5: -			alarm->tm_year++; -	} -} -EXPORT_SYMBOL(rtc_merge_alarm); -  MODULE_LICENSE("GPL"); diff --git a/include/linux/rtc.h b/include/linux/rtc.h index 07ecd4ca8ca..6d5e4a46781 100644 --- a/include/linux/rtc.h +++ b/include/linux/rtc.h @@ -106,7 +106,6 @@ extern int rtc_year_days(unsigned int day, unsigned int month, unsigned int year  extern int rtc_valid_tm(struct rtc_time *tm);  extern int rtc_tm_to_time(struct rtc_time *tm, unsigned long *time);  extern void rtc_time_to_tm(unsigned long time, struct rtc_time *tm); -extern void rtc_merge_alarm(struct rtc_time *now, struct rtc_time *alarm);  #include <linux/device.h>  #include <linux/seq_file.h>  |