Re: [PATCH] m68k/mac: Rework patch "use time64_t in RTC handling"

2018-07-29 Thread Geert Uytterhoeven
Hi Finn, Arnd,

On Tue, Jul 24, 2018 at 9:07 AM Finn Thain  wrote:
> This addresses the issues arising from commit 324caa29cd04
> ("m68k: mac: use time64_t in RTC handling").
>
> Adopt __u32 for the union in via_read_time(), consistent with changes
> to via_write_time().
>
> Use low_32_bits() in via_write_time(), consistent with changes to

lower_32_bits()

> pmu_write_time() and cuda_write_time().
>
> Have via_read_time() return a time64_t, consistent with changes to
> pmu_read_time and cuda_read_time().

pmu_read_time()

> Drop the pointless wraparound conditional in via_read_time().
>
> Cc: Arnd Bergmann 
> Signed-off-by: Finn Thain 

Thanks!

Applied to master with the above fixed.
Folded into the original commit on for-v4.19, with:

[fthain: Adopt __u32 for the union in via_read_time(), consistent with
 changes to via_write_time()]
[fthain: Use lower_32_bits() in via_write_time(), consistent with changes
 to pmu_write_time() and cuda_write_time()]
[fthain: Have via_read_time() return a time64_t, consistent with changes
 to pmu_read_time() and cuda_read_time()]
[fthain: Drop the pointless wraparound conditional in via_read_time()]
Signed-off-by: Finn Thain 
Reviewed-by: Arnd Bergmann 

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds


Re: [PATCH] m68k/mac: Rework patch "use time64_t in RTC handling"

2018-07-29 Thread Geert Uytterhoeven
Hi Finn, Arnd,

On Tue, Jul 24, 2018 at 9:07 AM Finn Thain  wrote:
> This addresses the issues arising from commit 324caa29cd04
> ("m68k: mac: use time64_t in RTC handling").
>
> Adopt __u32 for the union in via_read_time(), consistent with changes
> to via_write_time().
>
> Use low_32_bits() in via_write_time(), consistent with changes to

lower_32_bits()

> pmu_write_time() and cuda_write_time().
>
> Have via_read_time() return a time64_t, consistent with changes to
> pmu_read_time and cuda_read_time().

pmu_read_time()

> Drop the pointless wraparound conditional in via_read_time().
>
> Cc: Arnd Bergmann 
> Signed-off-by: Finn Thain 

Thanks!

Applied to master with the above fixed.
Folded into the original commit on for-v4.19, with:

[fthain: Adopt __u32 for the union in via_read_time(), consistent with
 changes to via_write_time()]
[fthain: Use lower_32_bits() in via_write_time(), consistent with changes
 to pmu_write_time() and cuda_write_time()]
[fthain: Have via_read_time() return a time64_t, consistent with changes
 to pmu_read_time() and cuda_read_time()]
[fthain: Drop the pointless wraparound conditional in via_read_time()]
Signed-off-by: Finn Thain 
Reviewed-by: Arnd Bergmann 

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds


Re: [PATCH] m68k/mac: Rework patch "use time64_t in RTC handling"

2018-07-24 Thread Arnd Bergmann
On Tue, Jul 24, 2018 at 9:07 AM, Finn Thain  wrote:
> This addresses the issues arising from commit 324caa29cd04
> ("m68k: mac: use time64_t in RTC handling").
>
> Adopt __u32 for the union in via_read_time(), consistent with changes
> to via_write_time().
>
> Use low_32_bits() in via_write_time(), consistent with changes to
> pmu_write_time() and cuda_write_time().
>
> Have via_read_time() return a time64_t, consistent with changes to
> pmu_read_time and cuda_read_time().
>
> Drop the pointless wraparound conditional in via_read_time().
>
> Cc: Arnd Bergmann 
> Signed-off-by: Finn Thain 

Reviewed-by: Arnd Bergmann 

Thanks for fixing it up!


Re: [PATCH] m68k/mac: Rework patch "use time64_t in RTC handling"

2018-07-24 Thread Arnd Bergmann
On Tue, Jul 24, 2018 at 9:07 AM, Finn Thain  wrote:
> This addresses the issues arising from commit 324caa29cd04
> ("m68k: mac: use time64_t in RTC handling").
>
> Adopt __u32 for the union in via_read_time(), consistent with changes
> to via_write_time().
>
> Use low_32_bits() in via_write_time(), consistent with changes to
> pmu_write_time() and cuda_write_time().
>
> Have via_read_time() return a time64_t, consistent with changes to
> pmu_read_time and cuda_read_time().
>
> Drop the pointless wraparound conditional in via_read_time().
>
> Cc: Arnd Bergmann 
> Signed-off-by: Finn Thain 

Reviewed-by: Arnd Bergmann 

Thanks for fixing it up!


[PATCH] m68k/mac: Rework patch "use time64_t in RTC handling"

2018-07-24 Thread Finn Thain
This addresses the issues arising from commit 324caa29cd04
("m68k: mac: use time64_t in RTC handling").

Adopt __u32 for the union in via_read_time(), consistent with changes
to via_write_time().

