android_kernel_xiaomi_sm8450/drivers/rtc
Martin Blumenstingl 9e5a7c1106 rtc: meson-vrtc: Use ktime_get_real_ts64() to get the current time
[ Upstream commit 0e6255fa3f649170da6bd1a544680589cfae1131 ]

The VRTC alarm register can be programmed with an amount of seconds
after which the SoC will be woken up by the VRTC timer again. We are
already converting the alarm time from meson_vrtc_set_alarm() to
"seconds since 1970". This means we also need to use "seconds since
1970" for the current time.

This fixes a problem where setting the alarm to one minute in the future
results in the firmware (which handles wakeup) to output (on the serial
console) that the system will be woken up in billions of seconds.
ktime_get_raw_ts64() returns the time since boot, not since 1970. Switch
to ktime_get_real_ts64() to fix the calculation of the alarm time and to
make the SoC wake up at the specified date/time. Also the firmware
(which manages suspend) now prints either 59 or 60 seconds until wakeup
(depending on how long it takes for the system to enter suspend).

Fixes: 6ef35398e8 ("rtc: Add Amlogic Virtual Wake RTC")
Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Kevin Hilman <khilman@baylibre.com>
Link: https://lore.kernel.org/r/20230320212142.2355062-1-martin.blumenstingl@googlemail.com
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-05-17 11:48:01 +02:00
..
class.c rtc: fix use-after-free on device removal 2022-05-25 09:17:52 +02:00
dev.c compat_ioctl: move rtc handling into drivers/rtc/dev.c 2019-10-23 17:23:43 +02:00
interface.c rtc: check if __rtc_read_time was successful 2022-04-08 14:40:40 +02:00
Kconfig rtc: rx8010: select REGMAP_I2C 2021-09-26 14:09:02 +02:00
lib.c rtc: lib: check whether tm->tm_year in int32 range 2019-04-06 15:05:31 +02:00
Makefile rtc: rv3032: Add a driver for Microcrystal RV-3032 2020-10-19 22:47:56 +02:00
nvmem.c rtc: core: correct trivial checkpatch warnings 2019-04-04 10:07:08 +02:00
proc.c rtc: fix snprintf() checking in is_rtc_hctosys() 2021-07-20 16:05:55 +02:00
rtc-88pm80x.c rtc: remove superfluous error message 2019-08-21 09:57:23 +02:00
rtc-88pm860x.c rtc: 88pm860x: remove useless range check 2020-04-18 22:42:06 +02:00
rtc-ab3100.c rtc: ab3100: convert to SPDX identifier 2019-04-11 16:42:55 +02:00
rtc-ab8500.c rtc: ab8500: switch to rtc_time64_to_tm/rtc_tm_to_time64 2020-03-16 11:12:11 +01:00
rtc-ab-b5ze-s3.c rtc: Replace HTTP links with HTTPS ones 2020-07-16 11:17:52 +02:00
rtc-ab-eoz9.c rtc: remove superfluous error message 2019-08-21 09:57:23 +02:00
rtc-abx80x.c rtc: abx80x: Provide debug feedback for invalid dt properties 2020-06-06 00:16:24 +02:00
rtc-ac100.c rtc: remove superfluous error message 2019-08-21 09:57:23 +02:00
rtc-armada38x.c rtc: armada38x: Use of_device_get_match_data() 2019-10-07 15:49:20 +02:00
rtc-as3722.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
rtc-asm9260.c rtc: asm9260: add the missed check for devm_clk_get 2019-12-23 11:16:23 +01:00
rtc-aspeed.c rtc: use devm_platform_ioremap_resource() to simplify code 2019-10-07 01:07:35 +02:00
rtc-at91rm9200.c rtc: at91rm9200: use FIELD_PREP/FIELD_GET 2020-01-15 15:11:10 +01:00
rtc-at91sam9.c rtc: use devm_platform_ioremap_resource() to simplify code 2019-10-07 01:07:35 +02:00
rtc-au1xxx.c rtc: au1xxx: switch to rtc_time64_to_tm/rtc_tm_to_time64 2020-03-16 11:12:09 +01:00
rtc-bd70528.c rtc: bd70528: Avoid double error messaging when IRQ absent 2020-03-23 09:27:17 +01:00
rtc-bq32k.c rtc: Replace HTTP links with HTTPS ones 2020-07-16 11:17:52 +02:00
rtc-bq4802.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
rtc-brcmstb-waketimer.c rtc: brcmstb-waketimer: add missed clk_disable_unprepare 2019-11-08 16:14:09 +01:00
rtc-cadence.c rtc: use devm_platform_ioremap_resource() to simplify code 2019-10-07 01:07:35 +02:00
rtc-cmos.c rtc: cmos: Disable ACPI RTC event on removal 2023-01-14 10:16:05 +01:00
rtc-coh901331.c rtc: use devm_platform_ioremap_resource() to simplify code 2019-10-07 01:07:35 +02:00
rtc-core.h rtc: move rtc_add_group/s definitions 2018-09-28 14:20:59 +02:00
rtc-cpcap.c rtc: cpcap: fix range 2020-07-02 22:32:00 +02:00
rtc-cros-ec.c cros_ec: treewide: Remove 'include/linux/mfd/cros_ec.h' 2020-01-07 17:36:46 +01:00
rtc-da9052.c rtc: da9052: switch to rtc_time64_to_tm/rtc_tm_to_time64 2020-04-01 12:33:43 +02:00
rtc-da9055.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
rtc-da9063.c rtc: da9063: Handle invalid IRQ from platform_get_irq_byname() 2019-10-07 15:49:18 +02:00
rtc-davinci.c rtc: davinci: remove useless error handling 2020-03-16 11:12:09 +01:00
rtc-digicolor.c rtc: use devm_platform_ioremap_resource() to simplify code 2019-10-07 01:07:35 +02:00
rtc-dm355evm.c rtc: dm355evm: convert to SPDX identifier 2019-04-04 10:07:09 +02:00
rtc-ds1216.c rtc: use devm_platform_ioremap_resource() to simplify code 2019-10-07 01:07:35 +02:00
rtc-ds1286.c rtc: use devm_platform_ioremap_resource() to simplify code 2019-10-07 01:07:35 +02:00
rtc-ds1302.c rtc: ds1302: Remove unused DRV_NAME 2019-11-15 11:58:14 +01:00
rtc-ds1305.c rtc: ds1305: switch to rtc_tm_to_time64 2020-03-16 11:12:10 +01:00
rtc-ds1307.c rtc: ds1307: Fix wday settings for rx8130 2021-05-19 10:13:05 +02:00
rtc-ds1343.c rtc: ds1343: Remove unused struct spi_device in struct ds1343_priv 2019-12-23 11:22:32 +01:00
rtc-ds1347.c rtc: ds1347: fix value written to century register 2023-01-14 10:16:34 +01:00
rtc-ds1374.c rtc: ds1374: remove unused define 2020-07-21 09:56:46 +02:00
rtc-ds1390.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
rtc-ds1511.c rtc: use devm_platform_ioremap_resource() to simplify code 2019-10-07 01:07:35 +02:00
rtc-ds1553.c rtc: use devm_platform_ioremap_resource() to simplify code 2019-10-07 01:07:35 +02:00
rtc-ds1672.c rtc: ds1672: remove unnecessary check 2019-08-21 09:57:23 +02:00
rtc-ds1685.c rtc: ds1685: Fix bank switching to avoid endless loop 2020-09-15 11:24:29 +02:00
rtc-ds1742.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
rtc-ds2404.c rtc: ds2404: use hw endiannes variable 2019-05-23 17:42:25 +02:00
rtc-ds3232.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
rtc-efi.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
rtc-em3027.c rtc: em3027: correct month value 2019-11-08 16:14:09 +01:00
rtc-ep93xx.c rtc: ep93xx: Fix NULL pointer dereference in ep93xx_rtc_read_time 2020-12-30 11:54:29 +01:00
rtc-fm3130.c RTC for 5.3 2019-07-17 10:03:50 -07:00
rtc-fsl-ftm-alarm.c rtc: fsl-ftm-alarm: add MODULE_TABLE() 2021-05-19 10:13:03 +02:00
rtc-ftrtc010.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
rtc-generic.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
rtc-goldfish.c rtc: goldfish: Enable interrupt in set_alarm() when necessary 2020-07-16 11:15:43 +02:00
rtc-hid-sensor-time.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 335 2019-06-05 17:37:06 +02:00
rtc-hym8563.c rtc: hym8563: Read the valid flag directly instead of caching it 2019-12-23 11:18:06 +01:00
rtc-imx-sc.c rtc: imx-sc: Align imx sc msg structs to 4 2020-03-29 22:08:35 +02:00
rtc-imxdi.c rtc: imxdi: fix trivial typos 2020-07-02 22:32:01 +02:00
rtc-isl1208.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
rtc-isl12022.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
rtc-isl12026.c rtc: isl12026: convert to i2c_new_dummy_device 2019-07-22 22:30:19 +02:00
rtc-jz4740.c rtc: ingenic: Reset regulator register in probe 2020-05-11 16:35:05 +02:00
rtc-lp8788.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
rtc-lpc24xx.c rtc: remove unnecessary error message after platform_get_irq 2020-04-15 09:56:17 +02:00
rtc-lpc32xx.c rtc: lpc32xx: remove .remove 2019-11-08 16:14:09 +01:00
rtc-ls1x.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
rtc-m41t80.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
rtc-m41t93.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
rtc-m41t94.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
rtc-m48t35.c rtc: m48t35: remove SGI-IP27 kludge 2020-03-16 11:12:11 +01:00
rtc-m48t59.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
rtc-m48t86.c rtc: Use devm_platform_ioremap_resource() 2019-10-06 21:04:51 +02:00
rtc-max6900.c rtc: max6900: remove useless indirection 2018-03-17 14:20:46 +01:00
rtc-max6902.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
rtc-max6916.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
rtc-max8907.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
rtc-max8925.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
rtc-max8997.c rtc: max8997: Fix the returned value in case of error in 'max8997_rtc_read_alarm()' 2018-11-22 18:11:35 +01:00
rtc-max8998.c rtc: maxim: Add SPDX license identifiers 2018-08-14 23:38:45 +02:00
rtc-max77686.c rtc: max77686: Do not enforce (incorrect) interrupt trigger type 2021-07-25 14:36:16 +02:00
rtc-mc13xxx.c rtc: mc13xxx: fix a double-unlock issue 2020-05-11 16:21:50 +02:00
rtc-mc146818-lib.c rtc: mc146818-lib: fix signedness bug in mc146818_get_time() 2022-12-14 11:31:59 +01:00
rtc-mcp795.c rtc: Replace HTTP links with HTTPS ones 2020-07-16 11:17:52 +02:00
rtc-meson-vrtc.c rtc: meson-vrtc: Use ktime_get_real_ts64() to get the current time 2023-05-17 11:48:01 +02:00
rtc-meson.c rtc: meson: remove redundant assignment to variable retries 2019-11-27 09:31:13 +01:00
rtc-moxart.c rtc: moxart: Convert to SPDX identifier 2019-12-23 11:23:49 +01:00
rtc-mpc5121.c rtc: mpc5121: Use correct return value for mpc5121_rtc_probe() 2020-05-30 04:12:38 +02:00
rtc-mrst.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 441 2019-06-05 17:37:17 +02:00
rtc-msm6242.c rtc: msm6242: Remove unneeded msm6242_set()/msm6242_clear() functions 2019-11-18 15:23:54 +01:00
rtc-mt2712.c rtc: mt2712: switch to devm_platform_ioremap_resource 2020-04-18 22:42:04 +02:00
rtc-mt6397.c rtc: mt6397: check return value after calling platform_get_resource() 2022-06-14 18:32:33 +02:00
rtc-mt7622.c rtc: use devm_platform_ioremap_resource() to simplify code 2019-10-07 01:07:35 +02:00
rtc-mv.c rtc: use devm_platform_ioremap_resource() to simplify code 2019-10-07 01:07:35 +02:00
rtc-mxc_v2.c rtc: mxc_v2: Add missing clk_disable_unprepare() 2023-01-14 10:16:11 +01:00
rtc-mxc.c rtc: mxc: Use devm_add_action_or_reset() for calls to clk_disable_unprepare() 2020-03-22 22:10:41 +01:00
rtc-omap.c rtc: omap: include header for omap_rtc_power_off_program prototype 2023-05-17 11:48:01 +02:00
rtc-opal.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 114 2019-05-24 17:39:01 +02:00
rtc-palmas.c rtc: constify rtc_class_ops structures 2016-09-02 01:24:06 +02:00
rtc-pcap.c rtc: pcap: convert to SPDX identifier 2019-05-08 22:14:36 +02:00
rtc-pcf2123.c rtc: pcf2123: add proper compatible string 2019-08-20 21:42:19 +02:00
rtc-pcf2127.c rtc: pcf2127: fix bug when reading alarm registers 2022-05-25 09:17:52 +02:00
rtc-pcf8523.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
rtc-pcf8563.c rtc: pcf8563: Use BIT 2019-12-23 11:23:53 +01:00
rtc-pcf8583.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
rtc-pcf50633.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
rtc-pcf85063.c rtc: pcf85063: fix pcf85063_clkout_control 2023-01-14 10:16:09 +01:00
rtc-pcf85363.c rtc: pcf85363/pcf85263: fix regmap error in set_time 2019-09-01 08:48:28 +02:00
rtc-pic32.c rtc: pic32: Move devm_rtc_allocate_device earlier in pic32_rtc_probe() 2023-01-14 10:16:09 +01:00
rtc-pl030.c amba: Make the remove callback return void 2022-04-08 14:40:02 +02:00
rtc-pl031.c amba: Make the remove callback return void 2022-04-08 14:40:02 +02:00
rtc-pm8xxx.c rtc: pm8xxx: fix set-alarm race 2023-03-11 16:39:54 +01:00
rtc-ps3.c rtc: ps3: set range 2019-04-04 10:07:10 +02:00
rtc-pxa.c rtc: pxa: fix null pointer dereference 2022-01-27 10:54:33 +01:00
rtc-r7301.c rtc: Use devm_platform_ioremap_resource() 2019-10-06 21:04:51 +02:00
rtc-r9701.c rtc: r9701: set range 2020-10-19 22:48:55 +02:00
rtc-rc5t583.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 201 2019-05-30 11:29:52 -07:00
rtc-rc5t619.c rtc: rc5t619: Fix an ERR_PTR vs NULL check 2020-04-15 09:58:24 +02:00
rtc-rk808.c rtc: Remove dev_err() usage after platform_get_irq() 2019-08-13 10:53:10 +02:00
rtc-rp5c01.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
rtc-rs5c313.c rtc: rtc-rs5c313: Convert to module_platform_driver() 2020-08-21 00:13:44 +02:00
rtc-rs5c348.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
rtc-rs5c372.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
rtc-rtd119x.c rtc: use devm_platform_ioremap_resource() to simplify code 2019-10-07 01:07:35 +02:00
rtc-rv3028.c rtc: rv3028: ensure ram configuration registers are saved 2020-10-15 12:09:35 +02:00
rtc-rv3029c2.c rtc: rv3029: remove useless error messages 2019-12-23 11:16:23 +01:00
rtc-rv3032.c rtc: rv3032: fix error handling in rv3032_clkout_set_rate() 2021-11-18 14:04:23 +01:00
rtc-rv8803.c rtc: rv8803: simplify the return expression of rv8803_nvram_write 2020-09-29 22:20:10 +02:00
rtc-rx4581.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
rtc-rx6110.c rtc: rx6110: Convert to SPDX identifier 2019-11-15 11:58:12 +01:00
rtc-rx8010.c rtc: rx8010: rename rx8010_init_client() to rx8010_init() 2020-09-29 22:18:10 +02:00
rtc-rx8025.c rtc: rx8025: Remove struct i2c_client from struct rx8025_data 2019-12-23 11:22:21 +01:00
rtc-rx8581.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
rtc-s3c.c rtc: s3c: Simplify with dev_err_probe() 2020-09-15 10:42:36 +02:00
rtc-s3c.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
rtc-s5m.c rtc: s5m: convert to i2c_new_dummy_device 2019-07-23 20:34:31 +02:00
rtc-s35390a.c rtc: s35390a: set range 2019-10-19 22:33:05 +02:00
rtc-sa1100.c rtc: sa1100: switch to rtc_time64_to_tm/rtc_tm_to_time64 2020-03-16 11:12:09 +01:00
rtc-sa1100.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
rtc-sc27xx.c rtc: sc27xx: remove .remove 2019-11-08 16:14:09 +01:00
rtc-sd3078.c rtc: remove superfluous error message 2019-08-21 09:57:23 +02:00
rtc-sh.c rtc: sh: Restore devm_ioremap() alignment 2020-02-12 12:21:40 +01:00
rtc-sirfsoc.c rtc: sirfsoc: switch to rtc_time64_to_tm/rtc_tm_to_time64 2020-03-16 11:12:09 +01:00
rtc-snvs.c rtc: snvs: Allow a time difference on clock register read 2023-01-14 10:16:05 +01:00
rtc-spear.c rtc: use devm_platform_ioremap_resource() to simplify code 2019-10-07 01:07:35 +02:00
rtc-st-lpc.c rtc: st-lpc: Add missing clk_disable_unprepare in st_rtc_probe() 2023-01-14 10:16:09 +01:00
rtc-starfire.c rtc: starfire: switch to rtc_time64_to_tm 2020-03-16 11:12:09 +01:00
rtc-stk17ta8.c rtc: use devm_platform_ioremap_resource() to simplify code 2019-10-07 01:07:35 +02:00
rtc-stm32.c rtc: stm32: Fix unbalanced clk_disable_unprepare() on probe error path 2021-07-14 16:55:44 +02:00
rtc-stmp3xxx.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
rtc-sun4v.c rtc: sun4v: switch to SPDX identifier 2019-04-04 10:07:10 +02:00
rtc-sun6i.c rtc: sun6i: Always export the internal oscillator 2023-03-11 16:40:14 +01:00
rtc-sunxi.c rtc: use devm_platform_ioremap_resource() to simplify code 2019-10-07 01:07:35 +02:00
rtc-tegra.c rtc: tegra: remove set but unused variable 2019-11-27 09:31:13 +01:00
rtc-test.c rtc: test: enable wakeup flags 2019-05-23 17:44:52 +02:00
rtc-tps6586x.c rtc: tps6586x: Use IRQ_NOAUTOEN flag 2020-01-25 21:50:18 +01:00
rtc-tps65910.c rtc: tps65910: Correct driver module alias 2021-09-18 13:40:05 +02:00
rtc-tps80031.c
rtc-twl.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
rtc-tx4939.c rtc: use devm_platform_ioremap_resource() to simplify code 2019-10-07 01:07:35 +02:00
rtc-v3020.c rtc: v3020: remove set but unused variable 2019-11-27 09:31:13 +01:00
rtc-vr41xx.c compat_ioctl: move rtc handling into drivers/rtc/dev.c 2019-10-23 17:23:43 +02:00
rtc-vt8500.c rtc: vt8500: let the core handle rtc range 2019-10-19 22:33:15 +02:00
rtc-wilco-ec.c rtc: wilco-ec: Handle reading invalid times 2019-10-14 17:49:17 +02:00
rtc-wm831x.c rtc: wm831x: Add IRQF_ONESHOT flag 2019-07-13 21:39:51 +02:00
rtc-wm8350.c rtc: wm8350: Handle error for wm8350_register_irq 2022-04-13 21:00:54 +02:00
rtc-x1205.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
rtc-xgene.c rtc: xgene: Remove unused struct device in struct xgene_rtc_dev 2019-11-27 09:31:14 +01:00
rtc-zynqmp.c rtc: zynqmp: Clear alarm interrupt status before interrupt enable 2020-02-12 12:21:42 +01:00
sysfs.c rtc: sysfs: use kobj_to_dev 2020-03-16 11:12:08 +01:00
systohc.c rtc: drop set_mms and set_mmss64 2019-05-08 22:14:36 +02:00