RTC , ds1307 I2C driver and NTP does not work.

4 messages, 4 authors, 2006-11-18 · open the first message on its own page

RTC , ds1307 I2C driver and NTP does not work.

From: Joakim Tjernlund <hidden>
Date: 2006-11-17 16:39:03

I get this when I activate NTP and ntp "sync" the time the I2C HW clock.



BUG: scheduling while atomic: swapper/0x00010000/0
Call Trace:^M
[C0245C80] [C000860C] show_stack+0x48/0x194 (unreliable)
[C0245CB0] [C01BEFF4] schedule+0x5d4/0x618
[C0245CF0] [C01BF9C8] schedule_timeout+0x70/0xd0
[C0245D30] [C014416C] i2c_wait+0x164/0x1d8
[C0245D80] [C0144490] mpc_xfer+0x2b0/0x3a8
[C0245DD0] [C01423E8] i2c_transfer+0x58/0x7c
[C0245DF0] [C0141124] ds1307_set_time+0x1bc/0x234
[C0245E00] [C013F82C] rtc_set_time+0xb0/0xb8^M
[C0245E20] [C000BFC4] set_rtc_class_time+0x34/0x58
[C0245E40] [C000C8D0] timer_interrupt+0x5a0/0x5fc
[C0245EE0] [C000F7B0] ret_from_except+0x0/0x14
--- Exception: 901 at cpu_idle+0xc8/0xf0
    LR = cpu_idle+0xec/0xf0
[C0245FC0] [C000388C] rest_init+0x28/0x38
[C0245FD0] [C01F36E0] start_kernel+0x1d8/0x228
[C0245FF0] [00003438] 0x3438

I have activated RTC CLASS and have this in my board file:
#ifdef CONFIG_RTC_CLASS
late_initcall(rtc_class_hookup);
#endif

kernel 2.6.19-rc5 

 Jocke

Re: RTC , ds1307 I2C driver and NTP does not work.

From: Kumar Gala <hidden>
Date: 2006-11-17 16:57:08

On Nov 17, 2006, at 10:38 AM, Joakim Tjernlund wrote:
I get this when I activathte NTP and ntp "sync" the time the I2C HW clock.
You may be better off posting this to lkml and copy the i2c list (and rtc if one exists).  Since its more a driver issue than anything really ppc specific.  Clearly we are doing schedules() in mpc_xfer() and maybe we shouldn't be.

- kumar
quoted hunk
BUG: scheduling while atomic: swapper/0x00010000/0
Call Trace:^M
[C0245C80] [C000860C] show_stack+0x48/0x194 (unreliable)
[C0245CB0] [C01BEFF4] schedule+0x5d4/0x618
[C0245CF0] [C01BF9C8] schedule_timeout+0x70/0xd0
[C0245D30] [C014416C] i2c_wait+0x164/0x1d8
[C0245D80] [C0144490] mpc_xfer+0x2b0/0x3a8
[C0245DD0] [C01423E8] i2c_transfer+0x58/0x7c
[C0245DF0] [C0141124] ds1307_set_time+0x1bc/0x234
[C0245E00] [C013F82C] rtc_set_time+0xb0/0xb8^M
[C0245E20] [C000BFC4] set_rtc_class_time+0x34/0x58
[C0245E40] [C000C8D0] timer_interrupt+0x5a0/0x5fc
[C0245EE0] [C000F7B0] ret_from_except+0x0/0x14
--- Exception: 901 at cpu_idle+0xc8/0xf0
    LR = cpu_idle+0xec/0xf0
[C0245FC0] [C000388C] rest_init+0x28/0x38
[C0245FD0] [C01F36E0] start_kernel+0x1d8/0x228
[C0245FF0] [00003438] 0x3438

I have activated RTC CLASS and have this in my board file:
#ifdef CONFIG_RTC_CLASS
late_initcall(rtc_class_hookup);
#endif

kernel 2.6.19-rc5

 Jocke

_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev

Re: RTC , ds1307 I2C driver and NTP does not work.

From: Scott Wood <hidden>
Date: 2006-11-17 17:44:26

Kumar Gala wrote:
On Nov 17, 2006, at 10:38 AM, Joakim Tjernlund wrote:

quoted
I get this when I activathte NTP and ntp "sync" the time the I2C HW  clock.

You may be better off posting this to lkml and copy the i2c list (and  rtc if one exists).  Since its more a driver issue than anything  really ppc specific.  Clearly we are doing schedules() in mpc_xfer()  and maybe we shouldn't be.
It's interrupt unsafe before that; rtc_set_time calls mutex_lock_interruptible.  If the RTC must be set from an interrupt, it should be via a workqueue.

-Scott

Re: RTC , ds1307 I2C driver and NTP does not work.

From: Luong Ngo <hidden>
Date: 2006-11-18 00:54:20

Joakim,
We are having the exact same problem. And if I understand correctly, the
schedule call in i2c-mpc driver is because we are waiting for the interrupt
signaling a byte transfer complete. If the interrupt does not yet come, the
driver call schedule to wait, both for polling mode and interrupt mode.  I
am not sure if it is some problem occurs making the interrupt not coming
quick enough. We still try to resolve. Please let us know if you find a
solution and we definitely will post our finding if we can resolve.

-Ngo

On 11/17/06, Kumar Gala [off-list ref] wrote:

On Nov 17, 2006, at 10:38 AM, Joakim Tjernlund wrote:
quoted
I get this when I activathte NTP and ntp "sync" the time the I2C HW
clock.
You may be better off posting this to lkml and copy the i2c list (and
rtc if one exists).  Since its more a driver issue than anything
really ppc specific.  Clearly we are doing schedules() in mpc_xfer()
and maybe we shouldn't be.

- kumar
quoted
BUG: scheduling while atomic: swapper/0x00010000/0
Call Trace:^M
[C0245C80] [C000860C] show_stack+0x48/0x194 (unreliable)
[C0245CB0] [C01BEFF4] schedule+0x5d4/0x618
[C0245CF0] [C01BF9C8] schedule_timeout+0x70/0xd0
[C0245D30] [C014416C] i2c_wait+0x164/0x1d8
[C0245D80] [C0144490] mpc_xfer+0x2b0/0x3a8
[C0245DD0] [C01423E8] i2c_transfer+0x58/0x7c
[C0245DF0] [C0141124] ds1307_set_time+0x1bc/0x234
[C0245E00] [C013F82C] rtc_set_time+0xb0/0xb8^M
[C0245E20] [C000BFC4] set_rtc_class_time+0x34/0x58
[C0245E40] [C000C8D0] timer_interrupt+0x5a0/0x5fc
[C0245EE0] [C000F7B0] ret_from_except+0x0/0x14
--- Exception: 901 at cpu_idle+0xc8/0xf0
    LR = cpu_idle+0xec/0xf0
[C0245FC0] [C000388C] rest_init+0x28/0x38
[C0245FD0] [C01F36E0] start_kernel+0x1d8/0x228
[C0245FF0] [00003438] 0x3438

I have activated RTC CLASS and have this in my board file:
#ifdef CONFIG_RTC_CLASS
late_initcall(rtc_class_hookup);
#endif

kernel 2.6.19-rc5

 Jocke

_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help