From 655066c3835e7b51794c4d56f042eb78b5a79f53 Mon Sep 17 00:00:00 2001 From: Atsushi Nemoto Date: Sun, 25 Jun 2006 05:48:17 -0700 Subject: [PATCH] RTC: rtc-dev UIE emulation Import genrtc's RTC UIE emulation (CONFIG_GEN_RTC_X) to rtc-dev driver with slight adjustments/refinements. This makes UIE-less rtc drivers work better with programs doing read/poll on /dev/rtc, such as hwclock. This emulation should not harm rtc drivers with UIE support, since rtc_dev_ioctl() calls underlaying rtc driver's ioctl() first. Signed-off-by: Atsushi Nemoto Acked-by: Alessandro Zummo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- include/linux/rtc.h | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'include/linux/rtc.h') diff --git a/include/linux/rtc.h b/include/linux/rtc.h index ab61cd1199f2..43310760fe73 100644 --- a/include/linux/rtc.h +++ b/include/linux/rtc.h @@ -155,6 +155,16 @@ struct rtc_device struct rtc_task *irq_task; spinlock_t irq_task_lock; int irq_freq; +#ifdef CONFIG_RTC_INTF_DEV_UIE_EMUL + struct work_struct uie_task; + struct timer_list uie_timer; + /* Those fields are protected by rtc->irq_lock */ + unsigned int oldsecs; + unsigned int irq_active:1; + unsigned int stop_uie_polling:1; + unsigned int uie_task_active:1; + unsigned int uie_timer_active:1; +#endif }; #define to_rtc_device(d) container_of(d, struct rtc_device, class_dev) -- cgit v1.2.2 From 110d693d5898649da606cd6e5f6af4d7f70a405f Mon Sep 17 00:00:00 2001 From: Alessandro Zummo Date: Sun, 25 Jun 2006 05:48:20 -0700 Subject: [PATCH] rtc subsystem: add capability checks Centralize CAP_SYS_XXX checks to avoid duplicate code and missing checks in the drivers. Signed-off-by: Alessandro Zummo Cc: Richard Purdie Cc: Yoichi Yuasa Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- include/linux/rtc.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include/linux/rtc.h') diff --git a/include/linux/rtc.h b/include/linux/rtc.h index 43310760fe73..c12cbc1b83c5 100644 --- a/include/linux/rtc.h +++ b/include/linux/rtc.h @@ -155,6 +155,7 @@ struct rtc_device struct rtc_task *irq_task; spinlock_t irq_task_lock; int irq_freq; + int max_user_freq; #ifdef CONFIG_RTC_INTF_DEV_UIE_EMUL struct work_struct uie_task; struct timer_list uie_timer; -- cgit v1.2.2 From 8232212e0b4ee4eb3e407f5a9b098f6377820164 Mon Sep 17 00:00:00 2001 From: Andrew Victor Date: Sun, 25 Jun 2006 05:48:25 -0700 Subject: [PATCH] RTC: Add rtc_year_days() to calculate tm_yday RTC: Add exported function rtc_year_days() to calculate the tm_yday value. Signed-off-by: Andrew Victor Signed-off-by: Alessandro Zummo Cc: Russell King Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- include/linux/rtc.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include/linux/rtc.h') diff --git a/include/linux/rtc.h b/include/linux/rtc.h index c12cbc1b83c5..36e2bf4b4315 100644 --- a/include/linux/rtc.h +++ b/include/linux/rtc.h @@ -102,6 +102,7 @@ struct rtc_pll_info { #include extern int rtc_month_days(unsigned int month, unsigned int year); +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); -- cgit v1.2.2