Heiner Kallweit
584ce30c72
rtc: ds1307: improve weekday handling
...
The current code for checking and fixing the weekday in ds1307_probe
faces some issues:
- This check is applied to all chips even if its applicable (AFAIK)
to mcp794xx only
- The check uses MCP794XX constants for registers and bits even though
it's executed also on other chips (ok, this could be fixed easily)
- It relies on tm_wday being properly populated when core calls set_time
and set_alarm. This is not guaranteed at all.
First two issue we could solve by moving the check to the
mcp794xx-specific initialization (where also VBATEN flag is set).
The proposed alternative is in the set_alarm path for mcp794xx only and
calculates the alarm weekday based on the current weekday in the RTC
timekeeping regs and the difference between alarm date and current date.
So we are fine with any weekday even if it doesn't match the date.
Still there are cases where this could fail, e.g.:
- rtc date/time + weekday have power-on-reset default values
- alarm is set to actual date/time + x
- set_time is called (may change diff between rtc weekday and actual
weekday)
But similar issues we have with the current code too:
- rtc date/time + weekday have power-on-reset default values
- alarm is set to rtc date/time + x
- set_time is called before the alarm triggers
Using random rtc date/time with relative alarms simply can interfere
with set_time. I'm not totally convinced of either option yet.
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
2017-10-12 14:16:09 +02:00
..
class.c
rtc: add generic nvmem support
2017-07-07 13:14:14 +02:00
hctosys.c
interface.c
rtc: set the alarm to the next expiring timer
2017-09-28 13:53:27 +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: as3722: Drop IRQF_EARLY_RESUME flag
2016-03-14 17:08:25 +01:00
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: remove useless DRV_VERSION
2016-05-20 12:33:51 +02:00
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: ds1307: improve weekday handling
2017-10-12 14:16:09 +02: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: remove useless DRV_VERSION
2016-05-20 12:33:51 +02:00
rtc-ds1553.c
rtc: remove useless DRV_VERSION
2016-05-20 12:33:51 +02:00
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: remove useless DRV_VERSION
2016-05-20 12:33:51 +02:00
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: remove useless DRV_VERSION
2016-05-20 12:33:51 +02:00
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: remove useless DRV_VERSION
2016-05-20 12:33:51 +02:00
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: remove useless DRV_VERSION
2016-05-20 12:33:51 +02:00
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: max77686: Use REGMAP_IRQ_REG for regmap-rtc-irqs initialisation
2016-03-14 17:08:27 +01:00
rtc-mc13xxx.c
rtc: mc13xxx: remove UIE signaling
2016-05-20 12:33:51 +02:00
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: pcf8523: properly handle oscillator stop bit
2016-03-14 17:08:30 +01:00
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: remove useless DRV_VERSION
2016-05-20 12:33:51 +02:00
rtc-rs5c348.c
rtc: remove useless DRV_VERSION
2016-05-20 12:33:51 +02:00
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: rv3029: fix vendor string
2017-09-26 15:34:41 +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: s5m: De-inline large functions to save space
2016-03-14 17:08:18 +01:00
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: remove useless DRV_VERSION
2016-05-20 12:33:51 +02:00
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: tps80031: Drop IRQF_EARLY_RESUME flag
2016-03-14 17:08:24 +01:00
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: remove useless DRV_VERSION
2016-05-20 12:33:51 +02:00
rtc-xgene.c
rtc-zynqmp.c
rtc: zynqmp: Update seconds time programming logic
2016-05-20 12:33:51 +02:00
systohc.c