From: Jan Kiszka <jan.kiszka@siemens.com>
To: Alexandre Belloni <alexandre.belloni@bootlin.com>
Cc: Alessandro Zummo <a.zummo@towertech.it>,
linux-rtc@vger.kernel.org,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] rtc: pcf-8563: Report previously detected low-voltage via RTC_VL_BACKUP_LOW
Date: Tue, 11 Jul 2023 09:27:14 +0200 [thread overview]
Message-ID: <69dd51b9-aab1-a9ec-91c2-b1dc79797f10@siemens.com> (raw)
In-Reply-To: <c195c196-d99b-9e17-3854-fc147ac2e447@siemens.com>
On 12.06.23 08:49, Jan Kiszka wrote:
> On 12.06.23 00:16, Alexandre Belloni wrote:
>> On 11/06/2023 18:28:22+0200, Jan Kiszka wrote:
>>> 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.
>>
>> That's not true, nothing prevents userspace from reading the battery
>> status before setting the time and destroying the information which is
>> exactly what you should be doing.
>
> What is your "userspace"? Mine is stock Debian with systemd and
> timesyncd enabled. But there is no framework to read the status early
> enough and propagate that after timesyncd did its job. Any concrete
> suggestion to "fix" userspace?
>
Ping - I still have seen no suggestion to improve this situation otherwise.
>>
>>>
>>> In that light, I still believe my patch is an improvement over the
>>> current situation without making anything worse.
>>
>> The information goes from behaving deterministically to being unreliable
>> which makes the situation worse.
>
> Nope, not at all. You already lose the VL bit today during reboot when
> you have written a new value (which is standard). So this here is not
> making things worse. It's rather improving the situation for the first
> boot at least. Deterministically.
>
> Jan
>
Thanks,
Jan
--
Siemens AG, Technology
Competence Center Embedded Linux
next prev parent reply other threads:[~2023-07-11 7:28 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-09 21:04 Jan Kiszka
2023-06-10 8:31 ` Alexandre Belloni
2023-06-11 13:38 ` Jan Kiszka
2023-06-11 15:11 ` Alexandre Belloni
2023-06-11 16:28 ` Jan Kiszka
2023-06-11 22:16 ` Alexandre Belloni
2023-06-12 6:49 ` Jan Kiszka
2023-07-11 7:27 ` Jan Kiszka [this message]
2023-07-11 20:54 ` Alexandre Belloni
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=69dd51b9-aab1-a9ec-91c2-b1dc79797f10@siemens.com \
--to=jan.kiszka@siemens.com \
--cc=a.zummo@towertech.it \
--cc=alexandre.belloni@bootlin.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rtc@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®