diff options
Diffstat (limited to 'include/linux/rtc.h')
-rw-r--r-- | include/linux/rtc.h | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/include/linux/rtc.h b/include/linux/rtc.h index 3c995b4d742c..89c3e5182991 100644 --- a/include/linux/rtc.h +++ b/include/linux/rtc.h | |||
@@ -203,6 +203,18 @@ struct rtc_device | |||
203 | struct hrtimer pie_timer; /* sub second exp, so needs hrtimer */ | 203 | struct hrtimer pie_timer; /* sub second exp, so needs hrtimer */ |
204 | int pie_enabled; | 204 | int pie_enabled; |
205 | struct work_struct irqwork; | 205 | struct work_struct irqwork; |
206 | |||
207 | |||
208 | #ifdef CONFIG_RTC_INTF_DEV_UIE_EMUL | ||
209 | struct work_struct uie_task; | ||
210 | struct timer_list uie_timer; | ||
211 | /* Those fields are protected by rtc->irq_lock */ | ||
212 | unsigned int oldsecs; | ||
213 | unsigned int uie_irq_active:1; | ||
214 | unsigned int stop_uie_polling:1; | ||
215 | unsigned int uie_task_active:1; | ||
216 | unsigned int uie_timer_active:1; | ||
217 | #endif | ||
206 | }; | 218 | }; |
207 | #define to_rtc_device(d) container_of(d, struct rtc_device, dev) | 219 | #define to_rtc_device(d) container_of(d, struct rtc_device, dev) |
208 | 220 | ||
@@ -238,6 +250,7 @@ extern int rtc_alarm_irq_enable(struct rtc_device *rtc, unsigned int enabled); | |||
238 | extern int rtc_dev_update_irq_enable_emul(struct rtc_device *rtc, | 250 | extern int rtc_dev_update_irq_enable_emul(struct rtc_device *rtc, |
239 | unsigned int enabled); | 251 | unsigned int enabled); |
240 | 252 | ||
253 | void rtc_handle_legacy_irq(struct rtc_device *rtc, int num, int mode); | ||
241 | void rtc_aie_update_irq(void *private); | 254 | void rtc_aie_update_irq(void *private); |
242 | void rtc_uie_update_irq(void *private); | 255 | void rtc_uie_update_irq(void *private); |
243 | enum hrtimer_restart rtc_pie_update_irq(struct hrtimer *timer); | 256 | enum hrtimer_restart rtc_pie_update_irq(struct hrtimer *timer); |
@@ -246,8 +259,6 @@ int rtc_register(rtc_task_t *task); | |||
246 | int rtc_unregister(rtc_task_t *task); | 259 | int rtc_unregister(rtc_task_t *task); |
247 | int rtc_control(rtc_task_t *t, unsigned int cmd, unsigned long arg); | 260 | int rtc_control(rtc_task_t *t, unsigned int cmd, unsigned long arg); |
248 | 261 | ||
249 | void rtc_timer_enqueue(struct rtc_device *rtc, struct rtc_timer *timer); | ||
250 | void rtc_timer_remove(struct rtc_device *rtc, struct rtc_timer *timer); | ||
251 | void rtc_timer_init(struct rtc_timer *timer, void (*f)(void* p), void* data); | 262 | void rtc_timer_init(struct rtc_timer *timer, void (*f)(void* p), void* data); |
252 | int rtc_timer_start(struct rtc_device *rtc, struct rtc_timer* timer, | 263 | int rtc_timer_start(struct rtc_device *rtc, struct rtc_timer* timer, |
253 | ktime_t expires, ktime_t period); | 264 | ktime_t expires, ktime_t period); |