Merge branch 'timers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 11 Jan 2011 19:06:41 +0000 (11:06 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 11 Jan 2011 19:06:41 +0000 (11:06 -0800)
* 'timers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  rtc: Namespace fixup
  RTC: Remove UIE emulation
  RTC: Rework RTC code to use timerqueue for events

Fix up trivial conflict in drivers/rtc/rtc-dev.c

1  2 
drivers/rtc/class.c

diff --combined drivers/rtc/class.c
index e6539cbabb35fb8f143f1710a004744fa1abe745,3243832a17cda4fa5ef88c451dfd011316637e47..9583cbcc6b79da8b541fcb7b4cfa5c90fe648bf0
@@@ -16,6 -16,7 +16,7 @@@
  #include <linux/kdev_t.h>
  #include <linux/idr.h>
  #include <linux/slab.h>
+ #include <linux/workqueue.h>
  
  #include "rtc-core.h"
  
@@@ -152,16 -153,26 +153,28 @@@ struct rtc_device *rtc_device_register(
        spin_lock_init(&rtc->irq_task_lock);
        init_waitqueue_head(&rtc->irq_queue);
  
+       /* Init timerqueue */
+       timerqueue_init_head(&rtc->timerqueue);
+       INIT_WORK(&rtc->irqwork, rtc_timer_do_work);
+       /* Init aie timer */
+       rtc_timer_init(&rtc->aie_timer, rtc_aie_update_irq, (void *)rtc);
+       /* Init uie timer */
+       rtc_timer_init(&rtc->uie_rtctimer, rtc_uie_update_irq, (void *)rtc);
+       /* Init pie timer */
+       hrtimer_init(&rtc->pie_timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
+       rtc->pie_timer.function = rtc_pie_update_irq;
+       rtc->pie_enabled = 0;
        strlcpy(rtc->name, name, RTC_DEVICE_NAME_SIZE);
        dev_set_name(&rtc->dev, "rtc%d", id);
  
        rtc_dev_prepare(rtc);
  
        err = device_register(&rtc->dev);
 -      if (err)
 +      if (err) {
 +              put_device(&rtc->dev);
                goto exit_kfree;
 +      }
  
        rtc_dev_add_device(rtc);
        rtc_sysfs_add_device(rtc);