[PATCH 1/3] powerpc: mac: fix rtc read functions

Arnd Bergmann arnd at arndb.de
Tue Jun 19 20:18:19 AEST 2018


On Mon, Jun 18, 2018 at 10:04 PM, Andreas Schwab <schwab at linux-m68k.org> wrote:
> On Jun 18 2018, Mathieu Malaterre <malat at debian.org> wrote:
>
>> Sadly, trying again today does not work anymore. Adding some printk
>> just before WARN_ON:
>>
>> +printk(KERN_ERR " rtc DBG pmu_get_time1: %lld %d %lld \n", now,
>> RTC_OFFSET, now - RTC_OFFSET );
>> +printk(KERN_ERR " rtc DBG pmu_get_time2: %x %x %x %x %d \n",
>> req.reply[0], req.reply[1], req.reply[2], req.reply[3] ,
>> req.reply_len);
>>
>> leads to:
>>
>> [    0.000000]  rtc DBG pmu_get_time1: 14096662 2082844800 -2068748138
>> [    0.000000]  rtc DBG pmu_get_time2: 0 d7 19 16 4
>
> A good value would have 0xd7 in the first byte.  The problem is that
> pmu_set_rtc_time is also broken, and leads to an invalid time value
> stored in the RTC.  Since pmu_request is a varargs function passing
> values of type time64_t without casting won't work.
>
> You need to reset your RTC before you can continue.
>
> I think the right fix is to change nowtime in pmu_set_rtc_time and
> cuda_set_rtc_time back to unsigned int (or to u32).

Thanks for the additional analysis. I'll do it like you suggest and send
an updated patch.

       Arnd


More information about the Linuxppc-dev mailing list