From: Alexandre Belloni <alexandre.belloni@bootlin.com>
To: Dylan Howey <Dylan.Howey@tennantco.com>
Cc: "a.zummo@towertech.it" <a.zummo@towertech.it>,
"linux-rtc@vger.kernel.org" <linux-rtc@vger.kernel.org>
Subject: Re: [PATCH 1/2] Port rtc-pcf2123 to regmap
Date: Wed, 19 Jun 2019 15:16:59 +0200 [thread overview]
Message-ID: <20190619131659.GL23549@piout.net> (raw)
In-Reply-To: <20190503133008.GA30943@tennantco.com>
Sorry for the very late reply !
On 03/05/2019 13:30:12+0000, Dylan Howey wrote:
> The 05/02/2019 22:55, Alexandre Belloni wrote:
> > > * I don't think pcf2123_read_offset is working correctly. In the case of
> > > a coarse offset the value is not being sign extended. So a negative
> > > offset read will not be correct if the coarse bit is set (result would
> > > be a positive number being returned if this is true). I need to look
> > > into this some more. The fix would be to sign extend first, then if
> > > coarse bit is set multiply the result by 2.
> > >
> >
> > As the comment says, it is properly extended because after shifting,
> > bits [6:0] become bit [7:1].
> >
> But what about this:
>
> # echo 2170 > /sys/class/rtc/rtc0/offset
> # cat /sys/class/rtc/rtc0/offset
> 2170
> # echo -2170 > /sys/class/rtc/rtc0/offset
> # cat /sys/class/rtc/rtc0/offset
> 0
> # echo 4340 > /sys/class/rtc/rtc0/offset
> # cat /sys/class/rtc/rtc0/offset
> 4340
> # echo -4340 > /sys/class/rtc/rtc0/offset
> # cat /sys/class/rtc/rtc0/offset
> -2170
>
> Negative offset reads seem to be off by a factor of 2.
>
The issue is not the sign extension, it is the rounding function that
only works properly for positive numbers:
reg = (s8)((offset + (OFFSET_STEP >> 1)) / OFFSET_STEP);
I'm sending a patch.
--
Alexandre Belloni, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
prev parent reply other threads:[~2019-06-19 13:17 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-04-26 19:37 [PATCH 1/2] Port rtc-pcf2123 to regmap Howey, Dylan
2019-04-26 19:37 ` [PATCH 2/2] Add alarm support to rtc-pcf2123 Howey, Dylan
2019-04-27 13:11 ` Alexandre Belloni
2019-04-27 13:00 ` [PATCH 1/2] Port rtc-pcf2123 to regmap Alexandre Belloni
2019-04-29 15:09 ` Howey, Dylan
2019-04-30 9:22 ` Alexandre Belloni
2019-05-02 17:45 ` Dylan Howey
2019-05-02 20:55 ` Alexandre Belloni
2019-05-03 13:30 ` Dylan Howey
2019-06-19 13:16 ` Alexandre Belloni [this message]
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=20190619131659.GL23549@piout.net \
--to=alexandre.belloni@bootlin.com \
--cc=Dylan.Howey@tennantco.com \
--cc=a.zummo@towertech.it \
--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).