[PATCH 0/6] [RFC] A posix clock/timer interface to the RTC
From: John Stultz
Date: Fri Oct 15 2010 - 20:39:47 EST
From: John Stultz <johnstul@xxxxxxxxxx>
This patchset allows the RTC to be managed via the posix_clocks/timers
interface. This allows applications to program timer events that will
wake the system from suspend state. If the system is not suspended, the
timers fire like normal posix timers.
Currently, if an application wants to trigger a RTC alarm to wake up
from suspend, they must use the sysfs wakealarm interface or the rtc
chardev RTC_WKALM_SET ioctl. The limitation with this interface is
that it is fairly hardware oriented, so multiple applications cannot
set an RTC alarm without overwriting any previous alarms set by other
applications.
The in-kernel posix interface allows for the kernel to manage a list
of timers that control when the alarm is fired, so applications
do not need to coordinate access to the alarm hardware.
My earlier proof-of-concept hack/patch for this work (see
http://lwn.net/Articles/405986/ ) did not get much review from the
RTC folks, so I've carried on reworking a number of layers of code
in order to make this functionality something that could possibly be
upstreamed in the future.
The patches are still fairly rough, but together they do function, so
while there is still work to be done, I wanted to send this out again
so folks had an idea of the scope of the work and could make
suggestions as to where I've gone wrong. :)
So please let me know what you think.
thanks
-john
CC: Alessandro Zummo <a.zummo@xxxxxxxxxxxx>
CC: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
CC: Richard Cochran <richardcochran@xxxxxxxxx>
John Stultz (5):
[RFC] Introduce timerlist infrastructure.
[RFC] hrtimers: Convert hrtimers to use timerlist infrastructure
[RFC] RTC: Rework RTC code to use timerlist for events
[RFC] RTC: Remove UIE emulation
[RFC] RTC: Add posix clock/timer interface
Richard Cochran (1):
[RFC] posix clocks: dynamic clock ids.
drivers/rtc/Makefile | 2 +-
drivers/rtc/class.c | 23 ++
drivers/rtc/interface.c | 453 +++++++++++++++++++++---------------------
drivers/rtc/posix.c | 274 +++++++++++++++++++++++++
drivers/rtc/rtc-dev.c | 104 ----------
drivers/rtc/rtc-lib.c | 26 +++
drivers/rtc/rtc-sysfs.c | 10 +
include/linux/hrtimer.h | 32 ++--
include/linux/posix-timers.h | 9 +-
include/linux/rtc.h | 49 +++--
include/linux/time.h | 2 +
include/linux/timerlist.h | 37 ++++
kernel/hrtimer.c | 86 +++-----
kernel/posix-timers.c | 41 +++-
kernel/time/timer_list.c | 8 +-
lib/Makefile | 2 +-
lib/timerlist.c | 115 +++++++++++
17 files changed, 843 insertions(+), 430 deletions(-)
create mode 100644 drivers/rtc/posix.c
create mode 100644 include/linux/timerlist.h
create mode 100644 lib/timerlist.c
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/