WSL2-Linux-Kernel/drivers/rtc
Mateusz Jończyk dc62f05f66 rtc: cmos: avoid UIP when reading alarm time
[ Upstream commit cdedc45c57 ]

Some Intel chipsets disconnect the time and date RTC registers when the
clock update is in progress: during this time reads may return bogus
values and writes fail silently. This includes the RTC alarm registers.
[1]

cmos_read_alarm() did not take account for that, which caused alarm time
reads to sometimes return bogus values. This can be shown with a test
patch that I am attaching to this patch series.

Fix this, by using mc146818_avoid_UIP().

[1] 7th Generation Intel ® Processor Family I/O for U/Y Platforms [...]
Datasheet, Volume 1 of 2 (Intel's Document Number: 334658-006)
Page 208
https://www.intel.com/content/dam/www/public/us/en/documents/datasheets/7th-and-8th-gen-core-family-mobile-u-y-processor-lines-i-o-datasheet-vol-1.pdf
        "If a RAM read from the ten time and date bytes is attempted
        during an update cycle, the value read do not necessarily
        represent the true contents of those locations. Any RAM writes
        under the same conditions are ignored."

Signed-off-by: Mateusz Jończyk <mat.jonczyk@o2.pl>
Cc: Alessandro Zummo <a.zummo@towertech.it>
Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Link: https://lore.kernel.org/r/20211210200131.153887-9-mat.jonczyk@o2.pl
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-12-14 11:37:18 +01:00
..
Kconfig rtc: rx8010: select REGMAP_I2C 2021-09-09 10:18:40 +02:00
Makefile rtc: move RTC_LIB_KUNIT_TEST to proper location 2021-08-10 23:22:20 +02:00
class.c rtc: fix use-after-free on device removal 2022-05-25 09:57:23 +02:00
dev.c
interface.c rtc: check if __rtc_read_time was successful 2022-04-08 14:24:10 +02:00
lib.c rtc: Improve performance of rtc_time64_to_tm(). Add tests. 2021-08-10 00:09:21 +02:00
lib_test.c rtc: lib_test: add MODULE_LICENSE 2021-08-10 23:21:46 +02:00
nvmem.c
proc.c rtc: fix snprintf() checking in is_rtc_hctosys() 2021-05-25 00:36:11 +02:00
rtc-88pm80x.c
rtc-88pm860x.c
rtc-ab-b5ze-s3.c
rtc-ab-eoz9.c rtc: ab-eoz9: make use of RTC_FEATURE_ALARM 2021-04-17 00:07:16 +02:00
rtc-ab8500.c
rtc-abx80x.c
rtc-ac100.c
rtc-armada38x.c
rtc-as3722.c
rtc-asm9260.c
rtc-aspeed.c
rtc-at91rm9200.c
rtc-at91sam9.c rtc: at91sam9: Remove unnecessary offset variable checks 2021-07-10 02:42:08 +02:00
rtc-au1xxx.c rtc: au1xxx: convert to SPDX identifier 2021-07-10 01:53:39 +02:00
rtc-bd70528.c rtc: bd70528: Drop BD70528 support 2021-06-20 22:24:52 +02:00
rtc-bq32k.c
rtc-bq4802.c
rtc-brcmstb-waketimer.c
rtc-cadence.c
rtc-cmos.c rtc: cmos: avoid UIP when reading alarm time 2022-12-14 11:37:18 +01:00
rtc-core.h
rtc-cpcap.c
rtc-cros-ec.c
rtc-da9052.c
rtc-da9055.c
rtc-da9063.c
rtc-davinci.c
rtc-digicolor.c
rtc-dm355evm.c
rtc-ds1216.c
rtc-ds1286.c
rtc-ds1302.c rtc: ds1302: Add SPI ID table 2021-11-18 19:16:58 +01:00
rtc-ds1305.c
rtc-ds1307.c rtc: ds1307: Fix wday settings for rx8130 2021-04-29 23:37:18 +02:00
rtc-ds1343.c
rtc-ds1347.c
rtc-ds1374.c rtc: ds1374: convert to SPDX identifier 2021-07-10 01:53:39 +02:00
rtc-ds1390.c rtc: ds1390: Add SPI ID table 2021-11-18 19:16:59 +01:00
rtc-ds1511.c rtc: ds1511: remove unused function 2021-04-17 11:21:04 +02:00
rtc-ds1553.c
rtc-ds1672.c
rtc-ds1685.c
rtc-ds1742.c
rtc-ds2404.c
rtc-ds3232.c
rtc-efi.c rtc: efi: Remove the repeated module alias 2021-05-25 00:39:58 +02:00
rtc-em3027.c
rtc-ep93xx.c
rtc-fm3130.c
rtc-fsl-ftm-alarm.c rtc: fsl-ftm-alarm: add MODULE_TABLE() 2021-04-17 11:21:04 +02:00
rtc-ftrtc010.c rtc: ftrtc010: Fix error handling in ftrtc010_rtc_probe 2022-06-14 18:36:07 +02:00
rtc-generic.c
rtc-goldfish.c
rtc-hid-sensor-time.c iio: hid-sensors: lighten exported symbols by moving to IIO_HID namespace 2021-06-16 14:53:13 +01:00
rtc-hym8563.c
rtc-imx-sc.c rtc: imx-sc: remove .read_alarm 2021-04-29 23:03:26 +02:00
rtc-imxdi.c rtc: imxdi: add wakeup support 2021-05-25 00:41:25 +02:00
rtc-isl1208.c
rtc-isl12022.c
rtc-isl12026.c
rtc-jz4740.c
rtc-lp8788.c
rtc-lpc24xx.c
rtc-lpc32xx.c
rtc-ls1x.c
rtc-m41t80.c rtc: m41t80: correct kerneldoc function names 2021-06-20 22:19:46 +02:00
rtc-m41t93.c
rtc-m41t94.c
rtc-m48t35.c
rtc-m48t59.c
rtc-m48t86.c
rtc-max6900.c rtc: max6900: convert to SPDX identifier 2021-07-10 01:53:39 +02:00
rtc-max6902.c
rtc-max6916.c
rtc-max8907.c
rtc-max8925.c
rtc-max8997.c
rtc-max8998.c
rtc-max77686.c rtc: max77686: Do not enforce (incorrect) interrupt trigger type 2021-06-20 22:22:13 +02:00
rtc-mc13xxx.c
rtc-mc146818-lib.c rtc: mc146818-lib: extract mc146818_avoid_UIP 2022-12-14 11:37:18 +01:00
rtc-mcp795.c rtc: mcp795: Add SPI ID table 2021-11-18 19:16:59 +01:00
rtc-meson-vrtc.c
rtc-meson.c
rtc-moxart.c
rtc-mpc5121.c
rtc-msm6242.c
rtc-mt2712.c
rtc-mt6397.c rtc: mt6397: check return value after calling platform_get_resource() 2022-06-14 18:36:07 +02:00
rtc-mt7622.c
rtc-mv.c
rtc-mxc.c
rtc-mxc_v2.c rtc: mxc_v2: add missing MODULE_DEVICE_TABLE 2021-05-25 00:33:17 +02:00
rtc-ntxec.c
rtc-omap.c rtc: omap: use rtc_write to access OMAP_RTC_OSC_REG 2021-04-29 23:37:18 +02:00
rtc-opal.c
rtc-palmas.c rtc: palmas: convert to SPDX identifier 2021-07-10 01:53:39 +02:00
rtc-pcap.c
rtc-pcf2123.c rtc: pcf2123: Add SPI ID table 2021-11-18 19:16:59 +01:00
rtc-pcf2127.c rtc: pcf2127: fix bug when reading alarm registers 2022-05-25 09:57:23 +02:00
rtc-pcf8523.c rtc: pcf8523: rename register and bit defines 2021-07-10 23:18:30 +02:00
rtc-pcf8563.c rtc: pcf8563: Fix the datasheet URL 2021-06-20 23:48:35 +02:00
rtc-pcf8583.c
rtc-pcf50633.c
rtc-pcf85063.c rtc: pcf85063: Update the PCF85063A datasheet revision 2021-07-10 01:40:49 +02:00
rtc-pcf85363.c
rtc-pic32.c
rtc-pl030.c
rtc-pl031.c rtc: pl031: fix rtc features null pointer dereference 2022-04-08 14:22:56 +02:00
rtc-pm8xxx.c rtc: pm8xxx: Add RTC support for PMIC PMK8350 2021-04-17 00:20:01 +02:00
rtc-ps3.c
rtc-pxa.c rtc: pxa: fix null pointer dereference 2022-01-27 11:05:34 +01:00
rtc-r7301.c
rtc-r9701.c
rtc-rc5t583.c
rtc-rc5t619.c
rtc-rk808.c
rtc-rp5c01.c
rtc-rs5c313.c
rtc-rs5c348.c
rtc-rs5c372.c
rtc-rtd119x.c rtc: rtd119x: Fix format of SPDX identifier 2021-07-10 01:53:39 +02:00
rtc-rv3028.c
rtc-rv3029c2.c
rtc-rv3032.c rtc: rv3032: fix error handling in rv3032_clkout_set_rate() 2021-11-18 19:17:01 +01:00
rtc-rv8803.c
rtc-rx4581.c
rtc-rx6110.c
rtc-rx8010.c
rtc-rx8025.c rtc: rx8025: fix 12/24 hour mode detection on RX-8035 2022-08-17 14:22:53 +02:00
rtc-rx8581.c
rtc-s3c.c
rtc-s3c.h
rtc-s5m.c rtc: s5m: set range 2021-08-06 10:31:59 +02:00
rtc-s35390a.c
rtc-sa1100.c
rtc-sa1100.h
rtc-sc27xx.c rtc: sc27xx: Fix format of SPDX identifier 2021-07-10 01:53:39 +02:00
rtc-sd3078.c
rtc-sh.c
rtc-snvs.c
rtc-spear.c rtc: spear: convert to SPDX identifier 2021-07-10 01:53:57 +02:00
rtc-st-lpc.c
rtc-starfire.c
rtc-stk17ta8.c
rtc-stm32.c rtc: stm32: Fix unbalanced clk_disable_unprepare() on probe error path 2021-06-20 22:28:02 +02:00
rtc-stmp3xxx.c
rtc-sun4v.c
rtc-sun6i.c rtc: sun6i: Fix time overflow handling 2022-05-25 09:57:24 +02:00
rtc-sunxi.c
rtc-tegra.c
rtc-test.c
rtc-tps6586x.c rtc: tps6586x: convert to SPDX identifier 2021-07-10 01:53:40 +02:00
rtc-tps65910.c rtc: tps65910: Correct driver module alias 2021-08-17 23:36:22 +02:00
rtc-tps80031.c rtc: tps80031: convert to SPDX identifier 2021-07-10 01:53:39 +02:00
rtc-twl.c
rtc-v3020.c rtc: v3020: remove redundant initialization of variable retval 2021-06-20 22:29:50 +02:00
rtc-vr41xx.c
rtc-vt8500.c
rtc-wilco-ec.c
rtc-wm831x.c
rtc-wm8350.c rtc: wm8350: Handle error for wm8350_register_irq 2022-04-13 20:58:59 +02:00
rtc-x1205.c
rtc-xgene.c
rtc-zynqmp.c
sysfs.c rtc: sysfs: Correct kerneldoc function name hctosys_show() 2021-06-20 22:18:05 +02:00