Use low_32_bits() in via_write_time(), consistent with changes to
pmu_write_time() and cuda_write_time().

Have via_read_time() return a time64_t, consistent with changes to
pmu_read_time and cuda_read_time().

Drop the pointless wraparound conditional in via_read_time().

Cc: Arnd Bergmann 
Signed-off-by: Finn Thain 
---
 arch/m68k/mac/misc.c | 18 +++---
 1 file changed, 7 insertions(+), 11 deletions(-)

diff --git a/arch/m68k/mac/misc.c b/arch/m68k/mac/misc.c
index bdc83eac6c61..19e9d8eef1f2 100644
--- a/arch/m68k/mac/misc.c
+++ b/arch/m68k/mac/misc.c
@@ -251,11 +251,11 @@ static void via_write_pram(int offset, __u8 data)
  * is basically any machine with Mac II-style ADB.
  */
 
-static long via_read_time(void)
+static time64_t via_read_time(void)
 {
union {
__u8 cdata[4];
-   long idata;
+   __u32 idata;
} result, last_result;
int count = 1;
 
@@ -275,12 +275,8 @@ static long via_read_time(void)
via_pram_command(0x89, [1]);
via_pram_command(0x8D, [0]);
 
-   if (result.idata == last_result.idata) {
-   if (result.idata < RTC_OFFSET)
-   result.idata += 0x1ull;
-
-   return result.idata - RTC_OFFSET;
-   }
+   if (result.idata == last_result.idata)
+   return (time64_t)result.idata - RTC_OFFSET;
 
if (++count > 10)
break;
@@ -288,8 +284,8 @@ static long via_read_time(void)
last_result.idata = result.idata;
}
 
-   pr_err("via_read_time: failed to read a stable value; got 0x%08lx then 
0x%08lx\n",
-  last_result.idata, result.idata);
+   pr_err("%s: failed to read a stable value; got 0x%08x then 0x%08x\n",
+  __func__, last_result.idata, result.idata);
 
return 0;
 }
@@ -314,7 +310,7 @@ static void via_write_time(time64_t time)
temp = 0x55;
via_pram_command(0x35, );
 
-   data.idata = time + RTC_OFFSET;
+   data.idata = lower_32_bits(time + RTC_OFFSET);
via_pram_command(0x01, [3]);
via_pram_command(0x05, [2]);
via_pram_command(0x09, [1]);
-- 
2.16.4



[PATCH] m68k/mac: Rework patch "use time64_t in RTC handling"

2018-07-24 Thread Finn Thain
This addresses the issues arising from commit 324caa29cd04
("m68k: mac: use time64_t in RTC handling").

Adopt __u32 for the union in via_read_time(), consistent with changes
to via_write_time().

Use low_32_bits() in via_write_time(), consistent with changes to
pmu_write_time() and cuda_write_time().

Have via_read_time() return a time64_t, consistent with changes to
pmu_read_time and cuda_read_time().

Drop the pointless wraparound conditional in via_read_time().

Cc: Arnd Bergmann 
Signed-off-by: Finn Thain 
---
 arch/m68k/mac/misc.c | 18 +++---
 1 file changed, 7 insertions(+), 11 deletions(-)

diff --git a/arch/m68k/mac/misc.c b/arch/m68k/mac/misc.c
index bdc83eac6c61..19e9d8eef1f2 100644
--- a/arch/m68k/mac/misc.c
+++ b/arch/m68k/mac/misc.c
@@ -251,11 +251,11 @@ static void via_write_pram(int offset, __u8 data)
  * is basically any machine with Mac II-style ADB.
  */
 
-static long via_read_time(void)
+static time64_t via_read_time(void)
 {
union {
__u8 cdata[4];
-   long idata;
+   __u32 idata;
} result, last_result;
int count = 1;
 
@@ -275,12 +275,8 @@ static long via_read_time(void)
via_pram_command(0x89, [1]);
via_pram_command(0x8D, [0]);
 
-   if (result.idata == last_result.idata) {
-   if (result.idata < RTC_OFFSET)
-   result.idata += 0x1ull;
-
-   return result.idata - RTC_OFFSET;
-   }
+   if (result.idata == last_result.idata)
+   return (time64_t)result.idata - RTC_OFFSET;
 
if (++count > 10)
break;
@@ -288,8 +284,8 @@ static long via_read_time(void)
last_result.idata = result.idata;
}
 
-   pr_err("via_read_time: failed to read a stable value; got 0x%08lx then 
0x%08lx\n",
-  last_result.idata, result.idata);
+   pr_err("%s: failed to read a stable value; got 0x%08x then 0x%08x\n",
+  __func__, last_result.idata, result.idata);
 
return 0;
 }
@@ -314,7 +310,7 @@ static void via_write_time(time64_t time)
temp = 0x55;
via_pram_command(0x35, );
 
-   data.idata = time + RTC_OFFSET;
+   data.idata = lower_32_bits(time + RTC_OFFSET);
via_pram_command(0x01, [3]);
via_pram_command(0x05, [2]);
via_pram_command(0x09, [1]);
-- 
2.16.4