[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 04/14] timer: ds1338 clarify HOUR handling
From: |
David Gibson |
Subject: |
Re: [Qemu-devel] [PATCH 04/14] timer: ds1338 clarify HOUR handling |
Date: |
Mon, 9 Jul 2018 15:12:14 +1000 |
User-agent: |
Mutt/1.10.0 (2018-05-17) |
On Thu, Jul 05, 2018 at 11:19:51AM -0700, Michael Davidsaver wrote:
> Simplify and comment the translation between
> registers and struct tm.
>
> Signed-off-by: Michael Davidsaver <address@hidden>
Reviewed-by: David Gibson <address@hidden>
although..
[snip]
> @@ -101,7 +105,9 @@ static void capture_current_time(DS1338State *s)
> } else {
> s->nvram[R_HOUR] = R_HOUR_SET12_MASK | R_HOUR_AMPM_MASK |
> to_bcd(tmp - 12);
> }
> +
> } else {
I'm not real fond of blank lines before the ends of blocks.
> + /* 24 hour mode. */
> s->nvram[R_HOUR] = to_bcd(now.tm_hour);
> }
> s->nvram[R_WDAY] = (now.tm_wday + s->wday_offset) % 7 + 1;
> @@ -178,14 +184,13 @@ static int ds1338_send(I2CSlave *i2c, uint8_t data)
> break;
> case R_HOUR:
> if (FIELD_EX32(data, HOUR, SET12)) {
> - int tmp = from_bcd(FIELD_EX32(data, HOUR, HOUR12));
> + /* 12 hour (1-12) */
> + /* read and wrap 1-12 -> 0-11 */
> + now.tm_hour = from_bcd(FIELD_EX32(data, HOUR, HOUR12)) % 12u;
> if (FIELD_EX32(data, HOUR, AMPM)) {
> - tmp += 12;
> + now.tm_hour += 12;
> }
> - if (tmp % 12 == 0) {
> - tmp -= 12;
> - }
> - now.tm_hour = tmp;
> +
> } else {
> now.tm_hour = from_bcd(FIELD_EX32(data, HOUR, HOUR24));
> }
--
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
signature.asc
Description: PGP signature