--- v12
+++ v9
@@ -1,86 +1,146 @@
-This really might be the last review of the PTP hardware clock patch
-series. These patches apply on top of the timers/core branch in the
-tip tree.
+* Introduction
-* Why all the CCs?
- - One driver is for PowerPC, and adds device tree stuff.
- - One driver is for the ARM Xscale IXP465.
+ The aim of this patch set is to add support for PTP Hardware Clocks
+ (PHCs) into the Linux kernel.
-* PHC Patch ChangeLog
-** v12
-*** gianfar_ptp
- - fixed up device tree
- - inlined the header file
- - use platform_ calls instead of deprecated of_ calls
- - removed static global single instance
- - removed John Stultz's ack from this patch
+ The first nine patches provide infrastructure supporting dynamic
+ POSIX clock devices. This new code will be useful for other kinds of
+ new clocks, not just PHCs.
+
+ The last four patches implement the PHC code.
+
+ Support for obtaining timestamps from a PHC already exists via the
+ SO_TIMESTAMPING socket option, integrated in kernel version 2.6.30.
+ This patch set completes the picture by allow user space programs to
+ adjust the PHC and to control its ancillary features.
+
+* Patch ChangeLog
+
+** v9
+*** dynamic posix clocks
+ - changed the kernel interface to be less idiosyncratic
+*** ptp hardware clocks
+ - changed the kernel interface to be less idiosyncratic
+*** posix clock/ntp syscalls
+ - completely removed the CLOCK_DISPATCH macro
+ - pick a bit for ADJ_SETOFFSET that is unused by BSD
+*** ixp driver
+ - resolved todo regarding npe to channel mapping
+ - removed weird CamelCase from register definitions
+ - removed wrapper functions for reading/writing registers
* Previous Discussions
- - [V11] http://lkml.org/lkml/2011/2/23/107
- - [V10] http://lkml.org/lkml/2011/1/27/71
- - [V9] http://lkml.org/lkml/2011/1/13/65
- - [V8] http://lkml.org/lkml/2010/12/31/128
- - [V7] http://lkml.org/lkml/2010/12/16/195
- - [V6] http://lkml.org/lkml/2010/9/23/310
- - [V5] http://lkml.org/lkml/2010/8/16/90
+ This patch set previously appeared on the netdev list. Since V5 of
+ the character device patch set, the discussion has moved to the
+ lkml.
- - Thomas Gleixner: Rework of the PTP support series core code
- http://lkml.org/lkml/2011/2/1/137
+ - IEEE 1588 hardware clock support [V5]
+ http://lkml.org/lkml/2010/8/16/90
+
+ - POSIX clock tuning syscall with static clock ids
+ http://lkml.org/lkml/2010/8/23/49
+
+ - POSIX clock tuning syscall with dynamic clock ids
+ http://lkml.org/lkml/2010/9/3/119
+
+ - IEEE 1588 hardware clock support [V6]
+ http://lkml.org/lkml/2010/9/23/310
- Dynamic clock devices [RFC]
http://lkml.org/lkml/2010/11/4/290
- - POSIX clock tuning syscall with dynamic clock ids
- http://lkml.org/lkml/2010/9/3/119
+ - IEEE 1588 hardware clock support [V7]
+ http://lkml.org/lkml/2010/12/16/195
- - POSIX clock tuning syscall with static clock ids
- http://lkml.org/lkml/2010/8/23/49
+ - IEEE 1588 hardware clock support [V8]
+ http://lkml.org/lkml/2010/12/31/128
- - Versions 1-4 appeared on the netdev list.
+Thanks for your comments.
+
+Enjoy,
+Richard
-Richard Cochran (4):
+John Stultz (1):
+ time: Introduce timekeeping_inject_offset
+
+Richard Cochran (12):
+ ntp: add ADJ_SETOFFSET mode bit
+ posix clocks: introduce a syscall for clock tuning.
+ posix_clocks: add clock_adjtime for arm
+ posix_clocks: add clock_adjtime for blackfin
+ posix_clocks: add clock_adjtime for powerpc
+ posix_clocks: add clock_adjtime for x86
+ posix clocks: cleanup the CLOCK_DISPTACH macro
+ posix clocks: introduce dynamic clocks
ptp: Added a brand new class driver for ptp clocks.
ptp: Added a clock that uses the eTSEC found on the MPC85xx.
ptp: Added a clock driver for the IXP46x.
ptp: Added a clock driver for the National Semiconductor PHYTER.
- Documentation/ABI/testing/sysfs-ptp | 98 ++
- .../devicetree/bindings/net/fsl-tsec-phy.txt | 54 +
- Documentation/ptp/ptp.txt | 89 ++
- Documentation/ptp/testptp.c | 352 +++++++
- Documentation/ptp/testptp.mk | 33 +
- arch/arm/mach-ixp4xx/include/mach/ixp46x_ts.h | 78 ++
- arch/powerpc/boot/dts/mpc8313erdb.dts | 13 +
- arch/powerpc/boot/dts/mpc8572ds.dts | 13 +
- arch/powerpc/boot/dts/p2020ds.dts | 13 +
- arch/powerpc/boot/dts/p2020rdb.dts | 13 +
- drivers/Kconfig | 2 +
- drivers/Makefile | 1 +
- drivers/net/Makefile | 1 +
- drivers/net/arm/ixp4xx_eth.c | 192 ++++-
- drivers/net/gianfar_ptp.c | 579 +++++++++++
- drivers/net/phy/Makefile | 1 +
- drivers/net/phy/dp83640.c | 1012 ++++++++++++++++++++
- drivers/net/phy/dp83640_reg.h | 267 +++++
- drivers/ptp/Kconfig | 75 ++
- drivers/ptp/Makefile | 7 +
- drivers/ptp/ptp_chardev.c | 156 +++
- drivers/ptp/ptp_clock.c | 320 ++++++
- drivers/ptp/ptp_ixp46x.c | 332 +++++++
- drivers/ptp/ptp_private.h | 86 ++
- drivers/ptp/ptp_sysfs.c | 230 +++++
- include/linux/Kbuild | 1 +
- include/linux/ptp_clock.h | 84 ++
- include/linux/ptp_clock_kernel.h | 139 +++
- 28 files changed, 4238 insertions(+), 3 deletions(-)
+ Documentation/ABI/testing/sysfs-ptp | 97 +++
+ Documentation/powerpc/dts-bindings/fsl/tsec.txt | 57 ++
+ Documentation/ptp/ptp.txt | 93 +++
+ Documentation/ptp/testptp.c | 352 +++++++++
+ Documentation/ptp/testptp.mk | 33 +
+ arch/arm/include/asm/unistd.h | 1 +
+ arch/arm/kernel/calls.S | 1 +
+ arch/arm/mach-ixp4xx/include/mach/ixp46x_ts.h | 78 ++
+ arch/blackfin/include/asm/unistd.h | 3 +-
+ arch/blackfin/mach-common/entry.S | 1 +
+ arch/powerpc/boot/dts/mpc8313erdb.dts | 14 +
+ arch/powerpc/boot/dts/mpc8572ds.dts | 14 +
+ arch/powerpc/boot/dts/p2020ds.dts | 14 +
+ arch/powerpc/boot/dts/p2020rdb.dts | 14 +
+ arch/powerpc/include/asm/systbl.h | 1 +
+ arch/powerpc/include/asm/unistd.h | 3 +-
+ arch/x86/ia32/ia32entry.S | 1 +
+ arch/x86/include/asm/unistd_32.h | 3 +-
+ arch/x86/include/asm/unistd_64.h | 2 +
+ arch/x86/kernel/syscall_table_32.S | 1 +
+ drivers/Kconfig | 2 +
+ drivers/Makefile | 1 +
+ drivers/char/mmtimer.c | 1 +
+ drivers/net/Makefile | 1 +
+ drivers/net/arm/ixp4xx_eth.c | 192 +++++-
+ drivers/net/gianfar_ptp.c | 448 +++++++++++
+ drivers/net/gianfar_ptp_reg.h | 113 +++
+ drivers/net/phy/Kconfig | 29 +
+ drivers/net/phy/Makefile | 1 +
+ drivers/net/phy/dp83640.c | 896 +++++++++++++++++++++++
+ drivers/net/phy/dp83640_reg.h | 261 +++++++
+ drivers/ptp/Kconfig | 53 ++
+ drivers/ptp/Makefile | 7 +
+ drivers/ptp/ptp_chardev.c | 144 ++++
+ drivers/ptp/ptp_clock.c | 319 ++++++++
+ drivers/ptp/ptp_ixp46x.c | 332 +++++++++
+ drivers/ptp/ptp_private.h | 85 +++
+ drivers/ptp/ptp_sysfs.c | 226 ++++++
+ include/linux/Kbuild | 1 +
+ include/linux/posix-clock.h | 150 ++++
+ include/linux/posix-timers.h | 25 +-
+ include/linux/ptp_clock.h | 79 ++
+ include/linux/ptp_clock_kernel.h | 141 ++++
+ include/linux/syscalls.h | 2 +
+ include/linux/time.h | 3 +
+ include/linux/timex.h | 3 +-
+ kernel/compat.c | 136 +++--
+ kernel/posix-cpu-timers.c | 8 +-
+ kernel/posix-timers.c | 257 +++++---
+ kernel/time/Makefile | 3 +-
+ kernel/time/ntp.c | 11 +
+ kernel/time/posix-clock-syscalls.h | 39 +
+ kernel/time/posix-clock.c | 432 +++++++++++
+ kernel/time/timekeeping.c | 36 +
+ 54 files changed, 5068 insertions(+), 152 deletions(-)
create mode 100644 Documentation/ABI/testing/sysfs-ptp
create mode 100644 Documentation/ptp/ptp.txt
create mode 100644 Documentation/ptp/testptp.c
create mode 100644 Documentation/ptp/testptp.mk
create mode 100644 arch/arm/mach-ixp4xx/include/mach/ixp46x_ts.h
create mode 100644 drivers/net/gianfar_ptp.c
+ create mode 100644 drivers/net/gianfar_ptp_reg.h
create mode 100644 drivers/net/phy/dp83640.c
create mode 100644 drivers/net/phy/dp83640_reg.h
create mode 100644 drivers/ptp/Kconfig
@@ -90,5 +150,8 @@
create mode 100644 drivers/ptp/ptp_ixp46x.c
create mode 100644 drivers/ptp/ptp_private.h
create mode 100644 drivers/ptp/ptp_sysfs.c
+ create mode 100644 include/linux/posix-clock.h
create mode 100644 include/linux/ptp_clock.h
create mode 100644 include/linux/ptp_clock_kernel.h
+ create mode 100644 kernel/time/posix-clock-syscalls.h
+ create mode 100644 kernel/time/posix-clock.c