Messages in this thread | | | From | Rodolfo Giometti <> | Date | Mon, 24 Nov 2008 17:00:42 +0100 | Subject | LinuxPPS (Version 8): the PPS Linux implementation. |
| |
Note: Very few changes since last post! Please, add this patch set into next available merge window.
This patch set adds the PPS support into Linux.
PPS means "pulse per second" and its API is specified by RFC 2783 (Pulse-Per-Second API for UNIX-like Operating Systems, Version 1.0).
The code has been tested with the NTPD program (http://www.eecis.udel.edu/~mills/ntp/html/index.html) and several GPS antennae.
Changelog =========
Version 7 -> 8: ---------------
* PPS ldisc module locking fix up.
* race during ldisc initialization fix up.
Version 6 -> 7: ---------------
* A new line discipline has been added in order to leave untouched the serial ports code (as suggested by Alan).
* n_tty.c exports only GPL symbols.
* ioctl numbers fixed in order to avoid any conflicts.
Note: Last patch (0009-PPS-low-level-IRQ-timestamps-recording.patch) implements low level IRQs timestamps recording which improves PPS precision but can be dropped for kernel inclusion! As suggested by Alan: "After that is sorted/merged we can come back to working out the best way to improve the IRQ and HARDPPS hacks."
Rodolfo
--
b/Documentation/ABI/testing/sysfs-pps | 73 +++++++ b/Documentation/ioctl-number.txt | 2 b/Documentation/pps/Makefile | 28 ++ b/Documentation/pps/pps.txt | 172 +++++++++++++++++ b/Documentation/pps/ppsfind | 17 + b/Documentation/pps/ppsldisc.c | 46 ++++ b/Documentation/pps/ppstest.c | 151 +++++++++++++++ b/Documentation/pps/timepps.h | 195 +++++++++++++++++++ b/Documentation/tty.txt | 4 b/MAINTAINERS | 7 b/arch/x86/kernel/irq_32.c | 16 + b/arch/x86/kernel/irq_64.c | 21 +- b/drivers/Kconfig | 2 b/drivers/Makefile | 1 b/drivers/char/lp.c | 61 ++++++ b/drivers/char/n_tty.c | 32 ++- b/drivers/pps/Kconfig | 33 +++ b/drivers/pps/Makefile | 8 b/drivers/pps/clients/Kconfig | 18 + b/drivers/pps/clients/Makefile | 9 b/drivers/pps/clients/ktimer.c | 124 ++++++++++++ b/drivers/pps/clients/pps-ldisc.c | 155 +++++++++++++++ b/drivers/pps/kapi.c | 322 ++++++++++++++++++++++++++++++++ b/drivers/pps/pps.c | 335 ++++++++++++++++++++++++++++++++++ b/drivers/pps/sysfs.c | 104 ++++++++++ b/drivers/serial/8250.c | 13 + b/include/linux/Kbuild | 1 b/include/linux/parport.h | 22 ++ b/include/linux/pps.h | 202 ++++++++++++++++++++ b/include/linux/serial_core.h | 11 + b/include/linux/tty.h | 16 + b/include/linux/tty_ldisc.h | 8 drivers/pps/Kconfig | 14 + drivers/pps/Makefile | 1 drivers/pps/clients/Kconfig | 17 + drivers/pps/clients/Makefile | 1 include/linux/pps.h | 1 include/linux/serial_core.h | 7 38 files changed, 2235 insertions(+), 15 deletions(-)
| |