Jason Gunthorpe
0f295b0650
rtc: Allow rtc drivers to specify the tv_nsec value for ntp
...
ntp is currently hardwired to try and call the rtc set when wall clock
tv_nsec is 0.5 seconds. This historical behaviour works well with certain
PC RTCs, but is not universal to all rtc hardware.
Change how this works by introducing the driver specific concept of
set_offset_nsec, the delay between current wall clock time and the target
time to set (with a 0 tv_nsecs).
For x86-style CMOS set_offset_nsec should be -0.5 s which causes the last
second to be written 0.5 s after it has started.
For compat with the old rtc_set_ntp_time, the value is defaulted to
+ 0.5 s, which causes the next second to be written 0.5s before it starts,
as things were before this patch.
Testing shows many non-x86 RTCs would like set_offset_nsec ~= 0,
so ultimately each RTC driver should set the set_offset_nsec according
to its needs, and non x86 architectures should stop using
update_persistent_clock64 in order to access this feature.
Future patches will revise the drivers as needed.
Since CMOS and RTC now have very different handling they are split
into two dedicated code paths, sharing the support code, and ifdefs
are replaced with IS_ENABLED.
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Miroslav Lichvar <mlichvar@redhat.com>
Cc: Richard Cochran <richardcochran@gmail.com>
Cc: Prarit Bhargava <prarit@redhat.com>
Cc: Stephen Boyd <stephen.boyd@linaro.org>
Signed-off-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
Signed-off-by: John Stultz <john.stultz@linaro.org>
2017-10-30 15:03:24 -07:00
..
class.c
rtc: Allow rtc drivers to specify the tv_nsec value for ntp
2017-10-30 15:03:24 -07:00
hctosys.c
interface.c
rtc: interface: Validate alarm-time before handling rollover
2017-05-31 13:04:54 +02:00
Kconfig
rtc: Add Realtek RTD1295
2017-09-05 09:55:02 +02:00
Makefile
rtc: Add Realtek RTD1295
2017-09-05 09:55:02 +02:00
nvmem.c
rtc: add generic nvmem support
2017-07-07 13:14:14 +02:00
rtc-88pm80x.c
rtc-88pm860x.c
rtc-ab-b5ze-s3.c
rtc-ab3100.c
rtc-ab8500.c
rtc-abx80x.c
rtc: abx80x: use devm_add_action_or_reset()
2016-07-19 17:27:42 +02:00
rtc-ac100.c
rtc: ac100: Add NULL checking for devm_kzalloc call
2016-09-22 00:14:41 +02:00
rtc-armada38x.c
rtc: armada38x: Add support for Armada 7K/8K
2017-02-21 23:21:30 +01:00
rtc-as3722.c
rtc-asm9260.c
rtc: asm9260: fix module autoload
2016-10-19 08:45:48 +02:00
rtc-at32ap700x.c
rtc: constify rtc_class_ops structures
2016-09-02 01:24:06 +02:00
rtc-at91rm9200.c
rtc: at91rm9200: remove race condition
2017-07-07 13:14:12 +02:00
rtc-at91rm9200.h
rtc-at91sam9.c
rtc: at91sam9: Fix missing spin_lock_init()
2016-07-26 00:09:18 +02:00
rtc-au1xxx.c
rtc: constify rtc_class_ops structures
2017-01-11 17:23:06 +01:00
rtc-bfin.c
rtc: constify rtc_class_ops structures
2017-01-11 17:23:06 +01:00
rtc-bq32k.c
rtc: bq32k: Add OF device ID table
2017-03-09 01:29:17 +01:00
rtc-bq4802.c
rtc-brcmstb-waketimer.c
rtc: brcmstb-waketimer: Add Broadcom STB wake-timer
2017-07-05 23:11:59 +02:00
rtc-cmos.c
Merge branches 'pm-sleep' and 'powercap'
2017-05-22 20:32:05 +02:00
rtc-coh901331.c
rtc: constify rtc_class_ops structures
2016-09-02 01:24:06 +02:00
rtc-core.h
rtc: add generic nvmem support
2017-07-07 13:14:14 +02:00
rtc-cpcap.c
rtc: cpcap: fix improper use of IRQ_NONE for request_threaded_irq
2017-04-14 12:08:52 +02:00
rtc-da9052.c
rtc: explicitly set tm_sec = 0 for drivers with minute accurancy
2016-07-19 18:15:21 +02:00
rtc-da9055.c
rtc: explicitly set tm_sec = 0 for drivers with minute accurancy
2016-07-19 18:15:21 +02:00
rtc-da9063.c
rtc-davinci.c
rtc: constify rtc_class_ops structures
2016-09-02 01:24:06 +02:00
rtc-dev.c
rtc: remove .open() and .release()
2017-08-24 16:34:51 +02:00
rtc-digicolor.c
rtc: constify rtc_class_ops structures
2016-09-02 01:24:06 +02:00
rtc-dm355evm.c
mfd: dm355evm_msp: Move header file out of I2C realm
2017-08-15 08:06:14 +01:00
rtc-ds1216.c
rtc-ds1286.c
rtc: ds1286: move header to linux/rtc
2016-07-08 16:23:11 +02:00
rtc-ds1302.c
rtc: constify rtc_class_ops structures
2016-09-02 01:24:06 +02:00
rtc-ds1305.c
rtc: simplify implementations of read_alarm
2016-07-09 10:24:45 +02:00
rtc-ds1307.c
RTC for 4.14
2017-09-13 10:56:00 -07:00
rtc-ds1343.c
rtc: simplify implementations of read_alarm
2016-07-09 10:24:45 +02:00
rtc-ds1347.c
rtc: ds1347: changed raw spi calls to register map calls
2016-09-22 00:14:40 +02:00
rtc-ds1374.c
rtc: ds1374: wdt: Fix stop/start ioctl always returning -EINVAL
2017-05-04 14:46:25 +02:00
rtc-ds1390.c
rtc-ds1511.c
rtc-ds1553.c
rtc-ds1672.c
rtc: constify i2c_device_id
2017-09-01 01:10:11 +02:00
rtc-ds1685.c
rtc: simplify implementations of read_alarm
2016-07-09 10:24:45 +02:00
rtc-ds1742.c
rtc-ds2404.c
rtc: ds2404: move rtc-ds2404.h to platform_data
2016-06-27 10:48:28 +02:00
rtc-ds3232.c
rtc: ds3232: add temperature support
2017-07-06 22:37:16 +02:00
rtc-efi-platform.c
rtc-efi.c
rtc: efi: Fail probing if RTC reads don't work
2016-06-06 17:07:33 +02:00
rtc-em3027.c
rtc: constify i2c_device_id
2017-09-01 01:10:11 +02:00
rtc-ep93xx.c
rtc-fm3130.c
rtc-ftrtc010.c
rtc: gemini/ftrtc010: rename driver and symbols
2017-07-06 22:37:15 +02:00
rtc-generic.c
rtc: generic: remove get_rtc_time/set_rtc_time wrappers
2016-06-04 00:23:35 +02:00
rtc-goldfish.c
rtc: goldfish: Add RTC driver for Android emulator
2017-09-01 01:10:18 +02:00
rtc-hid-sensor-time.c
rtc: hid-sensor-time: remove some dead code
2017-04-22 17:56:18 +02:00
rtc-hym8563.c
rtc: hym8563: in .read_alarm set .tm_sec to 0 to signal minute accuracy
2016-07-19 18:18:06 +02:00
rtc-imxdi.c
sched/wait: Disambiguate wq_entry->task_list and wq_head->task_list naming
2017-06-20 12:19:14 +02:00
rtc-isl1208.c
rtc: isl1208: Add OF device ID table
2017-03-09 01:29:27 +01:00
rtc-isl12022.c
rtc-jz4740.c
rtc: jz4740: make the driver buildable as a module again
2017-01-26 23:03:21 +01:00
rtc-lib.c
rtc: make rtc-lib explicitly non-modular
2016-11-04 23:31:29 +01:00
rtc-lp8788.c
rtc-lpc24xx.c
rtc-lpc32xx.c
rtc-ls1x.c
rtc: constify rtc_class_ops structures
2017-01-11 17:23:06 +01:00
rtc-m41t80.c
rtc: m41t80: remove debug sysfs attribute
2017-08-24 11:03:34 +02:00
rtc-m41t93.c
rtc-m41t94.c
rtc-m48t35.c
rtc-m48t59.c
rtc-m48t86.c
rtc: m48t86: remove unused platform_data
2017-02-21 21:23:13 +01:00
rtc-max6900.c
rtc: constify i2c_device_id
2017-09-01 01:10:11 +02:00
rtc-max6902.c
rtc-max6916.c
rtc: add support for Maxim max6916
2016-06-04 16:05:59 +02:00
rtc-max8907.c
rtc-max8925.c
rtc: max8925: remove redundant check on ret
2017-07-31 00:17:48 +02:00
rtc-max8997.c
rtc-max8998.c
rtc-max77686.c
rtc-mc13xxx.c
rtc-mc146818-lib.c
rtc: move mc146818 helper functions out-of-line
2016-06-26 01:20:08 +02:00
rtc-mcp795.c
rtc: mcp795: add alarm support.
2017-01-11 17:23:04 +01:00
rtc-moxart.c
rtc-mpc5121.c
rtc-mrst.c
rtc: simplify implementations of read_alarm
2016-07-09 10:24:45 +02:00
rtc-msm6242.c
rtc-mt6397.c
rtc: constify rtc_class_ops structures
2016-09-02 01:24:06 +02:00
rtc-mv.c
rtc-mxc.c
rtc: mxc: avoid disabling interrupts on device close
2017-08-24 16:23:16 +02:00
rtc-nuc900.c
rtc: rtc-nuc900: fix loop timeout test
2017-07-06 22:37:16 +02:00
rtc-omap.c
rtc: omap: mark PM methods as __maybe_unused
2017-03-09 01:32:32 +01:00
rtc-opal.c
rtc: opal: Implement rtc_class_ops.alarm_irq_enable callback
2017-06-24 07:48:30 +02:00
rtc-palmas.c
rtc: constify rtc_class_ops structures
2016-09-02 01:24:06 +02:00
rtc-pcap.c
rtc-pcf2123.c
rtc: pcf2123: Add missing error code assignment before test
2016-08-31 18:21:34 +02:00
rtc-pcf2127.c
rtc: pcf2127: bulk read only date and time registers.
2017-02-23 18:38:54 +01:00
rtc-pcf8523.c
rtc-pcf8563.c
rtc: pcf8563: avoid using rtc->name
2017-06-03 10:52:05 +02:00
rtc-pcf8583.c
rtc-pcf50633.c
rtc: constify rtc_class_ops structures
2016-09-02 01:24:06 +02:00
rtc-pcf85063.c
rtc: pcf85063: do not register a RTC device if chip is not present
2016-11-04 23:08:59 +01:00
rtc-pic32.c
rtc: pic32: Delete owner assignment
2016-08-31 18:21:35 +02:00
rtc-pl030.c
rtc-pl031.c
rtc-pm8xxx.c
rtc: rtc-pm8xxx: Add support for pm8018 rtc
2016-08-31 09:33:33 +01:00
rtc-proc.c
rtc-ps3.c
rtc-puv3.c
rtc: puv3: make alarms useful
2017-08-22 12:05:21 +02:00
rtc-pxa.c
rtc: pxa: fix possible race condition
2017-08-24 11:03:34 +02:00
rtc-r7301.c
rtc: add support for EPSON TOYOCOM RTC-7301SF/DG
2016-12-19 00:59:21 +01:00
rtc-r9701.c
rtc-rc5t583.c
rtc: explicitly set tm_sec = 0 for drivers with minute accurancy
2016-07-19 18:15:21 +02:00
rtc-rk808.c
rtc-rp5c01.c
rtc-rs5c313.c
rtc-rs5c348.c
rtc-rs5c372.c
rtc: rs5c372: Add OF device ID table
2017-03-09 01:29:34 +01:00
rtc-rtd119x.c
rtc: Add Realtek RTD1295
2017-09-05 09:55:02 +02:00
rtc-rv3029c2.c
rtc: constify i2c_device_id
2017-09-01 01:10:11 +02:00
rtc-rv8803.c
rtc: rv8803: remove rv8803_remove
2017-07-07 13:14:19 +02:00
rtc-rx4581.c
rtc-rx6110.c
rtc: constify rtc_class_ops structures
2016-09-02 01:24:06 +02:00
rtc-rx8010.c
rtc: rx8010: Add OF device ID table
2017-03-09 01:29:21 +01:00
rtc-rx8025.c
rtc: constify rtc_class_ops structures
2016-09-02 01:24:06 +02:00
rtc-rx8581.c
rtc: rx8581: Add OF device ID table
2017-03-09 01:29:31 +01:00
rtc-s3c.c
rtc: s3c: Handle clock enable failures
2017-06-24 22:52:43 +02:00
rtc-s3c.h
rtc-s5m.c
rtc-s35390a.c
rtc: s35390a: implement ioctls
2017-07-31 00:17:44 +02:00
rtc-sa1100.c
rtc: sa1100: make alarms useful
2017-08-24 11:03:35 +02:00
rtc-sa1100.h
rtc-sh.c
rtc: sh: mark PM functions as unused
2017-04-22 18:01:15 +02:00
rtc-sirfsoc.c
rtc-snvs.c
rtc: snvs: fix an incorrect check of return value
2017-05-05 00:43:50 +02:00
rtc-spear.c
rtc: constify rtc_class_ops structures
2016-09-02 01:24:06 +02:00
rtc-st-lpc.c
rtc: st-lpc: make it robust against y2038/2106 bug
2017-07-09 22:32:18 +02:00
rtc-starfire.c
rtc: sparc: make starfire explicitly non-modular
2016-11-04 23:31:31 +01:00
rtc-stk17ta8.c
rtc-stm32.c
rtc: stm32: add STM32H7 RTC support
2017-07-06 22:52:54 +02:00
rtc-stmp3xxx.c
rtc: constify rtc_class_ops structures
2016-09-02 01:24:06 +02:00
rtc-sun4v.c
rtc: sparc: make sun4v explicitly non-modular
2016-11-04 23:31:33 +01:00
rtc-sun6i.c
rtc: sun6i: Add support for the external oscillator gate
2017-09-01 01:10:19 +02:00
rtc-sunxi.c
rtc-sysfs.c
rtc: sysfs: make name uniform
2017-06-03 10:52:04 +02:00
rtc-tegra.c
rtc: tegra: Implement clock handling
2017-01-23 00:46:55 +01:00
rtc-test.c
rtc-tile.c
rtc-tps6586x.c
rtc: tps6586x: rename so module can be autoloaded
2016-05-21 17:07:17 +02:00
rtc-tps65910.c
rtc: tps65910: use 'unsigned int' instead of 'unsigned' in arguments
2017-01-10 01:32:51 +01:00
rtc-tps80031.c
rtc-twl.c
mfd: twl: Move header file out of I2C realm
2017-09-04 14:41:02 +01:00
rtc-tx4939.c
rtc-v3020.c
rtc: v3020: move rtc-v3020.h to platform_data
2016-07-09 10:24:21 +02:00
rtc-vr41xx.c
rtc: vr41xx: make alarms useful
2017-08-24 11:03:36 +02:00
rtc-vt8500.c
rtc-wm831x.c
rtc-wm8350.c
rtc: wm8350: Remove unused to_wm8350_from_rtc_dev
2017-03-16 22:59:54 +01:00
rtc-x1205.c
rtc-xgene.c
rtc-zynqmp.c
systohc.c
rtc: Allow rtc drivers to specify the tv_nsec value for ntp
2017-10-30 15:03:24 -07:00