All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Gibson <david@gibson.dropbear.id.au>
To: Michael Davidsaver <mdavidsaver@gmail.com>
Cc: Peter Maydell <peter.maydell@linaro.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Thomas Huth <thuth@redhat.com>,
	Antoine Mathys <barsamin@gmail.com>,
	qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 03/14] timer: ds1338 persist 12-hour mode selection
Date: Mon, 9 Jul 2018 15:09:00 +1000	[thread overview]
Message-ID: <20180709050900.GF22363@umbus.fritz.box> (raw)
In-Reply-To: <b7dfce5a-ee0e-b796-fbb6-236c8cf5ee9b@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 2997 bytes --]

On Thu, Jul 05, 2018 at 09:35:50PM -0700, Michael Davidsaver wrote:
> On 07/05/2018 08:39 PM, David Gibson wrote:
> > On Thu, Jul 05, 2018 at 11:19:50AM -0700, Michael Davidsaver wrote:
> > 11;rgb:ffff/ffff/ffff> Need to save HOUR[HOUR12] bit to keep
> >> track of guest selection of 12-hour mode.
> >> Write through current time registers to
> >> achieve this.  Will be overwritten
> >> by the next read/latch.
> >>
> >> This was only being done in two of three
> >> arms of this conditional block.
> >>
> >> Signed-off-by: Michael Davidsaver <mdavidsaver@gmail.com>
> > 
> > This looks dubious to me, or at least the explanation of it does.  The
> > other branch of the conditional is covering different registers in the
> > device, which are part of the RTC component, rather than the NVRAM
> > area.  I wouldn't necessarily expect them to persist data as a rule
> > the way the rest of the block does, even if this specific bit does
> > need to be preserved.
> 
> The fact that the above capture_current_time() included the line
> 
> >     if (s->nvram[2] & HOURS_12) {
> 
> was enough to convince me that the original author intended to persist
> the 12/24 hour mode in this way.  There are certainly other ways to
> accomplish this, but they would involved adding to the vmstate,
> which I've tried to avoid in this iteration.

Ah, yes, I see your point.  I was more unsure about whether it was
safe to also persist the other early bytes of the region, which this
patch also does.  But I can't really see how it would do any harm, so:

Reviewed-by: David Gibson <david@gibson.dropbear.id.au>

> 
> 
> Also, I though I had test coverage of this bug.  That's actually how I
> noticed it to begin with.  But it seems my later change to allow for a
> slow test runner also stopped testing readback of the 12/24 hour mode bit.
> It just silently uses whichever it reads.  I'll be re-issuing an updated
> version which restores this check.  Then you will be able to easily
> see the effect of reverting 'timer: ds1338 persist 12-hour mode selection'.
> 
> 
> 
> >> ---
> >>  hw/timer/ds1338.c | 4 +---
> >>  1 file changed, 1 insertion(+), 3 deletions(-)
> >>
> >> diff --git a/hw/timer/ds1338.c b/hw/timer/ds1338.c
> >> index 7298c5af43..b56db5852e 100644
> >> --- a/hw/timer/ds1338.c
> >> +++ b/hw/timer/ds1338.c
> >> @@ -220,10 +220,8 @@ static int ds1338_send(I2CSlave *i2c, uint8_t data)
> >>             value unchanged. */
> >>          data = (data & ~CTRL_OSF) | (data & s->nvram[s->ptr] & CTRL_OSF);
> >>  
> >> -        s->nvram[s->ptr] = data;
> >> -    } else {
> >> -        s->nvram[s->ptr] = data;
> >>      }
> >> +    s->nvram[s->ptr] = data;
> >>      inc_regptr(s);
> >>      return 0;
> >>  }
> > 
> 
> 




-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  parent reply	other threads:[~2018-07-09  5:09 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-05 18:19 [Qemu-devel] [PATCH 00/14] Generalize Dallas/Maxim I2C RTC devices v3 Michael Davidsaver
2018-07-05 18:19 ` [Qemu-devel] [PATCH 01/14] tests: more thorough tests of ds1338 Michael Davidsaver
2018-07-17 15:28   ` Peter Maydell
2018-07-05 18:19 ` [Qemu-devel] [PATCH 02/14] timer: ds1338 use registerfields.h Michael Davidsaver
2018-07-06  1:35   ` David Gibson
2018-07-05 18:19 ` [Qemu-devel] [PATCH 03/14] timer: ds1338 persist 12-hour mode selection Michael Davidsaver
2018-07-06  3:39   ` David Gibson
2018-07-06  4:35     ` Michael Davidsaver
2018-07-07 17:59       ` Michael Davidsaver
2018-07-09  5:09       ` David Gibson [this message]
2018-07-05 18:19 ` [Qemu-devel] [PATCH 04/14] timer: ds1338 clarify HOUR handling Michael Davidsaver
2018-07-09  5:12   ` David Gibson
2018-07-05 18:19 ` [Qemu-devel] [PATCH 05/14] timer: ds1338 change write handling and fix wday_offset handling Michael Davidsaver
2018-07-16  4:25   ` David Gibson
2018-07-05 18:19 ` [Qemu-devel] [PATCH 06/14] tests: ds-rtc test 12 hour mode Michael Davidsaver
2018-07-07 17:49   ` [Qemu-devel] [PATCH v2 " Michael Davidsaver
2018-07-09  6:49     ` David Gibson
2018-07-05 18:19 ` [Qemu-devel] [PATCH 07/14] tests: ds-rtc test wday offset Michael Davidsaver
2018-07-07 17:50   ` [Qemu-devel] [PATCH v2 " Michael Davidsaver
2018-07-09  6:50     ` David Gibson
2018-07-05 18:19 ` [Qemu-devel] [PATCH 08/14] timer: rename ds1338 -> dsrtc Michael Davidsaver
2018-07-05 18:19 ` [Qemu-devel] [PATCH 09/14] timer: rename file ds1338.c -> ds-rtc.c Michael Davidsaver
2018-07-05 18:19 ` [Qemu-devel] [PATCH 10/14] timer: ds1338 remove vestige of un-modeled OSF Michael Davidsaver
2018-07-16  4:26   ` David Gibson
2018-07-05 18:19 ` [Qemu-devel] [PATCH 12/14] timer: ds-rtc handle CENTURY bit Michael Davidsaver
2018-07-16  9:43   ` David Gibson
2018-07-05 18:20 ` [Qemu-devel] [PATCH 13/14] timer: ds-rtc model ds1375 Michael Davidsaver
2018-07-16  9:44   ` David Gibson
2018-07-05 18:20 ` [Qemu-devel] [PATCH 14/14] tests: drop ds1338-test Michael Davidsaver
2018-07-17 15:23   ` Peter Maydell
     [not found] ` <20180705182001.16537-12-mdavidsaver@gmail.com>
2018-07-16  9:19   ` [Qemu-devel] [PATCH 11/14] timer: generalize ds1338 David Gibson
  -- strict thread matches above, loose matches on Subject: below --
2018-03-24 19:24 [Qemu-devel] [PATCH 00/14] Generalize Dallas/Maxim I2C RTC devices v2 Michael Davidsaver
2018-03-24 19:24 ` [Qemu-devel] [PATCH 03/14] timer: ds1338 persist 12-hour mode selection Michael Davidsaver
2018-04-12 18:03   ` Peter Maydell

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=20180709050900.GF22363@umbus.fritz.box \
    --to=david@gibson.dropbear.id.au \
    --cc=barsamin@gmail.com \
    --cc=mdavidsaver@gmail.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=thuth@redhat.com \
    /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.