Hi Ale{ss,x}andr[oe],
This patch series fixes the RS5C313 RTC driver, which is used on the I-O
DATA USL-5P aka Landisk:
-rs5c313 rs5c313: rs5c313_rtc_read_time: timeout error
rs5c313 rs5c313: registered as rtc0
-rs5c313 rs5c313: rs5c313_rtc_read_time: timeout error
-rs5c313 rs5c313: hctosys: unable to read the hardware clock
+rs5c313 rs5c313: setting system clock to 2020-08-14T01:04:12 UTC (1597367052)
and performs a few related code cleanups.
Thanks for your comments!
Geert Uytterhoeven (3):
rtc: rtc-rs5c313: Drop obsolete platform_set_drvdata() call
rtc: rtc-rs5c313: Fix late hardware init
rtc: rtc-rs5c313: Convert to module_platform_driver()
drivers/rtc/rtc-rs5c313.c | 34 +++++++---------------------------
1 file changed, 7 insertions(+), 27 deletions(-)
--
2.17.1
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
rs5c313_rtc_init() calls platform_driver_register(), and initializes the
hardware. This is wrong because of two reasons:
1. As soon as the driver has been registered, the device may be
probed. If devm_rtc_device_register() is called before hardware
initialization, reading the current time will fail:
rs5c313 rs5c313: rs5c313_rtc_read_time: timeout error
rs5c313 rs5c313: registered as rtc0
rs5c313 rs5c313: rs5c313_rtc_read_time: timeout error
rs5c313 rs5c313: hctosys: unable to read the hardware clock
2. If the platform device does not exist, the driver will still write
to a hardware device that may not be present.
Fix this by moving the hardware initialization sequence to the driver's
.probe() method.
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
---
drivers/rtc/rtc-rs5c313.c | 20 ++++++++------------
1 file changed, 8 insertions(+), 12 deletions(-)
Commit 284e2fa1da00a998 ("rtc: rtc-rs5c313: use
devm_rtc_device_register()"), removed the last user of the
driver-specific data. Hence there is no longer a need to set it.
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
---
drivers/rtc/rtc-rs5c313.c | 7 +------
1 file changed, 1 insertion(+), 6 deletions(-)
On Fri, 14 Aug 2020 13:07:28 +0200, Geert Uytterhoeven wrote:
Hi Ale{ss,x}andr[oe],
This patch series fixes the RS5C313 RTC driver, which is used on the I-O
DATA USL-5P aka Landisk:
-rs5c313 rs5c313: rs5c313_rtc_read_time: timeout error
rs5c313 rs5c313: registered as rtc0
-rs5c313 rs5c313: rs5c313_rtc_read_time: timeout error
-rs5c313 rs5c313: hctosys: unable to read the hardware clock
+rs5c313 rs5c313: setting system clock to 2020-08-14T01:04:12 UTC (1597367052)
[...]
Applied, thanks!
[1/3] rtc: rtc-rs5c313: Drop obsolete platform_set_drvdata() call
commit: fc9656a370499e5a32425b715f8fed241e832458
[2/3] rtc: rtc-rs5c313: Fix late hardware init
commit: f65e727464d7c0090f05548e8f323779eaa97eda
[3/3] rtc: rtc-rs5c313: Convert to module_platform_driver()
commit: 163a512cd929d6db712a3021720362749653998b
Best regards,
--
Alexandre Belloni [off-list ref]