Messages in this thread |  | | Date | Sun, 11 Jun 2023 18:28:22 +0200 | | Subject | Re: [PATCH] rtc: pcf-8563: Report previously detected low-voltage via RTC_VL_BACKUP_LOW | | From | Jan Kiszka <> |
| |
On 11.06.23 17:11, Alexandre Belloni wrote: > On 11/06/2023 15:38:04+0200, Jan Kiszka wrote: >> On 10.06.23 10:31, Alexandre Belloni wrote: >>> Hello Jan, >>> >>> On 09/06/2023 23:04:12+0200, Jan Kiszka wrote: >>>> From: Jan Kiszka <jan.kiszka@siemens.com> >>>> >>>> The VL bit in the seconds register remains set only until seconds are >>>> written under main power. As this often happens during boot-up after >>>> picking up a network time, make sure to preserve the low battery state >>>> across this, caching it and returning it via the RTC_VL_BACKUP_LOW bit. >>>> >>>> To permit userspace clearing this state during runtime, also implement >>>> RTC_VL_CLR that works against the cached state. >>>> >>>> This is emulating RTCs which have a battery voltage check that works >>>> under main power as well. >>>> >>> >>> Emulating doesn't work well and I deliberately chose to not implement >>> it. For example, in your scenario, if you boot twice without using >>> VL_READ, you anyway have lost the information. This makes emulating >>> unreliabl. The fix you need is in userspace where you have to ensure you >>> read the status before setting the time. >> >> Then let's make sure the bit is also set in the hardware register. Then >> also the reboot issue (which is practically a minor one) is solved. The >> current situation is far from optimal. > > This doesn't work because then the time will be considered invalid. I'm > not sure why you don't want to fix your userspace. >
Nope, that could be easily avoided in software. The actual problem is that the VL bit is not settable (clear-on-write). And that means we can't do anything about losing the low battery information across reboots - but that's no difference to the situation with the existing driver.
There is no "fix" for userspace as there is no standard framework to read-out the status early and retrieve it from there when the user asks for it. That's best done in the kernel.
In that light, I still believe my patch is an improvement over the current situation without making anything worse.
Jan
-- Siemens AG, Technology Competence Center Embedded Linux
|  |