Re: select() to /dev/rtc0 to wait for clock tick timed out

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Aug 19, 2011 at 5:48 PM, Matt Turner <mattst88@xxxxxxxxx> wrote:
> On Fri, Aug 19, 2011 at 5:21 PM, john stultz <johnstul@xxxxxxxxxx> wrote:
>> On Fri, 2011-08-19 at 16:56 -0400, Matt Turner wrote:
>>> With 2.6.37 the original rtctest program gives
>>>
>>>                       RTC Driver Test Example.
>>>
>>> RTC_UIE_ON ioctl: Invalid argument
>>>
>>> and the modified version hangs in the same way. :(
>>
>> Ok, so the AIE/alarm irq isn't working (but returns as if it should),
>> and in the older case, the UIE mode properly returned an error.
>>
>> So I'm guessing since we now use AIE mode interrupts to emulate UIE, the
>> UIE code thinks alarms will work and so doesn't return an error,
>> confusing the hwclock code.
>>
>>> With 2.6.37, hwclock did work:
>>>
>>> bcm91250a-be ~ # date
>>> Fri Aug 19 16:52:21 EDT 2011
>>> bcm91250a-be ~ # hwclock --systohc
>>> bcm91250a-be ~ # date 082016522011
>>> Sat Aug 20 16:52:00 EDT 2011
>>> bcm91250a-be ~ # hwclock --hctosys
>>> bcm91250a-be ~ # date
>>> Fri Aug 19 16:53:02 EDT 2011
>>
>> Running strace on the hwclock --hctosys might prove the theory above.
>>
>>
>>> With 3.1.0-rc2+, it does not
>>> bcm91250a-be ~ # date
>>> Fri Aug 19 16:54:32 EDT 2011
>>> bcm91250a-be ~ # hwclock --systohc
>>> select() to /dev/rtc0 to wait for clock tick timed out
>>> bcm91250a-be ~ # date 082016542011
>>> Sat Aug 20 16:54:00 EDT 2011
>>> bcm91250a-be ~ # hwclock --hctosys
>>> select() to /dev/rtc0 to wait for clock tick timed out
>>> bcm91250a-be ~ # date
>>> Sat Aug 20 16:54:11 EDT 2011
>>>
>>> So, even if the alarm never worked, there is some sort of regression here.
>>
>> Yea, since we depend on the alarm irq for more functionality now, it not
>> working in this case is causing more trouble.
>>
>> I suspect either fixing the driver alarm code so it either works or
>> provides a proper error code will resolve it.
>>
>> thanks
>> -john
>
> Indeed, looks like that's the case.
>
> 2.6.37: ioctl(3, PRESTO_GETMOUNT or RTC_UIE_ON, 0) = -1 EINVAL
> 3.1.0: ioctl(3, PRESTO_GETMOUNT or RTC_UIE_ON, 0) = 0
>
> (Attaching full gz'd logs for posterity.)
>
> Thanks,
> Matt

I looked through the datasheet and tried to find a place where we're
doing something wrong in the driver, but I didn't see anything.

http://www.datasheetcatalog.com/datasheets_pdf/M/4/1/T/M41T80.shtml

Any ideas?

Matt



[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux