linux-rtc.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Meagan Lloyd <meaganlloyd@linux.microsoft.com>
To: alexandre.belloni@bootlin.com
Cc: linux-rtc@vger.kernel.org, linux-kernel@vger.kernel.org,
	code@tyhicks.com, giometti@enneenne.com,
	Meagan Lloyd <meaganlloyd@linux.microsoft.com>
Subject: [PATCH RESEND 0/2] Expand oscillator stop flag (OSF) validity check to ds1341
Date: Mon, 14 Jul 2025 14:39:35 -0700	[thread overview]
Message-ID: <1752529177-8154-1-git-send-email-meaganlloyd@linux.microsoft.com> (raw)

We would like to use CONFIG_RTC_HCTOSYS to sync a supercapacitor-backed
DS1342 RTC to the kernel time early in boot. An obstacle is that the
sync in rtc_hctosys() is unconditional as long as rtc_read_time()
succeeds and in some power loss situations, our RTC comes up with either
an unpredictable future time or the default 01/01/00 from the datasheet.
Syncing a future time, followed by an NTP sync would not be desired as
it would result in a backwards time jump. The sync feature is useful in
boot scenarios where power is maintained so syncing only when the RTC
data is valid would allow us to make use of the feature.

The DS1342 has the oscillator stop flag (OSF) which is a status flag
indicating that the oscillator stopped for a period of time. It can be
set due to power loss. Some chip types in the ds1307 driver already use
the OSF to determine whether .read_time should provide valid data or
return -EINVAL. This patch series expands that handling to the ds1341
chip type (DS1341 and DS1342 share a datasheet).

These changes enable us to make use of CONFIG_RTC_HCTOSYS as they
prevent the invalid time from getting synced to the kernel time. It will
also prevent userspace programs from getting the invalid time as the fix
cuts it off at the source - the .read_time function.

Meagan Lloyd (2):
  rtc: ds1307: remove clear of oscillator stop flag (OSF) in probe
  rtc: ds1307: handle oscillator stop flag (OSF) for ds1341

 drivers/rtc/rtc-ds1307.c | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)


base-commit: 19272b37aa4f83ca52bdf9c16d5d81bdd1354494
-- 
2.49.0


             reply	other threads:[~2025-07-14 21:39 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-07-14 21:39 Meagan Lloyd [this message]
2025-07-14 21:39 ` [PATCH RESEND 1/2] rtc: ds1307: remove clear of oscillator stop flag (OSF) in probe Meagan Lloyd
2025-07-14 21:39 ` [PATCH RESEND 2/2] rtc: ds1307: handle oscillator stop flag (OSF) for ds1341 Meagan Lloyd

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=1752529177-8154-1-git-send-email-meaganlloyd@linux.microsoft.com \
    --to=meaganlloyd@linux.microsoft.com \
    --cc=alexandre.belloni@bootlin.com \
    --cc=code@tyhicks.com \
    --cc=giometti@enneenne.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;
as well as URLs for NNTP newsgroup(s).