From: Alexandre Belloni <alexandre.belloni@bootlin.com>
To: "Mateusz Jończyk" <mat.jonczyk@o2.pl>
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
linux-rtc@vger.kernel.org,
Alessandro Zummo <a.zummo@towertech.it>
Subject: Re: [PATCH RESEND v3 3/7] rtc-mc146818-lib: extract mc146818_do_avoiding_UIP
Date: Thu, 25 Nov 2021 09:04:49 +0100 [thread overview]
Message-ID: <YZ9DoQYl0JUDq7pt@piout.net> (raw)
In-Reply-To: <1b217171-b301-f2fe-f455-9bddabe2e115@o2.pl>
On 25/11/2021 06:28:45+0100, Mateusz Jończyk wrote:
> W dniu 24.11.2021 o 23:39, Alexandre Belloni pisze:
> > On 19/11/2021 21:42:17+0100, Mateusz Jończyk wrote:
> >> Function mc146818_get_time() contains an elaborate mechanism of reading
> >> the RTC time while no RTC update is in progress. It turns out that
> >> reading the RTC alarm clock also requires avoiding the RTC update (see
> >> following patches). Therefore, the mechanism in mc146818_get_time()
> >> should be reused - so extract it into a separate function.
> >>
> >> The logic in mc146818_do_avoiding_UIP() is same as in
> >> mc146818_get_time() except that after every
> >>
> >> if (CMOS_READ(RTC_FREQ_SELECT) & RTC_UIP) {
> >>
> >> there is now "mdelay(1)".
> >>
> >> To avoid producing an unreadable diff, mc146818_get_time() will be
> >> refactored to use mc146818_do_avoiding_UIP() in the next patch.
> >>
> >> Signed-off-by: Mateusz Jończyk <mat.jonczyk@o2.pl>
> >> Cc: Alessandro Zummo <a.zummo@towertech.it>
> >> Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>
> >>
> >> ---
> >> drivers/rtc/rtc-mc146818-lib.c | 69 ++++++++++++++++++++++++++++++++++
> >> include/linux/mc146818rtc.h | 3 ++
> >> 2 files changed, 72 insertions(+)
> >>
> >> diff --git a/drivers/rtc/rtc-mc146818-lib.c b/drivers/rtc/rtc-mc146818-lib.c
> >> index b50612ce1a6d..946ad43a512c 100644
> >> --- a/drivers/rtc/rtc-mc146818-lib.c
> >> +++ b/drivers/rtc/rtc-mc146818-lib.c
> >> @@ -8,6 +8,75 @@
> >> #include <linux/acpi.h>
> >> #endif
> >>
> >> +/*
> >> + * Execute a function while the UIP (Update-in-progress) bit of the RTC is
> >> + * unset.
> >> + *
> >> + * Warning: callback may be executed more then once.
> >> + */
> >> +bool mc146818_do_avoiding_UIP(mc146818_callback_t callback, void *param)
> > mc146818_avoid_UIP would be a simpler name.
> Right
> > Also, I'm pretty sure we can
> > avoid the mc146818_callback_t typedef
>
> Do you mean doing something like:
>
> bool mc146818_avoid_UIP(
> void (*callback)(unsigned char seconds, void *param), void *param);
>
yes!
> Thanks for reviewing.
>
> Greetings,
> Mateusz
>
> >> +{
> >> + int i;
> >> + unsigned long flags;
> [snip]
--
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
next prev parent reply other threads:[~2021-11-25 8:06 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-11-19 20:42 [PATCH RESEND v3 0/7] rtc-cmos,rtc-mc146818-lib: fixes Mateusz Jończyk
2021-11-19 20:42 ` [PATCH RESEND v3 1/7] rtc-cmos: take rtc_lock while reading from CMOS Mateusz Jończyk
2021-11-19 20:42 ` [PATCH RESEND v3 2/7] rtc-mc146818-lib: fix RTC presence check Mateusz Jończyk
2021-11-24 22:31 ` Alexandre Belloni
2021-11-25 22:12 ` Mateusz Jończyk
2021-12-10 15:26 ` Alexandre Belloni
2021-12-10 19:05 ` Mateusz Jończyk
2021-11-19 20:42 ` [PATCH RESEND v3 3/7] rtc-mc146818-lib: extract mc146818_do_avoiding_UIP Mateusz Jończyk
2021-11-24 22:39 ` Alexandre Belloni
2021-11-25 5:28 ` Mateusz Jończyk
2021-11-25 8:04 ` Alexandre Belloni [this message]
2021-11-19 20:42 ` [PATCH RESEND v3 4/7] rtc-mc146818-lib: refactor mc146818_get_time Mateusz Jończyk
2021-11-24 22:41 ` Alexandre Belloni
2021-11-25 5:48 ` Mateusz Jończyk
2021-11-25 8:05 ` Alexandre Belloni
2021-11-19 20:42 ` [PATCH RESEND v3 5/7] rtc-mc146818-lib: refactor mc146818_does_rtc_work Mateusz Jończyk
2021-11-19 20:42 ` [PATCH RESEND v3 6/7] rtc-cmos: avoid UIP when reading alarm time Mateusz Jończyk
2021-11-19 20:46 ` [DEBUG PATCH v3] rtc-cmos: cmos_read_alarm bug demonstration Mateusz Jończyk
2021-11-24 22:44 ` [PATCH RESEND v3 6/7] rtc-cmos: avoid UIP when reading alarm time Alexandre Belloni
2021-11-19 20:42 ` [PATCH RESEND v3 7/7] rtc-cmos: avoid UIP when writing " Mateusz Jończyk
2021-11-19 21:20 ` [PATCH RESEND v3 0/7] rtc-cmos,rtc-mc146818-lib: fixes 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=YZ9DoQYl0JUDq7pt@piout.net \
--to=alexandre.belloni@bootlin.com \
--cc=a.zummo@towertech.it \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rtc@vger.kernel.org \
--cc=mat.jonczyk@o2.pl \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.